aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/ahci.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c
index eb7940aba400..1799233dcf9f 100644
--- a/drivers/scsi/ahci.c
+++ b/drivers/scsi/ahci.c
@@ -134,6 +134,9 @@ enum {
134 PORT_CMD_ICC_ACTIVE = (0x1 << 28), /* Put i/f in active state */ 134 PORT_CMD_ICC_ACTIVE = (0x1 << 28), /* Put i/f in active state */
135 PORT_CMD_ICC_PARTIAL = (0x2 << 28), /* Put i/f in partial state */ 135 PORT_CMD_ICC_PARTIAL = (0x2 << 28), /* Put i/f in partial state */
136 PORT_CMD_ICC_SLUMBER = (0x6 << 28), /* Put i/f in slumber state */ 136 PORT_CMD_ICC_SLUMBER = (0x6 << 28), /* Put i/f in slumber state */
137
138 /* hpriv->flags bits */
139 AHCI_FLAG_MSI = (1 << 0),
137}; 140};
138 141
139struct ahci_cmd_hdr { 142struct ahci_cmd_hdr {
@@ -153,7 +156,6 @@ struct ahci_sg {
153 156
154struct ahci_host_priv { 157struct ahci_host_priv {
155 unsigned long flags; 158 unsigned long flags;
156 unsigned int have_msi; /* is PCI MSI enabled? */
157 u32 cap; /* cache of HOST_CAP register */ 159 u32 cap; /* cache of HOST_CAP register */
158 u32 port_map; /* cache of HOST_PORTS_IMPL reg */ 160 u32 port_map; /* cache of HOST_PORTS_IMPL reg */
159}; 161};
@@ -797,8 +799,6 @@ static int ahci_host_init(struct ata_probe_ent *probe_ent)
797 return rc; 799 return rc;
798 } 800 }
799 } 801 }
800
801 hpriv->flags |= HOST_CAP_64;
802 } else { 802 } else {
803 rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK); 803 rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
804 if (rc) { 804 if (rc) {
@@ -1036,7 +1036,8 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
1036 probe_ent->mmio_base = mmio_base; 1036 probe_ent->mmio_base = mmio_base;
1037 probe_ent->private_data = hpriv; 1037 probe_ent->private_data = hpriv;
1038 1038
1039 hpriv->have_msi = have_msi; 1039 if (have_msi)
1040 hpriv->flags |= AHCI_FLAG_MSI;
1040 1041
1041 /* initialize adapter */ 1042 /* initialize adapter */
1042 rc = ahci_host_init(probe_ent); 1043 rc = ahci_host_init(probe_ent);
@@ -1084,7 +1085,7 @@ static void ahci_remove_one (struct pci_dev *pdev)
1084 scsi_remove_host(ap->host); 1085 scsi_remove_host(ap->host);
1085 } 1086 }
1086 1087
1087 have_msi = hpriv->have_msi; 1088 have_msi = hpriv->flags & AHCI_FLAG_MSI;
1088 free_irq(host_set->irq, host_set); 1089 free_irq(host_set->irq, host_set);
1089 1090
1090 for (i = 0; i < host_set->n_ports; i++) { 1091 for (i = 0; i < host_set->n_ports; i++) {