linux/drivers/ata
Tejun Heo ce54d16163 pata_amd: update mode selection for NV PATAs
Cable detection on NV PATA hosts isn't implemented and the CBLID-
cable isn't wired according to the sepc either, so both host-side and
generic drive-side cable detections are broken.  Till now,
nv_cable_detect() relied on peeking BIOS and ACPI configurations to
upgrade to 80C but this often results in misdetection of 40C cable as
80C.  Also, the original implementation was broken in that by the time
BIOS configuration is read it has already been cleared by programming
PIO0 during reset.

This patch reimplements NV mode selection such that...

* BIOS configuration value is stored during driver attach and restored
  on detach.

* Cable type is fixed to ATA_CBL_PATA_IGN and mode selection is soley
  done by nv_mode_filter() which peeks both BIOS and ACPI
  configurations and filter accordingly.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2008-01-23 05:24:12 -05:00
..
Kconfig pata_ninja32: Cardbus ATA initial support 2008-01-23 05:24:10 -05:00
Makefile pata_ninja32: Cardbus ATA initial support 2008-01-23 05:24:10 -05:00
ahci.c libata: implement protocol tests 2008-01-23 05:24:10 -05:00
ata_generic.c libata: kill ata_id_to_dma_mode() 2008-01-23 05:24:11 -05:00
ata_piix.c ata_piix: separate controller IDs into separate enum 2008-01-23 05:24:12 -05:00
libata-acpi.c libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() 2008-01-23 05:24:12 -05:00
libata-core.c libata: implement ata_timing_cycle2mode() and use it in libata-acpi and pata_acpi 2008-01-23 05:24:12 -05:00
libata-eh.c [libata] Build fix WRT ata_is_xxx() new API introduction 2008-01-23 05:24:11 -05:00
libata-pmp.c libata-pmp: 4726 hates SRST 2008-01-10 16:53:12 -05:00
libata-scsi.c libata: Disable ATA8-ACS proposed Trusted Computing features by default 2008-01-23 05:24:09 -05:00
libata-sff.c libata-sff: tf_load 2008-01-23 05:24:09 -05:00
libata.h libata: move ata_set_mode() to libata-eh.c 2008-01-23 05:24:10 -05:00
pata_acpi.c libata: implement ata_timing_cycle2mode() and use it in libata-acpi and pata_acpi 2008-01-23 05:24:12 -05:00
pata_ali.c libata: checkpatch fixes 2008-01-23 05:24:10 -05:00
pata_amd.c pata_amd: update mode selection for NV PATAs 2008-01-23 05:24:12 -05:00
pata_artop.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_at32.c Several fixes for the AVR32 PATA driver 2007-12-01 17:35:58 -05:00
pata_atiixp.c pata_atiixp: Audit notes on locking 2007-10-12 14:55:42 -04:00
pata_bf54x.c [libata] pata_bf54x: checkpatch fixes 2008-01-15 15:58:59 -05:00
pata_cmd64x.c pata_cmd64x.c typo fix 2007-10-20 01:02:48 +02:00
pata_cmd640.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_cs5520.c [libata] struct pci_dev related cleanups 2007-10-12 14:55:47 -04:00
pata_cs5530.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_cs5535.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_cs5536.c pata_cs5536: MWDMA fix 2007-10-19 22:55:03 -04: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 libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_hpt3x2n.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -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 pata_hpt37x: Fix HPT374 detection 2007-12-19 14:29:01 -08:00
pata_hpt366.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_icside.c Fix pata_icside build for recent libata API changes 2007-10-25 02:05:26 -04:00
pata_isapnp.c pata_isapnp: Polled devices 2007-11-23 19:33:27 -05:00
pata_it821x.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_it8213.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_ixp4xx_cf.c pata_ixp4xx_cf: fix compilation introduced by ata_port_desc() conversion 2008-01-10 16:53:10 -05:00
pata_jmicron.c pata_jmicron: fix disabled port handling in jmicron_pre_reset() 2007-11-23 19:23:55 -05:00
pata_legacy.c libata fixes for sparse-found problems 2008-01-15 15:58:36 -05:00
pata_marvell.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_mpc52xx.c mpc52xx-ata: fix compile warning (unused variable) 2007-10-14 08:57:30 -07:00
pata_mpiix.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_netcell.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_ninja32.c libata: checkpatch fixes 2008-01-23 05:24:10 -05:00
pata_ns87410.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_ns87415.c pata_ns87415: define SUPERIO_IDE_MAX_RETRIES 2007-10-29 06:21:33 -04: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] fix 'if(' and similar areas that lack whitespace 2007-10-29 06:15:27 -04:00
pata_pcmcia.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
pata_pdc202xx_old.c pata_pdc202xx_old: Fix crashes with ATAPI 2008-01-19 21:29:39 -08:00
pata_pdc2027x.c [libata] fix 'if(' and similar areas that lack whitespace 2007-10-29 06:15:27 -04:00
pata_platform.c libata: pata_platform: Support polling-mode configuration. 2007-11-08 13:08:41 -05:00
pata_qdi.c libata fixes for sparse-found problems 2008-01-15 15:58:36 -05:00
pata_radisys.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02: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 libata: implement ata_wait_after_reset() 2007-10-29 06:15:27 -04:00
pata_serverworks.c pata_serverworks: Fix problem with some drive combinations 2007-11-05 18:08:46 -05:00
pata_sil680.c pata_sil680: kill bogus reset code (take 2) 2007-11-23 19:23:55 -05:00
pata_sis.c pata_sis.c: Add Packard Bell EasyNote K5305 to laptops 2007-11-19 12:28:11 +09:00
pata_sl82c105.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -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: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() 2008-01-23 05:24:12 -05:00
pata_winbond.c libata fixes for sparse-found problems 2008-01-15 15:58:36 -05:00
pdc_adma.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_fsl.c libata: implement protocol tests 2008-01-23 05:24:10 -05:00
sata_inic162x.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_mv.c sata_mv: improve warnings about Highpoint RocketRAID 23xx cards 2007-12-17 20:33:12 -05:00
sata_nv.c sata_nv: don't use legacy DMA in ADMA mode (v3) 2007-12-04 14:01:18 -05:00
sata_promise.c sata_promise: make pdc_atapi_pkt() use values from qc->tf 2008-01-23 05:24:12 -05:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c sata_qstor: use hardreset instead of softreset 2008-01-10 16:52:41 -05:00
sata_sil.c libata: implement protocol tests 2008-01-23 05:24:10 -05:00
sata_sil24.c libata: implement protocol tests 2008-01-23 05:24:10 -05:00
sata_sis.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_svw.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_sx4.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_uli.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_via.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -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