From 7e381ee0b43eb38ed9b53f385d3909f0e2e9275e Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Sat, 24 Apr 1999 07:04:51 +0000 Subject: [PATCH] Back out parts of rev 1.4; making isa.c preserve the hints across a release made it unneeded. --- sys/i386/isa/isa_compat.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/sys/i386/isa/isa_compat.c b/sys/i386/isa/isa_compat.c index 43a7ae2a1582..8834931400fb 100644 --- a/sys/i386/isa/isa_compat.c +++ b/sys/i386/isa/isa_compat.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -169,21 +170,21 @@ isa_compat_probe(device_t dev) dvp->id_maddr = maddr; portsize = dvp->id_driver->probe(dvp); isa_compat_release_resources(dev, &res); - /* isa_release_resource clobbers the hints - reset them! */ - if (dvp->id_iobase > 0) - isa_set_port(dev, dvp->id_iobase); - if (portsize > 0) - isa_set_portsize(dev, portsize); - 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)kvtop(dvp->id_maddr)); /* XXX */ - if (dvp->id_msize != 0) - isa_set_msize(dev, dvp->id_msize); - if (portsize != 0) + if (portsize != 0) { + if (portsize > 0) + isa_set_portsize(dev, portsize); + if (dvp->id_iobase != isa_get_port(dev)) + isa_set_port(dev, dvp->id_iobase); + if (dvp->id_irq != irqmask(isa_get_irq(dev))) + isa_set_irq(dev, ffs(dvp->id_irq) - 1); + if (dvp->id_drq != isa_get_drq(dev)) + isa_set_drq(dev, dvp->id_drq); + if (dvp->id_maddr != maddr) + isa_set_maddr(dev, (int)kvtop(dvp->id_maddr)); + if (dvp->id_msize != isa_get_msize(dev)) + isa_set_msize(dev, dvp->id_msize); return 0; + } } return ENXIO; }