diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/libata-acpi.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index 43af2e06d446..dc9842ec6f06 100644 --- a/drivers/ata/libata-acpi.c +++ b/drivers/ata/libata-acpi.c | |||
@@ -297,6 +297,44 @@ static int ata_dev_get_GTF(struct ata_device *dev, struct ata_acpi_gtf **gtf, | |||
297 | } | 297 | } |
298 | 298 | ||
299 | /** | 299 | /** |
300 | * ata_acpi_cbl_80wire - Check for 80 wire cable | ||
301 | * @ap: Port to check | ||
302 | * | ||
303 | * Return 1 if the ACPI mode data for this port indicates the BIOS selected | ||
304 | * an 80wire mode. | ||
305 | */ | ||
306 | |||
307 | int ata_acpi_cbl_80wire(struct ata_port *ap) | ||
308 | { | ||
309 | struct ata_acpi_gtm gtm; | ||
310 | int valid = 0; | ||
311 | |||
312 | /* No _GTM data, no information */ | ||
313 | if (ata_acpi_gtm(ap, >m) < 0) | ||
314 | return 0; | ||
315 | |||
316 | /* Split timing, DMA enabled */ | ||
317 | if ((gtm.flags & 0x11) == 0x11 && gtm.drive[0].dma < 55) | ||
318 | valid |= 1; | ||
319 | if ((gtm.flags & 0x14) == 0x14 && gtm.drive[1].dma < 55) | ||
320 | valid |= 2; | ||
321 | /* Shared timing, DMA enabled */ | ||
322 | if ((gtm.flags & 0x11) == 0x01 && gtm.drive[0].dma < 55) | ||
323 | valid |= 1; | ||
324 | if ((gtm.flags & 0x14) == 0x04 && gtm.drive[0].dma < 55) | ||
325 | valid |= 2; | ||
326 | |||
327 | /* Drive check */ | ||
328 | if ((valid & 1) && ata_dev_enabled(&ap->link.device[0])) | ||
329 | return 1; | ||
330 | if ((valid & 2) && ata_dev_enabled(&ap->link.device[1])) | ||
331 | return 1; | ||
332 | return 0; | ||
333 | } | ||
334 | |||
335 | EXPORT_SYMBOL_GPL(ata_acpi_cbl_80wire); | ||
336 | |||
337 | /** | ||
300 | * taskfile_load_raw - send taskfile registers to host controller | 338 | * taskfile_load_raw - send taskfile registers to host controller |
301 | * @dev: target ATA device | 339 | * @dev: target ATA device |
302 | * @gtf: raw ATA taskfile register set (0x1f1 - 0x1f7) | 340 | * @gtf: raw ATA taskfile register set (0x1f1 - 0x1f7) |