diff options
author | Vladimir Kondratyev <wulf@FreeBSD.org> | 2023-08-03 16:10:50 +0000 |
---|---|---|
committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2023-08-03 16:10:50 +0000 |
commit | 4b1712817e56840acc5e9fd59028ef79007ff579 (patch) | |
tree | 76debd7533a189da98c37a4486910d1f46481613 /sys/dev/usb | |
parent | b109946d7564afde6f3d3b3a78f428c8da14e17c (diff) |
hid: Add child device parameter to HID methods
Some devices like Apple HID-over-SPI may contain more than one report
descriptors necessitating creation of multiple hidbus children.
Add indentificator of child devices to distinct them.
No functional changes intended.
Differential Revision: https://reviews.freebsd.org/D41246
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/input/usbhid.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/sys/dev/usb/input/usbhid.c b/sys/dev/usb/input/usbhid.c index 95be0b647da9..a88d2cfac1c2 100644 --- a/sys/dev/usb/input/usbhid.c +++ b/sys/dev/usb/input/usbhid.c @@ -333,8 +333,8 @@ usbhid_xfer_check_len(struct usbhid_softc* sc, int xfer_idx, hid_size_t len) } static void -usbhid_intr_setup(device_t dev, hid_intr_t intr, void *context, - struct hid_rdesc_info *rdesc) +usbhid_intr_setup(device_t dev, device_t child __unused, hid_intr_t intr, + void *context, struct hid_rdesc_info *rdesc) { struct usbhid_softc* sc = device_get_softc(dev); uint16_t n; @@ -406,7 +406,7 @@ usbhid_intr_setup(device_t dev, hid_intr_t intr, void *context, } static void -usbhid_intr_unsetup(device_t dev) +usbhid_intr_unsetup(device_t dev, device_t child __unused) { struct usbhid_softc* sc = device_get_softc(dev); @@ -419,7 +419,7 @@ usbhid_intr_unsetup(device_t dev) } static int -usbhid_intr_start(device_t dev) +usbhid_intr_start(device_t dev, device_t child __unused) { struct usbhid_softc* sc = device_get_softc(dev); @@ -450,7 +450,7 @@ usbhid_intr_start(device_t dev) } static int -usbhid_intr_stop(device_t dev) +usbhid_intr_stop(device_t dev, device_t child __unused) { struct usbhid_softc* sc = device_get_softc(dev); @@ -463,7 +463,7 @@ usbhid_intr_stop(device_t dev) } static void -usbhid_intr_poll(device_t dev) +usbhid_intr_poll(device_t dev, device_t child __unused) { struct usbhid_softc* sc = device_get_softc(dev); @@ -538,7 +538,8 @@ usbhid_sync_xfer(struct usbhid_softc* sc, int xfer_idx, } static int -usbhid_get_rdesc(device_t dev, void *buf, hid_size_t len) +usbhid_get_rdesc(device_t dev, device_t child __unused, void *buf, + hid_size_t len) { struct usbhid_softc* sc = device_get_softc(dev); int error; @@ -553,8 +554,8 @@ usbhid_get_rdesc(device_t dev, void *buf, hid_size_t len) } static int -usbhid_get_report(device_t dev, void *buf, hid_size_t maxlen, - hid_size_t *actlen, uint8_t type, uint8_t id) +usbhid_get_report(device_t dev, device_t child __unused, void *buf, + hid_size_t maxlen, hid_size_t *actlen, uint8_t type, uint8_t id) { struct usbhid_softc* sc = device_get_softc(dev); union usbhid_device_request req; @@ -579,8 +580,8 @@ usbhid_get_report(device_t dev, void *buf, hid_size_t maxlen, } static int -usbhid_set_report(device_t dev, const void *buf, hid_size_t len, uint8_t type, - uint8_t id) +usbhid_set_report(device_t dev, device_t child __unused, const void *buf, + hid_size_t len, uint8_t type, uint8_t id) { struct usbhid_softc* sc = device_get_softc(dev); union usbhid_device_request req; @@ -602,7 +603,8 @@ usbhid_set_report(device_t dev, const void *buf, hid_size_t len, uint8_t type, } static int -usbhid_read(device_t dev, void *buf, hid_size_t maxlen, hid_size_t *actlen) +usbhid_read(device_t dev, device_t child __unused, void *buf, + hid_size_t maxlen, hid_size_t *actlen) { struct usbhid_softc* sc = device_get_softc(dev); union usbhid_device_request req; @@ -621,7 +623,8 @@ usbhid_read(device_t dev, void *buf, hid_size_t maxlen, hid_size_t *actlen) } static int -usbhid_write(device_t dev, const void *buf, hid_size_t len) +usbhid_write(device_t dev, device_t child __unused, const void *buf, + hid_size_t len) { struct usbhid_softc* sc = device_get_softc(dev); union usbhid_device_request req; @@ -637,7 +640,8 @@ usbhid_write(device_t dev, const void *buf, hid_size_t len) } static int -usbhid_set_idle(device_t dev, uint16_t duration, uint8_t id) +usbhid_set_idle(device_t dev, device_t child __unused, uint16_t duration, + uint8_t id) { struct usbhid_softc* sc = device_get_softc(dev); union usbhid_device_request req; @@ -659,7 +663,7 @@ usbhid_set_idle(device_t dev, uint16_t duration, uint8_t id) } static int -usbhid_set_protocol(device_t dev, uint16_t protocol) +usbhid_set_protocol(device_t dev, device_t child __unused, uint16_t protocol) { struct usbhid_softc* sc = device_get_softc(dev); union usbhid_device_request req; @@ -680,7 +684,8 @@ usbhid_set_protocol(device_t dev, uint16_t protocol) } static int -usbhid_ioctl(device_t dev, unsigned long cmd, uintptr_t data) +usbhid_ioctl(device_t dev, device_t child __unused, unsigned long cmd, + uintptr_t data) { struct usbhid_softc* sc = device_get_softc(dev); struct usb_ctl_request *ucr; |