diff options
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r-- | drivers/ata/libata-core.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 8cb0b360bfd8..2ff633c119e2 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -4156,29 +4156,33 @@ static int cable_is_40wire(struct ata_port *ap) | |||
4156 | struct ata_link *link; | 4156 | struct ata_link *link; |
4157 | struct ata_device *dev; | 4157 | struct ata_device *dev; |
4158 | 4158 | ||
4159 | /* If the controller thinks we are 40 wire, we are */ | 4159 | /* If the controller thinks we are 40 wire, we are. */ |
4160 | if (ap->cbl == ATA_CBL_PATA40) | 4160 | if (ap->cbl == ATA_CBL_PATA40) |
4161 | return 1; | 4161 | return 1; |
4162 | /* If the controller thinks we are 80 wire, we are */ | 4162 | |
4163 | /* If the controller thinks we are 80 wire, we are. */ | ||
4163 | if (ap->cbl == ATA_CBL_PATA80 || ap->cbl == ATA_CBL_SATA) | 4164 | if (ap->cbl == ATA_CBL_PATA80 || ap->cbl == ATA_CBL_SATA) |
4164 | return 0; | 4165 | return 0; |
4165 | /* If the system is known to be 40 wire short cable (eg laptop), | 4166 | |
4166 | then we allow 80 wire modes even if the drive isn't sure */ | 4167 | /* If the system is known to be 40 wire short cable (eg |
4168 | * laptop), then we allow 80 wire modes even if the drive | ||
4169 | * isn't sure. | ||
4170 | */ | ||
4167 | if (ap->cbl == ATA_CBL_PATA40_SHORT) | 4171 | if (ap->cbl == ATA_CBL_PATA40_SHORT) |
4168 | return 0; | 4172 | return 0; |
4169 | /* If the controller doesn't know we scan | 4173 | |
4170 | 4174 | /* If the controller doesn't know, we scan. | |
4171 | - Note: We look for all 40 wire detects at this point. | 4175 | * |
4172 | Any 80 wire detect is taken to be 80 wire cable | 4176 | * Note: We look for all 40 wire detects at this point. Any |
4173 | because | 4177 | * 80 wire detect is taken to be 80 wire cable because |
4174 | - In many setups only the one drive (slave if present) | 4178 | * - in many setups only the one drive (slave if present) will |
4175 | will give a valid detect | 4179 | * give a valid detect |
4176 | - If you have a non detect capable drive you don't | 4180 | * - if you have a non detect capable drive you don't want it |
4177 | want it to colour the choice | 4181 | * to colour the choice |
4178 | */ | 4182 | */ |
4179 | ata_port_for_each_link(link, ap) { | 4183 | ata_port_for_each_link(link, ap) { |
4180 | ata_link_for_each_dev(dev, link) { | 4184 | ata_link_for_each_dev(dev, link) { |
4181 | if (!ata_is_40wire(dev)) | 4185 | if (ata_dev_enabled(dev) && !ata_is_40wire(dev)) |
4182 | return 0; | 4186 | return 0; |
4183 | } | 4187 | } |
4184 | } | 4188 | } |
@@ -4553,6 +4557,7 @@ void swap_buf_le16(u16 *buf, unsigned int buf_words) | |||
4553 | /** | 4557 | /** |
4554 | * ata_qc_new_init - Request an available ATA command, and initialize it | 4558 | * ata_qc_new_init - Request an available ATA command, and initialize it |
4555 | * @dev: Device from whom we request an available command structure | 4559 | * @dev: Device from whom we request an available command structure |
4560 | * @tag: command tag | ||
4556 | * | 4561 | * |
4557 | * LOCKING: | 4562 | * LOCKING: |
4558 | * None. | 4563 | * None. |