sata_promise: SATAII-150/300 TX4 port numbering fix
authorMikael Pettersson <mikpe@it.uu.se>
Sun, 6 May 2007 20:14:01 +0000 (22:14 +0200)
committerJeff Garzik <jeff@garzik.org>
Thu, 10 May 2007 00:15:46 +0000 (20:15 -0400)
commit5ac2fe57569c5fbbd4288e3e7fead332b4300ef0
tree05b6f04dbec9c76a0cfb73a3124668d5cee1cc56
parent8ffcfd9d0dc735071379760c23317f15904f9056
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>
drivers/ata/sata_promise.c