linux/drivers/ata
Mikael Pettersson 5ac2fe5756 sata_promise: SATAII-150/300 TX4 port numbering fix
There is a known problem with sata_promise on SATAII-150/300 TX4
controller cards: it enumerates drives in an order that differs
from the port numbers printed on the controller cards. However,
Promise's BIOS and Linux driver both get the order right.

I investigated Promise's Linux driver (v1.01.0.23), and found
that it explicitly changes the mapping from logical port number
to ATA engine MMIO address on the SATAII TX4 cards. It does this
on all SATAII TX4 cards, without inspecting revision etc. The
SATAII TX2plus cards continue to use the same mapping that was
used for the first-generation chips.

This patch updates sata_promise to use the new port number to
ATA engine mapping on SATAII TX4 cards, which fixes the drive
enumeration order problem on those cards. Tested on several
1st and 2nd generation TX2plus and TX4 chips.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-09 20:15:46 -04:00
..
Kconfig Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
Makefile Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-05-06 13:20:10 -07:00
ahci.c libata: improve 0xff status handling 2007-05-01 07:49:54 -04:00
ata_generic.c pata: cable methods 2007-04-28 14:16:01 -04:00
ata_piix.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
libata-acpi.c libata-acpi: fix _GTF command protocol for ATAPI devices 2007-05-09 20:15:46 -04:00
libata-core.c unify flush_work/flush_work_keventd and rename it to cancel_work_sync 2007-05-09 12:30:53 -07:00
libata-eh.c libata: reimplement reset sequencing 2007-05-01 07:49:54 -04:00
libata-scsi.c libata: separate out ata_host_alloc() and ata_host_register() 2007-04-28 14:16:03 -04:00
libata-sff.c libata: honour host controllers that want just one host 2007-04-30 17:43:48 -07:00
libata.h libata: kill probe_ent and related helpers 2007-04-28 14:16:06 -04:00
pata_ali.c pata_ali: remove all the crap again and switch to cable_detect method 2007-04-28 14:16:00 -04:00
pata_amd.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_artop.c [libata reset-seq] build and merge fixes 2007-05-01 07:49:54 -04:00
pata_atiixp.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_cmd64x.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_cmd640.c drivers/ata/pata_cmd640.c: fix build with CONFIG_PM=n 2007-04-28 15:16:40 -04:00
pata_cs5520.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_cs5530.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_cs5535.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_cypress.c pata: cable methods 2007-04-28 14:16:01 -04:00
pata_efar.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_hpt3x2n.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_hpt3x3.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_hpt37x.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_hpt366.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_icside.c [ARM] Add support for ICSIDE interface on RiscPC 2007-05-03 14:16:56 +01:00
pata_isapnp.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_it821x.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_it8213.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_ixp4xx_cf.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_jmicron.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_legacy.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_marvell.c [libata reset-seq] build and merge fixes 2007-05-01 07:49:54 -04:00
pata_mpc52xx.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_mpiix.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_netcell.c pata_netcell: re-remove all the crud 2007-04-28 14:16:00 -04:00
pata_ns87410.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_oldpiix.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_opti.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_optidma.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_pcmcia.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_pdc202xx_old.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_pdc2027x.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_platform.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_qdi.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_radisys.c pata_radisys: support cable_detect 2007-04-28 14:15:57 -04:00
pata_rz1000.c pata_rz1000: support cable_detect 2007-04-28 14:15:57 -04:00
pata_sc1200.c pata_sc1200: restore cable type 2007-04-28 14:15:57 -04:00
pata_scc.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_serverworks.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_sil680.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_sis.c [libata reset-seq] build and merge fixes 2007-05-01 07:49:54 -04:00
pata_sl82c105.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_triflex.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_via.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_winbond.c SPIN_LOCK_UNLOCKED cleanup in drivers/ata/pata_winbond.c 2007-04-28 15:16:40 -04:00
pdc_adma.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_inic162x.c libata: improve 0xff status handling 2007-05-01 07:49:54 -04:00
sata_mv.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_nv.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
sata_promise.c sata_promise: SATAII-150/300 TX4 port numbering fix 2007-05-09 20:15:46 -04:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sil.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sil24.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
sata_sis.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_svw.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
sata_sx4.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_uli.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_via.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
sata_vsc.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sis.h SiS warning fixes 2007-02-21 04:58:17 -05:00