> This is not happening for the maddr stuff.   
> I suspect this would do better:
> 
>                         if (portsize > 0)
>                                 isa_set_portsize(dev, portsize);
>                         if (dvp->id_iobase >= 0)
>                                 isa_set_port(dev, dvp->id_iobase);
>                         if (dvp->id_irq != 0)
>                                 isa_set_irq(dev, ffs(dvp->id_irq) - 1);
>                         if (dvp->id_drq != -1)
>                                 isa_set_drq(dev, dvp->id_drq);
>                         if (dvp->id_maddr != 0)
>                                 isa_set_maddr(dev,
>                                               (int) dvp->id_maddr - KERNBASE);
>                         if (dvp->id_msize != 0)
>                                 isa_set_msize(dev, dvp->id_msize);
> I'm not sure about the "nothing" value for id_drq though, it might need to
> be 0 - but that's a valid dma channel.
> 
> IMHO, isa_release_resources() clearing of the default values for the probe
> hints is a timebomb...  I thought about adding a seperate store for the
> "hint" values rather than using the id_foo[0] entries, and leaving the
> tracked resource entries for alloc/free without risking the hints.
> 
> Cheers,
> -Peter
> 
Off the topic, I think we should replace (dvp->id_maddr - KERNBASE) with
kvtop(dvp->id_maddr), too much assumption about vm layout...

-lq


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to