]> err.no Git - linux-2.6/commitdiff
[libata] ahci: minor PCI MSI cleanup
authorJeff Garzik <jgarzik@pobox.com>
Sat, 4 Jun 2005 04:50:22 +0000 (00:50 -0400)
committerJeff Garzik <jgarzik@pobox.com>
Sat, 4 Jun 2005 04:50:22 +0000 (00:50 -0400)
Replace 'have_msi' variable with a bit in the existing 'flags' variable,.
AHCI_FLAG_MSI.

drivers/scsi/ahci.c

index eb7940aba4001971ff77d77c2cb201abe80db959..1799233dcf9f066e3ee91ec97511890c1a15ef11 100644 (file)
@@ -134,6 +134,9 @@ enum {
        PORT_CMD_ICC_ACTIVE     = (0x1 << 28), /* Put i/f in active state */
        PORT_CMD_ICC_PARTIAL    = (0x2 << 28), /* Put i/f in partial state */
        PORT_CMD_ICC_SLUMBER    = (0x6 << 28), /* Put i/f in slumber state */
+
+       /* hpriv->flags bits */
+       AHCI_FLAG_MSI           = (1 << 0),
 };
 
 struct ahci_cmd_hdr {
@@ -153,7 +156,6 @@ struct ahci_sg {
 
 struct ahci_host_priv {
        unsigned long           flags;
-       unsigned int            have_msi; /* is PCI MSI enabled? */
        u32                     cap;    /* cache of HOST_CAP register */
        u32                     port_map; /* cache of HOST_PORTS_IMPL reg */
 };
@@ -797,8 +799,6 @@ static int ahci_host_init(struct ata_probe_ent *probe_ent)
                                return rc;
                        }
                }
-
-               hpriv->flags |= HOST_CAP_64;
        } else {
                rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
                if (rc) {
@@ -1036,7 +1036,8 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
        probe_ent->mmio_base = mmio_base;
        probe_ent->private_data = hpriv;
 
-       hpriv->have_msi = have_msi;
+       if (have_msi)
+               hpriv->flags |= AHCI_FLAG_MSI;
 
        /* initialize adapter */
        rc = ahci_host_init(probe_ent);
@@ -1084,7 +1085,7 @@ static void ahci_remove_one (struct pci_dev *pdev)
                scsi_remove_host(ap->host);
        }
 
-       have_msi = hpriv->have_msi;
+       have_msi = hpriv->flags & AHCI_FLAG_MSI;
        free_irq(host_set->irq, host_set);
 
        for (i = 0; i < host_set->n_ports; i++) {