ahci_platform: add STRICT_AHCI platform type
authorBrian Norris <computersforpeace@gmail.com>
Tue, 21 Feb 2012 18:38:44 +0000 (10:38 -0800)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 13 Mar 2012 20:36:18 +0000 (16:36 -0400)
Some platforms need to make use of the AHCI_HFLAG_DELAY_ENGINE flag.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: stable@kernel.org
drivers/ata/ahci_platform.c

index 48be4e1..0c86c77 100644 (file)
@@ -26,6 +26,7 @@
 enum ahci_type {
        AHCI,           /* standard platform ahci */
        IMX53_AHCI,     /* ahci on i.mx53 */
+       STRICT_AHCI,    /* delayed DMA engine start */
 };
 
 static struct platform_device_id ahci_devtype[] = {
@@ -36,6 +37,9 @@ static struct platform_device_id ahci_devtype[] = {
                .name = "imx53-ahci",
                .driver_data = IMX53_AHCI,
        }, {
+               .name = "strict-ahci",
+               .driver_data = STRICT_AHCI,
+       }, {
                /* sentinel */
        }
 };
@@ -56,6 +60,13 @@ static const struct ata_port_info ahci_port_info[] = {
                .udma_mask      = ATA_UDMA6,
                .port_ops       = &ahci_pmp_retry_srst_ops,
        },
+       [STRICT_AHCI] = {
+               AHCI_HFLAGS     (AHCI_HFLAG_DELAY_ENGINE),
+               .flags          = AHCI_FLAG_COMMON,
+               .pio_mask       = ATA_PIO4,
+               .udma_mask      = ATA_UDMA6,
+               .port_ops       = &ahci_ops,
+       },
 };
 
 static struct scsi_host_template ahci_platform_sht = {