From: Miod Vallat Subject: unused usb quirks To: tech@openbsd.org Date: Fri, 4 Jul 2025 18:35:09 +0000 These two quirks are no longer set by anything, so we can remove the related code (HIDMS_REVZ is still used in sys/dev/hid). Index: sys/dev/usb/ums.c =================================================================== RCS file: /OpenBSD/src/sys/dev/usb/ums.c,v diff -u -p -u -p -r1.53 ums.c --- sys/dev/usb/ums.c 26 May 2024 20:06:27 -0000 1.53 +++ sys/dev/usb/ums.c 4 Jul 2025 18:00:23 -0000 @@ -144,8 +144,6 @@ ums_attach(struct device *parent, struct sc->sc_hdev.sc_osize = hid_report_size(desc, size, hid_output, repid); sc->sc_hdev.sc_fsize = hid_report_size(desc, size, hid_feature, repid); - if (sc->sc_quirks & UQ_MS_REVZ) - qflags |= HIDMS_REVZ; if (sc->sc_quirks & UQ_SPUR_BUT_UP) qflags |= HIDMS_SPUR_BUT_UP; if (sc->sc_quirks & UQ_MS_BAD_CLASS) Index: sys/dev/usb/usb_quirks.h =================================================================== RCS file: /OpenBSD/src/sys/dev/usb/usb_quirks.h,v diff -u -p -u -p -r1.18 usb_quirks.h --- sys/dev/usb/usb_quirks.h 24 Mar 2021 02:49:57 -0000 1.18 +++ sys/dev/usb/usb_quirks.h 4 Jul 2025 18:00:23 -0000 @@ -36,7 +36,6 @@ struct usbd_quirks { u_int32_t uq_flags; /* Device problems: */ #define UQ_NO_SET_PROTO 0x00000001 /* cannot handle SET PROTOCOL */ #define UQ_SWAP_UNICODE 0x00000002 /* some Unicode strings swapped */ -#define UQ_MS_REVZ 0x00000004 /* mouse has Z-axis reversed */ #define UQ_NO_STRINGS 0x00000008 /* string descriptors are broken */ #define UQ_BUS_POWERED 0x00000020 /* is bus-powered, despite claim */ #define UQ_SPUR_BUT_UP 0x00000080 /* spurious mouse button up events */ @@ -47,8 +46,6 @@ struct usbd_quirks { #define UQ_BAD_HID 0x00004000 /* device claims uhid, but isn't */ #define UQ_MS_BAD_CLASS 0x00008000 /* mouse doesn't identify properly */ #define UQ_MS_LEADING_BYTE 0x00010000 /* mouse sends unknown leading byte */ -#define UQ_EHCI_NEEDTO_DISOWN 0x00020000 /* must hand device over to USB 1.1 - if attached to EHCI */ #define UQ_MS_VENDOR_BUTTONS 0x00040000 /* mouse reports extra buttons in vendor page */ #define UQ_ALWAYS_OPEN 0x00080000 /* always keep data pipe open */ Index: sys/dev/usb/usb_subr.c =================================================================== RCS file: /OpenBSD/src/sys/dev/usb/usb_subr.c,v diff -u -p -u -p -r1.164 usb_subr.c --- sys/dev/usb/usb_subr.c 1 Mar 2025 14:43:03 -0000 1.164 +++ sys/dev/usb/usb_subr.c 4 Jul 2025 18:00:23 -0000 @@ -1199,19 +1199,6 @@ usbd_new_device(struct device *parent, s if (err) goto fail; - /* send disown request to handover 2.0 to 1.1. */ - if (dev->quirks->uq_flags & UQ_EHCI_NEEDTO_DISOWN) { - /* only effective when the target device is on ehci */ - if (dev->bus->usbrev == USBREV_2_0) { - DPRINTF(("%s: disown request issues to dev:%p on usb2.0 bus\n", - __func__, dev)); - usbd_port_disown_to_1_1(dev->myhub, port); - /* reset_port required to finish disown request */ - usbd_reset_port(dev->myhub, port); - return (USBD_NORMAL_COMPLETION); - } - } - /* Assume 100mA bus powered for now. Changed when configured. */ dev->power = USB_MIN_POWER; dev->self_powered = 0;