diff options
-rw-r--r-- | drivers/ata/ahci.c | 3 | ||||
-rw-r--r-- | drivers/ata/libata-acpi.c | 10 | ||||
-rw-r--r-- | drivers/ata/sata_sil24.c | 3 | ||||
-rw-r--r-- | include/linux/libata.h | 1 |
4 files changed, 10 insertions, 7 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 1ae443d7ab92..e00e1b913d28 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -173,7 +173,8 @@ enum { | |||
173 | 173 | ||
174 | AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 174 | AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
175 | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | | 175 | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | |
176 | ATA_FLAG_SKIP_D2H_BSY, | 176 | ATA_FLAG_SKIP_D2H_BSY | |
177 | ATA_FLAG_ACPI_SATA, | ||
177 | }; | 178 | }; |
178 | 179 | ||
179 | struct ahci_cmd_hdr { | 180 | struct ahci_cmd_hdr { |
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index ed4138e24b0c..02236739b40f 100644 --- a/drivers/ata/libata-acpi.c +++ b/drivers/ata/libata-acpi.c | |||
@@ -321,7 +321,7 @@ static int do_drive_get_GTF(struct ata_device *dev, unsigned int *gtf_length, | |||
321 | 321 | ||
322 | /* Don't continue if device has no _ADR method. | 322 | /* Don't continue if device has no _ADR method. |
323 | * _GTF is intended for known motherboard devices. */ | 323 | * _GTF is intended for known motherboard devices. */ |
324 | if (!(ap->cbl == ATA_CBL_SATA)) { | 324 | if (!(ap->flags & ATA_FLAG_ACPI_SATA)) { |
325 | err = pata_get_dev_handle(gdev, &dev_handle, &pcidevfn); | 325 | err = pata_get_dev_handle(gdev, &dev_handle, &pcidevfn); |
326 | if (err < 0) { | 326 | if (err < 0) { |
327 | if (ata_msg_probe(ap)) | 327 | if (ata_msg_probe(ap)) |
@@ -343,7 +343,7 @@ static int do_drive_get_GTF(struct ata_device *dev, unsigned int *gtf_length, | |||
343 | 343 | ||
344 | /* Get this drive's _ADR info. if not already known. */ | 344 | /* Get this drive's _ADR info. if not already known. */ |
345 | if (!dev->obj_handle) { | 345 | if (!dev->obj_handle) { |
346 | if (!(ap->cbl == ATA_CBL_SATA)) { | 346 | if (!(ap->flags & ATA_FLAG_ACPI_SATA)) { |
347 | /* get child objects of dev_handle == channel objects, | 347 | /* get child objects of dev_handle == channel objects, |
348 | * + _their_ children == drive objects */ | 348 | * + _their_ children == drive objects */ |
349 | /* channel is ap->port_no */ | 349 | /* channel is ap->port_no */ |
@@ -528,7 +528,7 @@ static int do_drive_set_taskfiles(struct ata_device *dev, | |||
528 | ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER: port#: %d\n", | 528 | ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER: port#: %d\n", |
529 | __FUNCTION__, ap->port_no); | 529 | __FUNCTION__, ap->port_no); |
530 | 530 | ||
531 | if (libata_noacpi || !(ap->cbl == ATA_CBL_SATA)) | 531 | if (libata_noacpi || !(ap->flags & ATA_FLAG_ACPI_SATA)) |
532 | return 0; | 532 | return 0; |
533 | 533 | ||
534 | if (!ata_dev_enabled(dev) || (ap->flags & ATA_FLAG_DISABLED)) | 534 | if (!ata_dev_enabled(dev) || (ap->flags & ATA_FLAG_DISABLED)) |
@@ -578,7 +578,7 @@ int ata_acpi_exec_tfs(struct ata_port *ap) | |||
578 | * we should not run GTF on PATA devices since some | 578 | * we should not run GTF on PATA devices since some |
579 | * PATA require execution of GTM/STM before GTF. | 579 | * PATA require execution of GTM/STM before GTF. |
580 | */ | 580 | */ |
581 | if (!(ap->cbl == ATA_CBL_SATA)) | 581 | if (!(ap->flags & ATA_FLAG_ACPI_SATA)) |
582 | return 0; | 582 | return 0; |
583 | 583 | ||
584 | for (ix = 0; ix < ATA_MAX_DEVICES; ix++) { | 584 | for (ix = 0; ix < ATA_MAX_DEVICES; ix++) { |
@@ -641,7 +641,7 @@ int ata_acpi_push_id(struct ata_device *dev) | |||
641 | __FUNCTION__, dev->devno, ap->port_no); | 641 | __FUNCTION__, dev->devno, ap->port_no); |
642 | 642 | ||
643 | /* Don't continue if not a SATA device. */ | 643 | /* Don't continue if not a SATA device. */ |
644 | if (!(ap->cbl == ATA_CBL_SATA)) { | 644 | if (!(ap->flags & ATA_FLAG_ACPI_SATA)) { |
645 | if (ata_msg_probe(ap)) | 645 | if (ata_msg_probe(ap)) |
646 | ata_dev_printk(dev, KERN_DEBUG, | 646 | ata_dev_printk(dev, KERN_DEBUG, |
647 | "%s: Not a SATA device\n", __FUNCTION__); | 647 | "%s: Not a SATA device\n", __FUNCTION__); |
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index a69d78cd8e9b..0cb6618935b1 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c | |||
@@ -237,7 +237,8 @@ enum { | |||
237 | /* host flags */ | 237 | /* host flags */ |
238 | SIL24_COMMON_FLAGS = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 238 | SIL24_COMMON_FLAGS = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
239 | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | | 239 | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | |
240 | ATA_FLAG_NCQ | ATA_FLAG_SKIP_D2H_BSY, | 240 | ATA_FLAG_NCQ | ATA_FLAG_SKIP_D2H_BSY | |
241 | ATA_FLAG_ACPI_SATA, | ||
241 | SIL24_FLAG_PCIX_IRQ_WOC = (1 << 24), /* IRQ loss errata on PCI-X */ | 242 | SIL24_FLAG_PCIX_IRQ_WOC = (1 << 24), /* IRQ loss errata on PCI-X */ |
242 | 243 | ||
243 | IRQ_STAT_4PORTS = 0xf, | 244 | IRQ_STAT_4PORTS = 0xf, |
diff --git a/include/linux/libata.h b/include/linux/libata.h index b38a0f9bc9f7..9b2122db30ff 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -173,6 +173,7 @@ enum { | |||
173 | ATA_FLAG_SETXFER_POLLING= (1 << 14), /* use polling for SETXFER */ | 173 | ATA_FLAG_SETXFER_POLLING= (1 << 14), /* use polling for SETXFER */ |
174 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ | 174 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ |
175 | ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ | 175 | ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ |
176 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ | ||
176 | 177 | ||
177 | /* The following flag belongs to ap->pflags but is kept in | 178 | /* The following flag belongs to ap->pflags but is kept in |
178 | * ap->flags because it's referenced in many LLDs and will be | 179 | * ap->flags because it's referenced in many LLDs and will be |