diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/ahci.c | 11 |
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 | ||
139 | struct ahci_cmd_hdr { | 142 | struct ahci_cmd_hdr { |
@@ -153,7 +156,6 @@ struct ahci_sg { | |||
153 | 156 | ||
154 | struct ahci_host_priv { | 157 | struct 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++) { |