summaryrefslogtreecommitdiffstats
path: root/sys/isa/atkbdc_isa.c
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1999-05-22 15:47:34 +0000
committerdfr <dfr@FreeBSD.org>1999-05-22 15:47:34 +0000
commitb22d4cf457e89930b109c33ccbca02f7587c89e6 (patch)
treee817e202ab180af95627c8d9bf65e4e80578adc4 /sys/isa/atkbdc_isa.c
parenta9c1a3ee02d01f394a40fbed871551a5c3e3d384 (diff)
downloadFreeBSD-src-b22d4cf457e89930b109c33ccbca02f7587c89e6.zip
FreeBSD-src-b22d4cf457e89930b109c33ccbca02f7587c89e6.tar.gz
Use the resource apis to manipulate resources.
Diffstat (limited to 'sys/isa/atkbdc_isa.c')
-rw-r--r--sys/isa/atkbdc_isa.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/sys/isa/atkbdc_isa.c b/sys/isa/atkbdc_isa.c
index de1ecdb..2ac2525 100644
--- a/sys/isa/atkbdc_isa.c
+++ b/sys/isa/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)
OpenPOWER on IntegriCloud