diff options
author | Marcus Glocker <mglocker@cvs.openbsd.org> | 2020-08-23 11:08:03 +0000 |
---|---|---|
committer | Marcus Glocker <mglocker@cvs.openbsd.org> | 2020-08-23 11:08:03 +0000 |
commit | 6bdc185ab58e3a7b39c26e37787a75f530be5de8 (patch) | |
tree | f813c202c37a1856bcf01c39e08fb95d8efe16f2 /sys/dev/usb/uwacom.c | |
parent | 622b3da52f0200d76d1e9763321b06003159a726 (diff) |
uhidev(4) does apply the SET_IDLE request to all its child drivers
today. This doesn't seem to be right, since SET_IDLE limits the
reporting frequency for interrupt IN endpoints, normally only required
on keyboard and mouse-like input devices. We noticed recently that
other device types, like e.g. the Cyrus soundKey uaudio(4), will stall
after the SET_IDLE request has been issued.
Therefore we move the SET_IDLE request only to the uhidev(4) child
drivers which seem to require this request. Those we have identified
to be; ukbd(4), ums(4), umstc(4), umt(4), utpms(4), and uwacom(4).
Suggested and ok mpi@
Diffstat (limited to 'sys/dev/usb/uwacom.c')
-rw-r--r-- | sys/dev/usb/uwacom.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/usb/uwacom.c b/sys/dev/usb/uwacom.c index f93f18f220a..30e087ae1eb 100644 --- a/sys/dev/usb/uwacom.c +++ b/sys/dev/usb/uwacom.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uwacom.c,v 1.1 2016/09/12 08:12:06 mpi Exp $ */ +/* $OpenBSD: uwacom.c,v 1.2 2020/08/23 11:08:02 mglocker Exp $ */ /* * Copyright (c) 2016 Frank Groeneveld <frank@frankgroeneveld.nl> @@ -26,6 +26,7 @@ #include <dev/usb/usbhid.h> #include <dev/usb/usbdi.h> +#include <dev/usb/usbdi_util.h> #include <dev/usb/usbdevs.h> #include <dev/usb/uhidev.h> @@ -102,6 +103,8 @@ uwacom_attach(struct device *parent, struct device *self, void *aux) sc->sc_hdev.sc_udev = uaa->device; sc->sc_hdev.sc_report_id = uha->reportid; + usbd_set_idle(uha->parent->sc_udev, uha->parent->sc_ifaceno, 0, 0); + uhidev_get_report_desc(uha->parent, &desc, &size); repid = uha->reportid; sc->sc_hdev.sc_isize = hid_report_size(desc, size, hid_input, repid); |