|
@@ -890,37 +890,38 @@ static void ich_set_dmamode (struct ata_port *ap, struct ata_device *adev)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_PM
|
|
|
-static struct dmi_system_id piix_broken_suspend_dmi_table[] = {
|
|
|
- {
|
|
|
- .ident = "TECRA M5",
|
|
|
- .matches = {
|
|
|
- DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
- DMI_MATCH(DMI_PRODUCT_NAME, "TECRA M5"),
|
|
|
+static int piix_broken_suspend(void)
|
|
|
+{
|
|
|
+ static struct dmi_system_id sysids[] = {
|
|
|
+ {
|
|
|
+ .ident = "TECRA M5",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "TECRA M5"),
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- .ident = "Satellite U200",
|
|
|
- .matches = {
|
|
|
- DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
- DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U200"),
|
|
|
+ {
|
|
|
+ .ident = "Satellite U205",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U205"),
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- .ident = "Satellite U205",
|
|
|
- .matches = {
|
|
|
- DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
- DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U205"),
|
|
|
+ {
|
|
|
+ .ident = "Portege M500",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE M500"),
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- .ident = "Portege M500",
|
|
|
- .matches = {
|
|
|
- DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
- DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE M500"),
|
|
|
- },
|
|
|
- },
|
|
|
- { }
|
|
|
-};
|
|
|
+ { }
|
|
|
+ };
|
|
|
+
|
|
|
+ if (dmi_check_system(sysids))
|
|
|
+ return 1;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
|
|
|
static int piix_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
|
|
{
|
|
@@ -937,8 +938,7 @@ static int piix_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
|
|
* cycles and power trying to do something to the sleeping
|
|
|
* beauty.
|
|
|
*/
|
|
|
- if (dmi_check_system(piix_broken_suspend_dmi_table) &&
|
|
|
- mesg.event == PM_EVENT_SUSPEND) {
|
|
|
+ if (piix_broken_suspend() && mesg.event == PM_EVENT_SUSPEND) {
|
|
|
pci_save_state(pdev);
|
|
|
|
|
|
/* mark its power state as "unknown", since we don't
|