aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_cs5520.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/pata_cs5520.c')
-rw-r--r--drivers/ata/pata_cs5520.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/ata/pata_cs5520.c b/drivers/ata/pata_cs5520.c
index 7ed279b0a12e..dd6b2355fcdc 100644
--- a/drivers/ata/pata_cs5520.c
+++ b/drivers/ata/pata_cs5520.c
@@ -203,6 +203,10 @@ static int __devinit cs5520_init_one(struct pci_dev *pdev, const struct pci_devi
203 struct ata_ioports *ioaddr; 203 struct ata_ioports *ioaddr;
204 int i, rc; 204 int i, rc;
205 205
206 rc = pcim_enable_device(pdev);
207 if (rc)
208 return rc;
209
206 /* IDE port enable bits */ 210 /* IDE port enable bits */
207 pci_read_config_byte(pdev, 0x60, &pcicfg); 211 pci_read_config_byte(pdev, 0x60, &pcicfg);
208 212
@@ -310,11 +314,20 @@ static int __devinit cs5520_init_one(struct pci_dev *pdev, const struct pci_devi
310 314
311static int cs5520_reinit_one(struct pci_dev *pdev) 315static int cs5520_reinit_one(struct pci_dev *pdev)
312{ 316{
317 struct ata_host *host = dev_get_drvdata(&pdev->dev);
313 u8 pcicfg; 318 u8 pcicfg;
319 int rc;
320
321 rc = ata_pci_device_do_resume(pdev);
322 if (rc)
323 return rc;
324
314 pci_read_config_byte(pdev, 0x60, &pcicfg); 325 pci_read_config_byte(pdev, 0x60, &pcicfg);
315 if ((pcicfg & 0x40) == 0) 326 if ((pcicfg & 0x40) == 0)
316 pci_write_config_byte(pdev, 0x60, pcicfg | 0x40); 327 pci_write_config_byte(pdev, 0x60, pcicfg | 0x40);
317 return ata_pci_device_resume(pdev); 328
329 ata_host_resume(host);
330 return 0;
318} 331}
319 332
320/** 333/**