1
linux/drivers/ata
Tejun Heo f08048e945 libata: PCI device should be powered up before being accessed
PCI device should be powered up or powered up before its PCI regsiters
are accessed.  Although PCI configuration register access is allowed
in D3hot, PCI device is free to reset its status when transiting from
D3hot to D0 causing configuration data to change.

Many libata SFF drivers which use ata_pci_init_one() read and update
configuration registers before calling ata_pci_init_one() which
enables the PCI device.  Also, in resume paths, some drivers access
registers without resuming the PCI device.

This patch adds a call to pcim_enable_device() in init path if
register is accessed before calling ata_pci_init_one() and make resume
paths first resume PCI devices, access PCI configuration regiters then
resume ATA host.

While at it...

* cmd640 was strange in that it set ->resume even when CONFIG_PM is
  not.  This is by-product of minimal build fix.  Updated.

* In cs5530, Don't BUG() on reinit failure.  Just whine and fail
  resume.

Signed-off-by: Tejun Heo <htejun@gmail.com>
2008-04-17 15:44:16 -04:00
..
ahci.c libata: kill ATA_LFLAG_SKIP_D2H_BSY 2008-04-17 15:44:16 -04:00
ata_generic.c ata_generic: Cenatek support 2008-01-23 05:24:17 -05:00
ata_piix.c PM: Introduce PM_EVENT_HIBERNATE callback state 2008-02-23 10:40:04 -08:00
Kconfig ACPI: fix ATA_ACPI build 2008-03-18 00:26:07 -04:00
libata-acpi.c libata-acpi: improve dock event handling 2008-03-17 08:26:42 -04:00
libata-core.c libata: kill ata_ehi_schedule_probe() 2008-04-17 15:44:16 -04:00
libata-eh.c libata: kill ata_ehi_schedule_probe() 2008-04-17 15:44:16 -04:00
libata-pmp.c libata: kill ata_ehi_schedule_probe() 2008-04-17 15:44:16 -04:00
libata-scsi.c libata: kill ata_ehi_schedule_probe() 2008-04-17 15:44:16 -04:00
libata-sff.c libata-sff: handle controllers w/o ctl register 2008-03-10 20:50:36 -04:00
libata.h make atapi_dmadir static 2008-02-25 17:29:35 -05:00
Makefile [libata] Add support for the RB500 PATA CompactFlash 2008-03-10 20:54:05 -04:00
pata_acpi.c ata: fix sparse warning in pata_acpi.c 2008-02-15 13:51:33 -05:00
pata_ali.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_amd.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_artop.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_at32.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_atiixp.c pata_atiixp: Use 255 sector limit 2008-02-24 00:27:23 -05:00
pata_bf54x.c Blackfin pata-bf54x driver: fix compiling bug - no ata_port struct in struct ata_device any more 2008-02-01 12:26:43 -05:00
pata_cmd64x.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_cmd640.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_cs5520.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_cs5530.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_cs5535.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_cs5536.c ata: fix sparse warning in pata_cs5536.c 2008-02-15 13:51:27 -05:00
pata_cypress.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_efar.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_hpt3x2n.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_hpt3x3.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_hpt37x.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_hpt366.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_icside.c libata: eliminate the home grown dma padding in favour of 2008-02-19 11:36:56 +01:00
pata_isapnp.c pata_isapnp: Polled devices 2007-11-23 19:33:27 -05:00
pata_it821x.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_it8213.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_ixp4xx_cf.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pata_jmicron.c ata: fix sparse warning in pata_jmicron.c 2008-02-15 13:51:29 -05:00
pata_legacy.c ata: fix sparse warnings in pata_legacy.c 2008-02-20 12:08:15 -05:00
pata_marvell.c ata: fix sparse warning in pata_marvell.c 2008-02-15 13:51:30 -05:00
pata_mpc52xx.c Merge branch 'linux-2.6' 2008-01-31 11:25:51 +11:00
pata_mpiix.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_netcell.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_ninja32.c pata_ninja32: setup changes 2008-02-11 14:30:07 -05:00
pata_ns87410.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_ns87415.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_of_platform.c Rename: linux/pata_platform.h to linux/ata_platform.h 2008-02-06 06:54:17 -05:00
pata_oldpiix.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_opti.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_optidma.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_pcmcia.c pata_pcmcia: convert to new data_xfer prototype 2008-01-23 05:24:15 -05:00
pata_pdc202xx_old.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
pata_pdc2027x.c ata: replace remaining __FUNCTION__ occurrences 2008-03-10 20:50:31 -04:00
pata_platform.c Rename: linux/pata_platform.h to linux/ata_platform.h 2008-02-06 06:54:17 -05:00
pata_qdi.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pata_radisys.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_rb500_cf.c [libata] Add support for the RB500 PATA CompactFlash 2008-03-10 20:54:05 -04:00
pata_rz1000.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_sc1200.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_scc.c pata_scc.c: add thaw ops 2008-02-15 13:51:22 -05:00
pata_serverworks.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_sil680.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_sis.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_sl82c105.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_triflex.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_via.c libata: PCI device should be powered up before being accessed 2008-04-17 15:44:16 -04:00
pata_winbond.c pata_winbond: error return 2008-01-23 05:24:17 -05:00
pdc_adma.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_fsl.c libata: kill ATA_LFLAG_SKIP_D2H_BSY 2008-04-17 15:44:16 -04:00
sata_inic162x.c iommu sg merging: sata_inic162x: use pci_set_dma_max_seg_size 2008-02-05 09:44:11 -08:00
sata_mv.c libata: prefer hardreset 2008-04-17 15:44:15 -04:00
sata_nv.c libata: kill ATA_LFLAG_HRST_TO_RESUME 2008-04-17 15:44:15 -04:00
sata_promise.c sata_promise: fix hardreset hotplug events, take 2 2008-03-24 22:31:25 -04:00
sata_promise.h libata annotations and fixes 2008-01-23 05:24:15 -05:00
sata_qstor.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_sil24.c libata: kill ATA_LFLAG_SKIP_D2H_BSY 2008-04-17 15:44:16 -04:00
sata_sil.c libata: kill ATA_LFLAG_HRST_TO_RESUME 2008-04-17 15:44:15 -04:00
sata_sis.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_svw.c [libata] sata_svw: fix reversed port count 2008-04-12 00:11:35 -04:00
sata_sx4.c libata annotations and fixes 2008-01-23 05:24:15 -05:00
sata_uli.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_via.c libata: prefer hardreset 2008-04-17 15:44:15 -04:00
sata_vsc.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sis.h libata: PATA-mode fixes for sis_sata 2007-07-02 10:17:42 -04:00