linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] libata: Handle SATA bridges better
@ 2007-05-21 14:13 Alan Cox
  2007-05-21 14:22 ` Tejun Heo
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Cox @ 2007-05-21 14:13 UTC (permalink / raw)
  To: akpm, jgarzik, linux-ide

In some situations we find that SATA devices are attached via PATA/SATA
bridges. When we find this we need to change a couple of bits of behaviour

-	Error changedown behaviour for SATA is different - no point
dropping to PIO
-	40/80 wire cable detection testing cannot be done.

Thus we need to detect this case and update the cable type accordingly.

Signed-off-by: Alan Cox <alan@redhat.com>

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.22-rc1-mm1/drivers/ata/libata-core.c linux-2.6.22-rc1-mm1/drivers/ata/libata-core.c
--- linux.vanilla-2.6.22-rc1-mm1/drivers/ata/libata-core.c	2007-05-18 16:22:53.000000000 +0100
+++ linux-2.6.22-rc1-mm1/drivers/ata/libata-core.c	2007-05-18 16:40:23.000000000 +0100
@@ -2186,6 +2186,16 @@
 	if (ap->ops->cable_detect)
 		ap->cbl = ap->ops->cable_detect(ap);
 
+	/* We may have SATA bridge glue hiding here irrespective of the
+	   reported cable types and sensed types */
+	for (i = 0; i < ATA_MAX_DEVICES; i++) {
+		dev = &ap->device[i];
+		if (!ata_dev_enabled(dev))
+			continue;
+		if (ata_id_is_sata(dev->id))
+			ap->cbl = ATA_CBL_SATA;
+	}
+
 	/* After the identify sequence we can now set up the devices. We do
 	   this in the normal order so that the user doesn't get confused */
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-05-21 16:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-21 14:13 [PATCH] libata: Handle SATA bridges better Alan Cox
2007-05-21 14:22 ` Tejun Heo
2007-05-21 14:47   ` Alan Cox
2007-05-21 14:52     ` Tejun Heo
2007-05-21 16:14       ` Alan Cox
2007-05-21 16:12         ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).