1
linux/drivers/ata
Alan Cox c5038fc05d libata/pata_it821x: Improve handling of poorly compatible emulations
Some it821x RAID firmwares return 0 for the err return off both devices.
A similar issue occurs with the slave returning 0 not 1 if you plug a
gigabyte sata ramdisk into a controller that fakes two SATA ports as
master/slave on an SFF channel.

The patch does the following

- Allow the 'failed diagnostics' case on both master and slave
- Move the HORKAGE_DIAGNOSTIC check after ->dev_config

This second change also allows IT821x to fix up a problem where we report
drive diagnostic failures when in fact the drive is fine but the
microcontroller firmware doesn't appear to get it right. IT821x clears
the flag again to avoid giving the user bogus warnings about their disk.

The other IT821x change is a bit ugly, we slightly abuse the cable type
hook to fiddle with the identify data for the devices. We could add a new
hook for this but as we have only one offender and no more seeming likely
it seems better to keep libata-core clean.

Please let this sit in -mm briefly, just in case the relaxed checking
breaks some other emulated interface.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2008-01-23 05:24:15 -05:00
..
ahci.c libata: convert to chained sg 2008-01-23 05:24:14 -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
Kconfig pata_ninja32: Cardbus ATA initial support 2008-01-23 05:24:10 -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/pata_it821x: Improve handling of poorly compatible emulations 2008-01-23 05:24:15 -05:00
libata-eh.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
libata-pmp.c libata-pmp: 4726 hates SRST 2008-01-10 16:53:12 -05:00
libata-scsi.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
libata-sff.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
libata.h libata: move ata_set_mode() to libata-eh.c 2008-01-23 05:24:10 -05:00
Makefile pata_ninja32: Cardbus ATA initial support 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: convert to chained sg 2008-01-23 05:24:14 -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: checkpatch fixes 2008-01-23 05:24:13 -05: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 libata: convert to chained sg 2008-01-23 05:24:14 -05:00
pata_isapnp.c pata_isapnp: Polled devices 2007-11-23 19:33:27 -05:00
pata_it821x.c libata/pata_it821x: Improve handling of poorly compatible emulations 2008-01-23 05:24:15 -05: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 libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -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: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -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 pata_pcmcia: Add support for dumb 8bit IDE emulations 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 [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: 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_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: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05: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: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pdc_adma.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_fsl.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_inic162x.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
sata_mv.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_nv.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_promise.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_promise.h
sata_qstor.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_sil24.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_sil.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: convert to chained sg 2008-01-23 05:24:14 -05: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