|
@@ -2183,6 +2183,17 @@ int ata_bus_probe(struct ata_port *ap)
|
|
|
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 */
|
|
|
+ ata_link_for_each_dev(dev, &ap->link) {
|
|
|
+ if (!ata_dev_enabled(dev))
|
|
|
+ continue;
|
|
|
+ /* SATA drives indicate we have a bridge. We don't know which
|
|
|
+ end of the link the bridge is which is a problem */
|
|
|
+ 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 */
|
|
|
|