mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 09:02:00 +00:00
ata_piix: implement piix_borken_suspend()
Separate out broken suspend blacklist matching into piix_broken_suspend(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
0b62e13b5c
commit
8c3832ebeb
@ -890,7 +890,9 @@ 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[] = {
|
||||
static int piix_broken_suspend(void)
|
||||
{
|
||||
static struct dmi_system_id sysids[] = {
|
||||
{
|
||||
.ident = "TECRA M5",
|
||||
.matches = {
|
||||
@ -898,13 +900,6 @@ static struct dmi_system_id piix_broken_suspend_dmi_table[] = {
|
||||
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 = {
|
||||
@ -920,7 +915,13 @@ static struct dmi_system_id piix_broken_suspend_dmi_table[] = {
|
||||
},
|
||||
},
|
||||
{ }
|
||||
};
|
||||
};
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user