aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/atkbdc/psm.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/atkbdc/psm.c')
-rw-r--r--sys/dev/atkbdc/psm.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c
index 5b999e1b36af..e7eb46957d1f 100644
--- a/sys/dev/atkbdc/psm.c
+++ b/sys/dev/atkbdc/psm.c
@@ -20,7 +20,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: psm.c,v 1.1 1998/11/08 18:43:03 dfr Exp $
+ * $Id: psm.c,v 1.2 1998/11/15 18:25:17 dfr Exp $
*/
/*
@@ -90,7 +90,7 @@
#include <isa/isareg.h>
#include <isa/isavar.h>
-#include <isa/kbdio.h>
+#include <dev/kbd/atkbdcreg.h>
/*
* Driver specific options: the following options may be set by
@@ -740,6 +740,8 @@ psmprobe(device_t dev)
{
int unit = device_get_unit(dev);
struct psm_softc *sc = device_get_softc(dev);
+ u_long port;
+ u_long flags;
int stat[3];
int command_byte;
int mask;
@@ -748,13 +750,18 @@ psmprobe(device_t dev)
#if 0
kbdc_debug(TRUE);
#endif
- sc->addr = isa_get_port(dev);
+ BUS_READ_IVAR(device_get_parent(dev), dev, KBDC_IVAR_PORT, &port);
+ BUS_READ_IVAR(device_get_parent(dev), dev, KBDC_IVAR_FLAGS, &flags);
+
+ sc->addr = port;
sc->kbdc = kbdc_open(sc->addr);
- sc->config = isa_get_flags(dev) & PSM_CONFIG_FLAGS;
+ sc->config = flags & PSM_CONFIG_FLAGS;
sc->flags = 0;
if (bootverbose)
++verbose;
+ device_set_desc(dev, "PS/2 Mouse");
+
if (!kbdc_lock(sc->kbdc, TRUE)) {
printf("psm%d: unable to lock the controller.\n", unit);
if (bootverbose)
@@ -984,6 +991,7 @@ psmattach(device_t dev)
struct psm_softc *sc = device_get_softc(dev);
void *ih;
struct resource *res;
+ u_long irq;
int zero = 0;
if (sc == NULL) /* shouldn't happen */
@@ -1027,7 +1035,8 @@ psmattach(device_t dev)
if (bootverbose)
--verbose;
- res = bus_alloc_resource(dev, SYS_RES_IRQ, &zero, 0ul, ~0ul, 1,
+ BUS_READ_IVAR(device_get_parent(dev), dev, KBDC_IVAR_IRQ, &irq);
+ res = bus_alloc_resource(dev, SYS_RES_IRQ, &zero, irq, irq, 1,
RF_SHAREABLE | RF_ACTIVE);
BUS_SETUP_INTR(device_get_parent(dev), dev, res, psmintr, sc,
&ih);
@@ -2216,7 +2225,7 @@ psmresume(void *dummy)
}
#endif /* PSM_HOOKAPM */
-CDEV_DRIVER_MODULE(psm, isa, psm_driver, psm_devclass,
+CDEV_DRIVER_MODULE(psm, atkbdc, psm_driver, psm_devclass,
CDEV_MAJOR, psm_cdevsw, 0, 0);
#endif /* NPSM > 0 */