|
@@ -487,6 +487,33 @@ int pnp_check_dma(struct pnp_dev *dev, int idx)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+struct resource *pnp_get_resource(struct pnp_dev *dev,
|
|
|
+ unsigned int type, unsigned int num)
|
|
|
+{
|
|
|
+ struct pnp_resource_table *res = &dev->res;
|
|
|
+
|
|
|
+ switch (type) {
|
|
|
+ case IORESOURCE_IO:
|
|
|
+ if (num >= PNP_MAX_PORT)
|
|
|
+ return NULL;
|
|
|
+ return &res->port_resource[num];
|
|
|
+ case IORESOURCE_MEM:
|
|
|
+ if (num >= PNP_MAX_MEM)
|
|
|
+ return NULL;
|
|
|
+ return &res->mem_resource[num];
|
|
|
+ case IORESOURCE_IRQ:
|
|
|
+ if (num >= PNP_MAX_IRQ)
|
|
|
+ return NULL;
|
|
|
+ return &res->irq_resource[num];
|
|
|
+ case IORESOURCE_DMA:
|
|
|
+ if (num >= PNP_MAX_DMA)
|
|
|
+ return NULL;
|
|
|
+ return &res->dma_resource[num];
|
|
|
+ }
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(pnp_get_resource);
|
|
|
+
|
|
|
/* format is: pnp_reserve_irq=irq1[,irq2] .... */
|
|
|
static int __init pnp_setup_reserve_irq(char *str)
|
|
|
{
|