Skip to contentSkip to conversation

pata_atp867x: add Power Management support

PATCH New Bartlomiej Zolnierkiewicz 1 participant 1 message Sep 20, 2009 libata

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pata_atp867x: add Power Management support

From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] pata_atp867x: add Power Management support

---
needs testing with the real hardware

 drivers/ata/pata_atp867x.c |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
drivers/ata/pata_atp867x.c +21 -0
Index: b/drivers/ata/pata_atp867x.c
===================================================================
@@ -507,6 +507,23 @@ err_out:
 	return rc;
 }
 
+#ifdef CONFIG_PM
+static int atp867x_reinit_one(struct pci_dev *pdev)
+{
+	struct ata_host *host = dev_get_drvdata(&pdev->dev);
+	int rc;
+
+	rc = ata_pci_device_do_resume(pdev);
+	if (rc)
+		return rc;
+
+	atp867x_fixup(host);
+
+	ata_host_resume(host);
+	return 0;
+}
+#endif
+
 static struct pci_device_id atp867x_pci_tbl[] = {
 	{ PCI_VDEVICE(ARTOP, PCI_DEVICE_ID_ARTOP_ATP867A),	0 },
 	{ PCI_VDEVICE(ARTOP, PCI_DEVICE_ID_ARTOP_ATP867B),	0 },
@@ -518,6 +535,10 @@ static struct pci_driver atp867x_driver 
 	.id_table 	= atp867x_pci_tbl,
 	.probe 		= atp867x_init_one,
 	.remove		= ata_pci_remove_one,
+#ifdef CONFIG_PM
+	.suspend	= ata_pci_device_suspend,
+	.resume		= atp867x_reinit_one,
+#endif
 };
 
 static int __init atp867x_init(void)