diff options
author | dfr <dfr@FreeBSD.org> | 1999-05-22 15:47:34 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1999-05-22 15:47:34 +0000 |
commit | b22d4cf457e89930b109c33ccbca02f7587c89e6 (patch) | |
tree | e817e202ab180af95627c8d9bf65e4e80578adc4 /sys/dev/atkbdc/atkbdc_isa.c | |
parent | a9c1a3ee02d01f394a40fbed871551a5c3e3d384 (diff) | |
download | FreeBSD-src-b22d4cf457e89930b109c33ccbca02f7587c89e6.zip FreeBSD-src-b22d4cf457e89930b109c33ccbca02f7587c89e6.tar.gz |
Use the resource apis to manipulate resources.
Diffstat (limited to 'sys/dev/atkbdc/atkbdc_isa.c')
-rw-r--r-- | sys/dev/atkbdc/atkbdc_isa.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/sys/dev/atkbdc/atkbdc_isa.c b/sys/dev/atkbdc/atkbdc_isa.c index de1ecdb..2ac2525 100644 --- a/sys/dev/atkbdc/atkbdc_isa.c +++ b/sys/dev/atkbdc/atkbdc_isa.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: atkbdc_isa.c,v 1.5 1999/05/09 20:45:53 peter Exp $ + * $Id: atkbdc_isa.c,v 1.6 1999/05/18 11:33:14 yokota Exp $ */ #include "atkbdc.h" @@ -36,6 +36,9 @@ #include <sys/kernel.h> #include <sys/bus.h> #include <sys/malloc.h> +#include <machine/bus.h> +#include <machine/resource.h> +#include <sys/rman.h> #include <dev/kbd/atkbdcreg.h> @@ -91,11 +94,17 @@ static int atkbdc_probe(device_t dev) { int error; + int rid; + struct resource *port; device_set_desc(dev, "keyboard controller (i8042)"); - error = atkbdc_probe_unit(device_get_unit(dev), isa_get_port(dev)); - if (error == 0) - isa_set_portsize(dev, IO_KBDSIZE); + rid = 0; + port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, + 0, ~0, IO_KBDSIZE, RF_ACTIVE); + if (!port) + return ENXIO; + error = atkbdc_probe_unit(device_get_unit(dev), rman_get_start(port)); + bus_release_resource(dev, SYS_RES_IOPORT, rid, port); return error; } @@ -106,12 +115,17 @@ atkbdc_add_device(device_t dev, const char *name, int unit) atkbdc_device_t *kdev; device_t child; int t; + int rid; + struct resource *port; kdev = malloc(sizeof(struct atkbdc_device), M_ATKBDDEV, M_NOWAIT); if (!kdev) return; bzero(kdev, sizeof *kdev); + /* XXX should track resource in softc */ + port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, + 0, ~0, IO_KBDSIZE, RF_ACTIVE); kdev->port = sc->port; if (resource_int_value(name, unit, "irq", &t) == 0) |