summaryrefslogtreecommitdiffstats
path: root/drivers/ide/triflex.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-12-06 14:23:35 +0000
committerArnd Bergmann <arnd@arndb.de>2011-12-06 14:23:35 +0000
commit3642a0a2c7d2d1949988d0fd004a8039c1f3d02f (patch)
treee687c88b1b66ad51a6a6c529f7f328f2d3b625fa /drivers/ide/triflex.c
parent58a273745fbb2fbd01d26e7a60f0acc8c1d99469 (diff)
parentb07fed455c883f07f8e847f5b0d79975b4dc8e7a (diff)
Merge branch 'mxs/saif' into next/drivers
Conflicts: drivers/net/ethernet/cadence/Kconfig
Diffstat (limited to 'drivers/ide/triflex.c')
-rw-r--r--drivers/ide/triflex.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/ide/triflex.c b/drivers/ide/triflex.c
index e53a1b78378..281c9142634 100644
--- a/drivers/ide/triflex.c
+++ b/drivers/ide/triflex.c
@@ -113,12 +113,26 @@ static const struct pci_device_id triflex_pci_tbl[] = {
};
MODULE_DEVICE_TABLE(pci, triflex_pci_tbl);
+#ifdef CONFIG_PM
+static int triflex_ide_pci_suspend(struct pci_dev *dev, pm_message_t state)
+{
+ /*
+ * We must not disable or powerdown the device.
+ * APM bios refuses to suspend if IDE is not accessible.
+ */
+ pci_save_state(dev);
+ return 0;
+}
+#else
+#define triflex_ide_pci_suspend NULL
+#endif
+
static struct pci_driver triflex_pci_driver = {
.name = "TRIFLEX_IDE",
.id_table = triflex_pci_tbl,
.probe = triflex_init_one,
.remove = ide_pci_remove,
- .suspend = ide_pci_suspend,
+ .suspend = triflex_ide_pci_suspend,
.resume = ide_pci_resume,
};