diff options
Diffstat (limited to 'drivers/mcb')
-rw-r--r-- | drivers/mcb/mcb-core.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/mcb/mcb-core.c b/drivers/mcb/mcb-core.c index 921a5d2..bb5c569 100644 --- a/drivers/mcb/mcb-core.c +++ b/drivers/mcb/mcb-core.c @@ -418,6 +418,22 @@ void mcb_bus_add_devices(const struct mcb_bus *bus) EXPORT_SYMBOL_GPL(mcb_bus_add_devices); /** + * mcb_get_resource() - get a resource for a mcb device + * @dev: the mcb device + * @type: the type of resource + */ +struct resource *mcb_get_resource(struct mcb_device *dev, unsigned int type) +{ + if (type == IORESOURCE_MEM) + return &dev->mem; + else if (type == IORESOURCE_IRQ) + return &dev->irq; + else + return NULL; +} +EXPORT_SYMBOL_GPL(mcb_get_resource); + +/** * mcb_request_mem() - Request memory * @dev: The @mcb_device the memory is for * @name: The name for the memory reference. @@ -460,7 +476,9 @@ EXPORT_SYMBOL_GPL(mcb_release_mem); static int __mcb_get_irq(struct mcb_device *dev) { - struct resource *irq = &dev->irq; + struct resource *irq; + + irq = mcb_get_resource(dev, IORESOURCE_IRQ); return irq->start; } |