Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F162063588
D58004.id181205.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D58004.id181205.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D58004: usb_quirk: implement bad remote wakeup and add ASM1074 SS
Attached
Detach File
Event Timeline
Log In to Comment