aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_serverworks.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/pata_serverworks.c')
-rw-r--r--drivers/ata/pata_serverworks.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c
index a589c0fa0dbb..6702df37cfed 100644
--- a/drivers/ata/pata_serverworks.c
+++ b/drivers/ata/pata_serverworks.c
@@ -498,6 +498,11 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id
498 } 498 }
499 }; 499 };
500 const struct ata_port_info *ppi[] = { &info[id->driver_data], NULL }; 500 const struct ata_port_info *ppi[] = { &info[id->driver_data], NULL };
501 int rc;
502
503 rc = pcim_enable_device(pdev);
504 if (rc)
505 return rc;
501 506
502 /* Force master latency timer to 64 PCI clocks */ 507 /* Force master latency timer to 64 PCI clocks */
503 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0x40); 508 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0x40);
@@ -535,11 +540,17 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id
535#ifdef CONFIG_PM 540#ifdef CONFIG_PM
536static int serverworks_reinit_one(struct pci_dev *pdev) 541static int serverworks_reinit_one(struct pci_dev *pdev)
537{ 542{
543 struct ata_host *host = dev_get_drvdata(&pdev->dev);
544 int rc;
545
546 rc = ata_pci_device_do_resume(pdev);
547 if (rc)
548 return rc;
549
538 /* Force master latency timer to 64 PCI clocks */ 550 /* Force master latency timer to 64 PCI clocks */
539 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0x40); 551 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0x40);
540 552
541 switch (pdev->device) 553 switch (pdev->device) {
542 {
543 case PCI_DEVICE_ID_SERVERWORKS_OSB4IDE: 554 case PCI_DEVICE_ID_SERVERWORKS_OSB4IDE:
544 serverworks_fixup_osb4(pdev); 555 serverworks_fixup_osb4(pdev);
545 break; 556 break;
@@ -554,7 +565,9 @@ static int serverworks_reinit_one(struct pci_dev *pdev)
554 serverworks_fixup_ht1000(pdev); 565 serverworks_fixup_ht1000(pdev);
555 break; 566 break;
556 } 567 }
557 return ata_pci_device_resume(pdev); 568
569 ata_host_resume(host);
570 return 0;
558} 571}
559#endif 572#endif
560 573