diff options
author | yokota <yokota@FreeBSD.org> | 2001-06-30 10:02:32 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 2001-06-30 10:02:32 +0000 |
commit | 33d7ab4772689f5be1053406c1508b005b416269 (patch) | |
tree | 99765e0b6d606fe48d9c02a515750685c8614441 /sys | |
parent | b6823c37643e5db8e2302c5b397253b4e9c47211 (diff) | |
download | FreeBSD-src-33d7ab4772689f5be1053406c1508b005b416269.zip FreeBSD-src-33d7ab4772689f5be1053406c1508b005b416269.tar.gz |
Add the device resume method to keyboard drivers.
MFC after: 4 weeks
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/atkbdc/atkbd_atkbdc.c | 14 | ||||
-rw-r--r-- | sys/dev/atkbdc/atkbd_isa.c | 14 | ||||
-rw-r--r-- | sys/dev/usb/ukbd.c | 15 | ||||
-rw-r--r-- | sys/isa/atkbd_isa.c | 14 |
4 files changed, 56 insertions, 1 deletions
diff --git a/sys/dev/atkbdc/atkbd_atkbdc.c b/sys/dev/atkbdc/atkbd_atkbdc.c index 65f0b23..1941612 100644 --- a/sys/dev/atkbdc/atkbd_atkbdc.c +++ b/sys/dev/atkbdc/atkbd_atkbdc.c @@ -53,11 +53,13 @@ devclass_t atkbd_devclass; static int atkbdprobe(device_t dev); static int atkbdattach(device_t dev); +static int atkbdresume(device_t dev); static void atkbd_isa_intr(void *arg); static device_method_t atkbd_methods[] = { DEVMETHOD(device_probe, atkbdprobe), DEVMETHOD(device_attach, atkbdattach), + DEVMETHOD(device_resume, atkbdresume), { 0, 0 } }; @@ -116,6 +118,18 @@ atkbdattach(device_t dev) return 0; } +static int +atkbdresume(device_t dev) +{ + keyboard_t *kbd; + + kbd = kbd_get_keyboard(kbd_find_keyboard(ATKBD_DRIVER_NAME, + device_get_unit(dev))); + if (kbd) + (*kbdsw[kbd->kb_index]->clear_state)(kbd); + return 0; +} + static void atkbd_isa_intr(void *arg) { diff --git a/sys/dev/atkbdc/atkbd_isa.c b/sys/dev/atkbdc/atkbd_isa.c index 65f0b23..1941612 100644 --- a/sys/dev/atkbdc/atkbd_isa.c +++ b/sys/dev/atkbdc/atkbd_isa.c @@ -53,11 +53,13 @@ devclass_t atkbd_devclass; static int atkbdprobe(device_t dev); static int atkbdattach(device_t dev); +static int atkbdresume(device_t dev); static void atkbd_isa_intr(void *arg); static device_method_t atkbd_methods[] = { DEVMETHOD(device_probe, atkbdprobe), DEVMETHOD(device_attach, atkbdattach), + DEVMETHOD(device_resume, atkbdresume), { 0, 0 } }; @@ -116,6 +118,18 @@ atkbdattach(device_t dev) return 0; } +static int +atkbdresume(device_t dev) +{ + keyboard_t *kbd; + + kbd = kbd_get_keyboard(kbd_find_keyboard(ATKBD_DRIVER_NAME, + device_get_unit(dev))); + if (kbd) + (*kbdsw[kbd->kb_index]->clear_state)(kbd); + return 0; +} + static void atkbd_isa_intr(void *arg) { diff --git a/sys/dev/usb/ukbd.c b/sys/dev/usb/ukbd.c index 9f3143a..b127b8a 100644 --- a/sys/dev/usb/ukbd.c +++ b/sys/dev/usb/ukbd.c @@ -113,10 +113,11 @@ typedef struct ukbd_softc { typedef void usbd_intr_t(usbd_xfer_handle, usbd_private_handle, usbd_status); typedef void usbd_disco_t(void *); +Static int ukbd_resume(device_t self); Static usbd_intr_t ukbd_intr; Static int ukbd_driver_load(module_t mod, int what, void *arg); -USB_DECLARE_DRIVER(ukbd); +USB_DECLARE_DRIVER_INIT(ukbd, DEVMETHOD(device_resume, ukbd_resume)); USB_MATCH(ukbd) { @@ -207,6 +208,18 @@ ukbd_detach(device_t self) return (0); } +Static int +ukbd_resume(device_t self) +{ + keyboard_t *kbd; + + kbd = kbd_get_keyboard(kbd_find_keyboard(DRIVER_NAME, + device_get_unit(self))); + if (kbd) + (*kbdsw[kbd->kb_index]->clear_state)(kbd); + return (0); +} + void ukbd_intr(usbd_xfer_handle xfer, usbd_private_handle addr, usbd_status status) { diff --git a/sys/isa/atkbd_isa.c b/sys/isa/atkbd_isa.c index 65f0b23..1941612 100644 --- a/sys/isa/atkbd_isa.c +++ b/sys/isa/atkbd_isa.c @@ -53,11 +53,13 @@ devclass_t atkbd_devclass; static int atkbdprobe(device_t dev); static int atkbdattach(device_t dev); +static int atkbdresume(device_t dev); static void atkbd_isa_intr(void *arg); static device_method_t atkbd_methods[] = { DEVMETHOD(device_probe, atkbdprobe), DEVMETHOD(device_attach, atkbdattach), + DEVMETHOD(device_resume, atkbdresume), { 0, 0 } }; @@ -116,6 +118,18 @@ atkbdattach(device_t dev) return 0; } +static int +atkbdresume(device_t dev) +{ + keyboard_t *kbd; + + kbd = kbd_get_keyboard(kbd_find_keyboard(ATKBD_DRIVER_NAME, + device_get_unit(dev))); + if (kbd) + (*kbdsw[kbd->kb_index]->clear_state)(kbd); + return 0; +} + static void atkbd_isa_intr(void *arg) { |