static int remote_wakeup_is_broken(struct uhci_hcd *uhci)
 {
-       static struct dmi_system_id broken_wakeup_table[] = {
-               {
-                       .ident = "Asus A7V8X",
-                       .matches = {
-                               DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK"),
-                               DMI_MATCH(DMI_BOARD_NAME, "A7V8X"),
-                               DMI_MATCH(DMI_BOARD_VERSION, "REV 1.xx"),
-                       }
-               },
-               { }
-       };
        int port;
+       char *sys_info;
+       static char bad_Asus_board[] = "A7V8X";
 
        /* One of Asus's motherboards has a bug which causes it to
         * wake up immediately from suspend-to-RAM if any of the ports
         * are connected.  In such cases we will not set EGSM.
         */
-       if (dmi_check_system(broken_wakeup_table)) {
+       sys_info = dmi_get_system_info(DMI_BOARD_NAME);
+       if (sys_info && !strcmp(sys_info, bad_Asus_board)) {
                for (port = 0; port < uhci->rh_numports; ++port) {
                        if (inw(uhci->io_addr + USBPORTSC1 + port * 2) &
                                        USBPORTSC_CCS)