On Mon, 19 Apr 1999, Luoqi Chen wrote:

> > 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...

I agree. I think your fix for the irq problem is the correct one too.

--
Doug Rabson                             Mail:  d...@nlsystems.com
Nonlinear Systems Ltd.                  Phone: +44 181 442 9037




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

Reply via email to