Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / pnp / resource.c
index 3fc9f6c..6ded527 100644 (file)
 #include <linux/pnp.h>
 #include "base.h"
 
-int pnp_skip_pci_scan;                         /* skip PCI resource scanning */
-int pnp_reserve_irq[16] = { [0 ... 15] = -1 }; /* reserve (don't use) some IRQ */
-int pnp_reserve_dma[8] = { [0 ... 7] = -1 };   /* reserve (don't use) some DMA */
-int pnp_reserve_io[16] = { [0 ... 15] = -1 };  /* reserve (don't use) some I/O region */
-int pnp_reserve_mem[16] = { [0 ... 15] = -1 }; /* reserve (don't use) some memory region */
+static int pnp_reserve_irq[16] = { [0 ... 15] = -1 };  /* reserve (don't use) some IRQ */
+static int pnp_reserve_dma[8] = { [0 ... 7] = -1 };    /* reserve (don't use) some DMA */
+static int pnp_reserve_io[16] = { [0 ... 15] = -1 };   /* reserve (don't use) some I/O region */
+static int pnp_reserve_mem[16] = { [0 ... 15] = -1 };  /* reserve (don't use) some memory region */
 
 
 /*
@@ -101,9 +100,9 @@ int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data)
        {
                int i;
 
-               for (i=0; i<16; i++)
-                       if (data->map & (1<<i))
-                               pcibios_penalize_isa_irq(i);
+               for (i = 0; i < 16; i++)
+                       if (test_bit(i, data->map))
+                               pcibios_penalize_isa_irq(i, 0);
        }
 #endif
        return 0;
@@ -385,9 +384,9 @@ int pnp_check_irq(struct pnp_dev * dev, int idx)
 
 #ifdef CONFIG_PCI
        /* check if the resource is being used by a pci device */
-       if (!pnp_skip_pci_scan) {
-               struct pci_dev * pci = NULL;
-               while ((pci = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pci)) != NULL) {
+       {
+               struct pci_dev *pci = NULL;
+               for_each_pci_dev(pci) {
                        if (pci->irq == *irq)
                                return 0;
                }
@@ -421,6 +420,7 @@ int pnp_check_irq(struct pnp_dev * dev, int idx)
 
 int pnp_check_dma(struct pnp_dev * dev, int idx)
 {
+#ifndef CONFIG_IA64
        int tmp;
        struct pnp_dev *tdev;
        unsigned long * dma = &dev->res.dma_resource[idx].start;
@@ -470,15 +470,21 @@ int pnp_check_dma(struct pnp_dev * dev, int idx)
        }
 
        return 1;
+#else
+       /* IA64 hasn't legacy DMA */
+       return 0;
+#endif
 }
 
 
+#if 0
 EXPORT_SYMBOL(pnp_register_dependent_option);
 EXPORT_SYMBOL(pnp_register_independent_option);
 EXPORT_SYMBOL(pnp_register_irq_resource);
 EXPORT_SYMBOL(pnp_register_dma_resource);
 EXPORT_SYMBOL(pnp_register_port_resource);
 EXPORT_SYMBOL(pnp_register_mem_resource);
+#endif  /*  0  */
 
 
 /* format is: pnp_reserve_irq=irq1[,irq2] .... */