summaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_scc.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-09-03 05:44:57 +0200
committerJeff Garzik <jeff@garzik.org>2007-10-12 20:55:39 +0200
commit7a234aff3d83728fd83cf19df32d3df52566d2ac (patch)
treed991844bf7a7882eacd72a57a1465b25dc55e95d /drivers/ata/pata_scc.c
parentlibata: remiplement ata_hpa_resize() (diff)
downloadlinux-7a234aff3d83728fd83cf19df32d3df52566d2ac.tar.xz
linux-7a234aff3d83728fd83cf19df32d3df52566d2ac.zip
ahci: reimplement port_map handling
Reimplement port_map handling such that 1. Non-zero PORTS_IMPL value is always examined and used if consistent with cap.n_ports. 2. When PI and cat.n_ports are inconsistent, honor cap.n_ports and force port_map to be ((1 << cap.n_ports) - 1). 3. There were two separate places dealing with port_map. Unify them to one. As all newer ahci chips seem to get PI correct and older ones usually have zero PI. Controllers with holes in PI are very unlikely to screw up PI, so #2 makes more sense than following inconsistent PI. Without this change, not setting ATA_FLAG_HONOR_PI when it's needed results in weird detection failure. This changed logic should be able to handle all known cases correctly automatically. Verified on ICH6 (reports 0 PI), ICH8 (with holes in port_map), ICH9, JMB360 and JMB363. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/pata_scc.c')
0 files changed, 0 insertions, 0 deletions