msi: Enable all PCI related code
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Fri, 23 Dec 2011 15:02:45 +0000 (23:02 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 27 Dec 2011 05:44:41 +0000 (13:44 +0800)
sys/bus/pci/pci.c
sys/dev/acpica5/acpi_pcib_acpi.c

index 920fca1..754b16c 100644 (file)
@@ -3150,16 +3150,14 @@ int
 pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags,
     driver_intr_t *intr, void *arg, void **cookiep, lwkt_serialize_t serializer)
 {
-#ifdef MSI
        struct pci_devinfo *dinfo;
        struct msix_table_entry *mte;
        struct msix_vector *mv;
        uint64_t addr;
        uint32_t data;
-       int rid;
-#endif
-       int error;
+       int rid, error;
        void *cookie;
+
        error = bus_generic_setup_intr(dev, child, irq, flags, intr,
            arg, &cookie, serializer);
        if (error)
@@ -3171,8 +3169,6 @@ pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags,
                return(0);
        }
 
-       pci_clear_command_bit(dev, child, PCIM_CMD_INTxDIS);
-#ifdef MSI
        rid = rman_get_rid(irq);
        if (rid == 0) {
                /* Make sure that INTx is enabled */
@@ -3236,7 +3232,6 @@ pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags,
                        return (error);
                }
        }
-#endif
        *cookiep = cookie;
        return (0);
 }
@@ -3245,13 +3240,10 @@ int
 pci_teardown_intr(device_t dev, device_t child, struct resource *irq,
     void *cookie)
 {
-#ifdef MSI
        struct msix_table_entry *mte;
        struct resource_list_entry *rle;
        struct pci_devinfo *dinfo;
-       int rid;
-#endif
-       int error;
+       int rid, error;
 
        if (irq == NULL || !(rman_get_flags(irq) & RF_ACTIVE))
                return (EINVAL);
@@ -3260,8 +3252,6 @@ pci_teardown_intr(device_t dev, device_t child, struct resource *irq,
        if (device_get_parent(child) != dev)
                return(bus_generic_teardown_intr(dev, child, irq, cookie));
 
-       pci_set_command_bit(dev, child, PCIM_CMD_INTxDIS);
-#ifdef MSI
        rid = rman_get_rid(irq);
        if (rid == 0) {
                /* Mask INTx */
@@ -3302,7 +3292,6 @@ pci_teardown_intr(device_t dev, device_t child, struct resource *irq,
        if (rid > 0)
                KASSERT(error == 0,
                    ("%s: generic teardown failed for MSI/MSI-X", __func__));
-#endif
        error = bus_generic_teardown_intr(dev, child, irq, cookie);
        return (error);
 }
@@ -3896,11 +3885,9 @@ pci_alloc_resource(device_t dev, device_t child, int type, int *rid,
                         * Can't alloc legacy interrupt once MSI messages
                         * have been allocated.
                         */
-#ifdef MSI
                        if (*rid == 0 && (cfg->msi.msi_alloc > 0 ||
                            cfg->msix.msix_alloc > 0))
                                return (NULL);
-#endif
                        /*
                         * If the child device doesn't have an
                         * interrupt routed and is deserving of an
index 4646c30..bd42e67 100644 (file)
@@ -73,14 +73,12 @@ static void         acpi_pcib_write_config(device_t dev, int bus, int slot,
                            int func, int reg, uint32_t data, int bytes);
 static int             acpi_pcib_acpi_route_interrupt(device_t pcib,
                            device_t dev, int pin);
-#ifdef MSI
 static int             acpi_pcib_alloc_msi(device_t pcib, device_t dev,
                            int count, int maxcount, int *irqs);
 static int             acpi_pcib_map_msi(device_t pcib, device_t dev,
                            int irq, uint64_t *addr, uint32_t *data);
 static int             acpi_pcib_alloc_msix(device_t pcib, device_t dev,
                            int *irq);
-#endif
 static struct resource *acpi_pcib_acpi_alloc_resource(device_t dev,
                            device_t child, int type, int *rid,
                            u_long start, u_long end, u_long count,
@@ -110,13 +108,11 @@ static device_method_t acpi_pcib_acpi_methods[] = {
     DEVMETHOD(pcib_read_config,                acpi_pcib_read_config),
     DEVMETHOD(pcib_write_config,       acpi_pcib_write_config),
     DEVMETHOD(pcib_route_interrupt,    acpi_pcib_acpi_route_interrupt),
-#ifdef MSI
     DEVMETHOD(pcib_alloc_msi,          acpi_pcib_alloc_msi),
     DEVMETHOD(pcib_release_msi,                pcib_release_msi),
     DEVMETHOD(pcib_alloc_msix,         acpi_pcib_alloc_msix),
     DEVMETHOD(pcib_release_msix,       pcib_release_msix),
     DEVMETHOD(pcib_map_msi,            acpi_pcib_map_msi),
-#endif
     {0, 0}
 };
 
@@ -330,7 +326,7 @@ acpi_pcib_acpi_route_interrupt(device_t pcib, device_t dev, int pin)
 
     return (acpi_pcib_route_interrupt(pcib, dev, pin, &sc->ap_prt));
 }
-#ifdef MSI
+
 static int
 acpi_pcib_alloc_msi(device_t pcib, device_t dev, int count, int maxcount,
     int *irqs)
@@ -360,7 +356,7 @@ acpi_pcib_map_msi(device_t pcib, device_t dev, int irq, uint64_t *addr,
        bus = device_get_parent(pcib);
        return (PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data));
 }
-#endif
+
 static u_long acpi_host_mem_start = 0x80000000;
 TUNABLE_ULONG("hw.acpi.host_mem_start", &acpi_host_mem_start);