ahci: Add Marvell 88se91a2 device id
[pandora-kernel.git] / drivers / ata / pata_serverworks.c
index 71eaf38..5929dde 100644 (file)
@@ -252,12 +252,18 @@ static void serverworks_set_dmamode(struct ata_port *ap, struct ata_device *adev
        pci_write_config_byte(pdev, 0x54, ultra_cfg);
 }
 
-static struct scsi_host_template serverworks_sht = {
+static struct scsi_host_template serverworks_osb4_sht = {
+       ATA_BMDMA_SHT(DRV_NAME),
+       .sg_tablesize   = LIBATA_DUMB_MAX_PRD,
+};
+
+static struct scsi_host_template serverworks_csb_sht = {
        ATA_BMDMA_SHT(DRV_NAME),
 };
 
 static struct ata_port_operations serverworks_osb4_port_ops = {
        .inherits       = &ata_bmdma_port_ops,
+       .qc_prep        = ata_bmdma_dumb_qc_prep,
        .cable_detect   = serverworks_cable_detect,
        .mode_filter    = serverworks_osb4_filter,
        .set_piomode    = serverworks_set_piomode,
@@ -266,6 +272,7 @@ static struct ata_port_operations serverworks_osb4_port_ops = {
 
 static struct ata_port_operations serverworks_csb_port_ops = {
        .inherits       = &serverworks_osb4_port_ops,
+       .qc_prep        = ata_bmdma_qc_prep,
        .mode_filter    = serverworks_csb_filter,
 };
 
@@ -405,6 +412,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id
                }
        };
        const struct ata_port_info *ppi[] = { &info[id->driver_data], NULL };
+       struct scsi_host_template *sht = &serverworks_csb_sht;
        int rc;
 
        rc = pcim_enable_device(pdev);
@@ -418,6 +426,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id
                /* Select non UDMA capable OSB4 if we can't do fixups */
                if (rc < 0)
                        ppi[0] = &info[1];
+               sht = &serverworks_osb4_sht;
        }
        /* setup CSB5/CSB6 : South Bridge and IDE option RAID */
        else if ((pdev->device == PCI_DEVICE_ID_SERVERWORKS_CSB5IDE) ||
@@ -434,7 +443,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id
                        ppi[1] = &ata_dummy_port_info;
        }
 
-       return ata_pci_bmdma_init_one(pdev, ppi, &serverworks_sht, NULL, 0);
+       return ata_pci_bmdma_init_one(pdev, ppi, sht, NULL, 0);
 }
 
 #ifdef CONFIG_PM