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:
@@ -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 = {
|
||||
@@ -922,6 +917,12 @@ 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)
|
||||
{
|
||||
struct ata_host *host = dev_get_drvdata(&pdev->dev);
|
||||
@@ -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
|
||||
|
Reference in New Issue
Block a user