Page MenuHomeFreeBSD

D58004.id181205.diff
No OneTemporary

D58004.id181205.diff

diff --git a/share/man/man4/usb_quirk.4 b/share/man/man4/usb_quirk.4
--- a/share/man/man4/usb_quirk.4
+++ b/share/man/man4/usb_quirk.4
@@ -58,6 +58,8 @@
bad audio spec version number
.It UQ_BAD_AUDIO
device claims audio class, but is not
+.It UQ_BAD_REMOTE_WAKEUP
+device claims remote wakup, but is not
.It UQ_BROKEN_BIDIR
printer has broken bidir mode
.It UQ_BUS_POWERED
diff --git a/sys/dev/usb/quirk/usb_quirk.h b/sys/dev/usb/quirk/usb_quirk.h
--- a/sys/dev/usb/quirk/usb_quirk.h
+++ b/sys/dev/usb/quirk/usb_quirk.h
@@ -45,6 +45,7 @@
UQ_AU_NO_XU, /* audio device has broken extension unit */
UQ_BAD_ADC, /* bad audio spec version number */
UQ_BAD_AUDIO, /* device claims audio class, but isn't */
+ UQ_BAD_REMOTE_WAKEUP, /* device claims remote-wakeup, but isn't */
UQ_BROKEN_BIDIR, /* printer has broken bidir mode */
UQ_BUS_POWERED, /* device is bus powered, despite claim */
UQ_HID_IGNORE, /* device should be ignored by hid class */
diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c
--- a/sys/dev/usb/quirk/usb_quirk.c
+++ b/sys/dev/usb/quirk/usb_quirk.c
@@ -111,6 +111,7 @@
USB_QUIRK(ELSA, MODEM1, UQ_CFG_INDEX_1),
USB_QUIRK(PLANEX2, MZKUE150N, UQ_CFG_INDEX_1),
USB_QUIRK(CISCOLINKSYS, USB3GIGV1, UQ_CFG_INDEX_1),
+ USB_QUIRK(ASM, ASM1074_SS, UQ_BAD_REMOTE_WAKEUP),
/* Quirks for printer devices */
USB_QUIRK(HP, 895C, UQ_BROKEN_BIDIR),
USB_QUIRK(HP, 880C, UQ_BROKEN_BIDIR),
@@ -590,6 +591,7 @@
[UQ_AU_NO_XU] = "UQ_AU_NO_XU",
[UQ_BAD_ADC] = "UQ_BAD_ADC",
[UQ_BAD_AUDIO] = "UQ_BAD_AUDIO",
+ [UQ_BAD_REMOTE_WAKEUP] = "UQ_BAD_REMOTE_WAKUP",
[UQ_BROKEN_BIDIR] = "UQ_BROKEN_BIDIR",
[UQ_BUS_POWERED] = "UQ_BUS_POWERED",
[UQ_HID_IGNORE] = "UQ_HID_IGNORE",
diff --git a/sys/dev/usb/usb_device.h b/sys/dev/usb/usb_device.h
--- a/sys/dev/usb/usb_device.h
+++ b/sys/dev/usb/usb_device.h
@@ -95,6 +95,7 @@
uint8_t no_strings:1; /* set if USB device does not support
* strings */
uint8_t remote_wakeup:1; /* set if remote wakeup is enabled */
+ uint8_t uq_bad_remote_wakeup:1; /* set if remote wakeup is broken */
uint8_t uq_bus_powered:1; /* set if BUS powered quirk is present */
/*
diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c
--- a/sys/dev/usb/usb_device.c
+++ b/sys/dev/usb/usb_device.c
@@ -1966,6 +1966,9 @@
*/
usb_init_attach_arg(udev, &uaa);
+ if (usb_test_quirk(&uaa, UQ_BAD_REMOTE_WAKEUP)) {
+ udev->flags.uq_bad_remote_wakeup = 1;
+ }
if (usb_test_quirk(&uaa, UQ_BUS_POWERED)) {
udev->flags.uq_bus_powered = 1;
}
@@ -2865,7 +2868,8 @@
const struct usb_config_descriptor *cdp;
cdp = udev->cdesc;
- if ((cdp != NULL) && (udev->flags.usb_mode == USB_MODE_HOST)) {
+ if ((cdp != NULL) && (udev->flags.usb_mode == USB_MODE_HOST)
+ && (udev->flags.uq_bad_remote_wakeup == 1)) {
return (cdp->bmAttributes & UC_REMOTE_WAKEUP);
}
return (0); /* not supported */
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -1283,6 +1283,9 @@
product ASIX AX88772B 0x772b AX88772B USB 2.0 10/100 Ethernet
product ASIX AX88772B_1 0x7e2b AX88772B USB 2.0 10/100 Ethernet
+/* ASMedia products */
+product ASM ASM1074_SS 0x3074 ASM1074 SuperSpeed Hub
+
/* ASUS products */
product ASUS2 USBN11 0x0b05 USB-N11
product ASUS RT2570 0x1706 RT2500USB Wireless Adapter

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 10, 9:17 AM (16 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34923557
Default Alt Text
D58004.id181205.diff (3 KB)

Event Timeline