diff options
Diffstat (limited to 'drivers/ata/pata_sis.c')
-rw-r--r-- | drivers/ata/pata_sis.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c index 488e77bcd22b..b6708032f321 100644 --- a/drivers/ata/pata_sis.c +++ b/drivers/ata/pata_sis.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * pata_sis.c - SiS ATA driver | 2 | * pata_sis.c - SiS ATA driver |
3 | * | 3 | * |
4 | * (C) 2005 Red Hat | 4 | * (C) 2005 Red Hat |
5 | * (C) 2007 Bartlomiej Zolnierkiewicz | 5 | * (C) 2007,2009 Bartlomiej Zolnierkiewicz |
6 | * | 6 | * |
7 | * Based upon linux/drivers/ide/pci/sis5513.c | 7 | * Based upon linux/drivers/ide/pci/sis5513.c |
8 | * Copyright (C) 1999-2000 Andre Hedrick <andre@linux-ide.org> | 8 | * Copyright (C) 1999-2000 Andre Hedrick <andre@linux-ide.org> |
@@ -826,9 +826,26 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) | |||
826 | 826 | ||
827 | sis_fixup(pdev, chipset); | 827 | sis_fixup(pdev, chipset); |
828 | 828 | ||
829 | return ata_pci_sff_init_one(pdev, ppi, &sis_sht, chipset); | 829 | return ata_pci_sff_init_one(pdev, ppi, &sis_sht, chipset, 0); |
830 | } | 830 | } |
831 | 831 | ||
832 | #ifdef CONFIG_PM | ||
833 | static int sis_reinit_one(struct pci_dev *pdev) | ||
834 | { | ||
835 | struct ata_host *host = dev_get_drvdata(&pdev->dev); | ||
836 | int rc; | ||
837 | |||
838 | rc = ata_pci_device_do_resume(pdev); | ||
839 | if (rc) | ||
840 | return rc; | ||
841 | |||
842 | sis_fixup(pdev, host->private_data); | ||
843 | |||
844 | ata_host_resume(host); | ||
845 | return 0; | ||
846 | } | ||
847 | #endif | ||
848 | |||
832 | static const struct pci_device_id sis_pci_tbl[] = { | 849 | static const struct pci_device_id sis_pci_tbl[] = { |
833 | { PCI_VDEVICE(SI, 0x5513), }, /* SiS 5513 */ | 850 | { PCI_VDEVICE(SI, 0x5513), }, /* SiS 5513 */ |
834 | { PCI_VDEVICE(SI, 0x5518), }, /* SiS 5518 */ | 851 | { PCI_VDEVICE(SI, 0x5518), }, /* SiS 5518 */ |
@@ -844,7 +861,7 @@ static struct pci_driver sis_pci_driver = { | |||
844 | .remove = ata_pci_remove_one, | 861 | .remove = ata_pci_remove_one, |
845 | #ifdef CONFIG_PM | 862 | #ifdef CONFIG_PM |
846 | .suspend = ata_pci_device_suspend, | 863 | .suspend = ata_pci_device_suspend, |
847 | .resume = ata_pci_device_resume, | 864 | .resume = sis_reinit_one, |
848 | #endif | 865 | #endif |
849 | }; | 866 | }; |
850 | 867 | ||