vserver 2.0 rc7
[linux-2.6.git] / drivers / pnp / resource.c
index 3fc9f6c..2d1322d 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,8 +100,8 @@ 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))
+               for (i = 0; i < 16; i++)
+                       if (test_bit(i, data->map))
                                pcibios_penalize_isa_irq(i);
        }
 #endif
@@ -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,6 +470,10 @@ int pnp_check_dma(struct pnp_dev * dev, int idx)
        }
 
        return 1;
+#else
+       /* IA64 hasn't legacy DMA */
+       return 0;
+#endif
 }