diff options
-rw-r--r-- | drivers/ata/libata-core.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 43c329544c00..b81265d1e469 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -2183,6 +2183,17 @@ int ata_bus_probe(struct ata_port *ap) | |||
2183 | if (ap->ops->cable_detect) | 2183 | if (ap->ops->cable_detect) |
2184 | ap->cbl = ap->ops->cable_detect(ap); | 2184 | ap->cbl = ap->ops->cable_detect(ap); |
2185 | 2185 | ||
2186 | /* We may have SATA bridge glue hiding here irrespective of the | ||
2187 | reported cable types and sensed types */ | ||
2188 | ata_link_for_each_dev(dev, &ap->link) { | ||
2189 | if (!ata_dev_enabled(dev)) | ||
2190 | continue; | ||
2191 | /* SATA drives indicate we have a bridge. We don't know which | ||
2192 | end of the link the bridge is which is a problem */ | ||
2193 | if (ata_id_is_sata(dev->id)) | ||
2194 | ap->cbl = ATA_CBL_SATA; | ||
2195 | } | ||
2196 | |||
2186 | /* After the identify sequence we can now set up the devices. We do | 2197 | /* After the identify sequence we can now set up the devices. We do |
2187 | this in the normal order so that the user doesn't get confused */ | 2198 | this in the normal order so that the user doesn't get confused */ |
2188 | 2199 | ||