diff options
| -rw-r--r-- | drivers/usb/host/uhci-hcd.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c index acd101caeeeb..fecc8c971c17 100644 --- a/drivers/usb/host/uhci-hcd.c +++ b/drivers/usb/host/uhci-hcd.c | |||
| @@ -209,24 +209,16 @@ static int resume_detect_interrupts_are_broken(struct uhci_hcd *uhci) | |||
| 209 | 209 | ||
| 210 | static int remote_wakeup_is_broken(struct uhci_hcd *uhci) | 210 | static int remote_wakeup_is_broken(struct uhci_hcd *uhci) |
| 211 | { | 211 | { |
| 212 | static struct dmi_system_id broken_wakeup_table[] = { | ||
| 213 | { | ||
| 214 | .ident = "Asus A7V8X", | ||
| 215 | .matches = { | ||
| 216 | DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK"), | ||
| 217 | DMI_MATCH(DMI_BOARD_NAME, "A7V8X"), | ||
| 218 | DMI_MATCH(DMI_BOARD_VERSION, "REV 1.xx"), | ||
| 219 | } | ||
| 220 | }, | ||
| 221 | { } | ||
| 222 | }; | ||
| 223 | int port; | 212 | int port; |
| 213 | char *sys_info; | ||
| 214 | static char bad_Asus_board[] = "A7V8X"; | ||
| 224 | 215 | ||
| 225 | /* One of Asus's motherboards has a bug which causes it to | 216 | /* One of Asus's motherboards has a bug which causes it to |
| 226 | * wake up immediately from suspend-to-RAM if any of the ports | 217 | * wake up immediately from suspend-to-RAM if any of the ports |
| 227 | * are connected. In such cases we will not set EGSM. | 218 | * are connected. In such cases we will not set EGSM. |
| 228 | */ | 219 | */ |
| 229 | if (dmi_check_system(broken_wakeup_table)) { | 220 | sys_info = dmi_get_system_info(DMI_BOARD_NAME); |
| 221 | if (sys_info && !strcmp(sys_info, bad_Asus_board)) { | ||
| 230 | for (port = 0; port < uhci->rh_numports; ++port) { | 222 | for (port = 0; port < uhci->rh_numports; ++port) { |
| 231 | if (inw(uhci->io_addr + USBPORTSC1 + port * 2) & | 223 | if (inw(uhci->io_addr + USBPORTSC1 + port * 2) & |
| 232 | USBPORTSC_CCS) | 224 | USBPORTSC_CCS) |
