diff options
Diffstat (limited to 'drivers/ata/pata_cs5520.c')
-rw-r--r-- | drivers/ata/pata_cs5520.c | 15 |
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 | ||
311 | static int cs5520_reinit_one(struct pci_dev *pdev) | 315 | static 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 | /** |