diff options
author | Johannes Thumshirn <jthumshirn@suse.de> | 2017-08-02 03:58:52 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-08-28 14:51:22 -0400 |
commit | 2ce8008711e4837c11e99a94df55406085d0d098 (patch) | |
tree | 361894dfa3ace1606927188629a777e6e5debb83 | |
parent | 5aabd3b0077e0577f60a1ca6b8bdad62f23353d8 (diff) |
mcb: introduce mcb_get_resource()
Introduce mcb_get_resource() as a common accessor to a mcb device's memory or
IRQ resources.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/mcb/mcb-core.c | 20 | ||||
-rw-r--r-- | include/linux/mcb.h | 2 |
2 files changed, 21 insertions, 1 deletions
diff --git a/drivers/mcb/mcb-core.c b/drivers/mcb/mcb-core.c index 921a5d2a802b..bb5c5692dedc 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) | |||
418 | EXPORT_SYMBOL_GPL(mcb_bus_add_devices); | 418 | EXPORT_SYMBOL_GPL(mcb_bus_add_devices); |
419 | 419 | ||
420 | /** | 420 | /** |
421 | * mcb_get_resource() - get a resource for a mcb device | ||
422 | * @dev: the mcb device | ||
423 | * @type: the type of resource | ||
424 | */ | ||
425 | struct resource *mcb_get_resource(struct mcb_device *dev, unsigned int type) | ||
426 | { | ||
427 | if (type == IORESOURCE_MEM) | ||
428 | return &dev->mem; | ||
429 | else if (type == IORESOURCE_IRQ) | ||
430 | return &dev->irq; | ||
431 | else | ||
432 | return NULL; | ||
433 | } | ||
434 | EXPORT_SYMBOL_GPL(mcb_get_resource); | ||
435 | |||
436 | /** | ||
421 | * mcb_request_mem() - Request memory | 437 | * mcb_request_mem() - Request memory |
422 | * @dev: The @mcb_device the memory is for | 438 | * @dev: The @mcb_device the memory is for |
423 | * @name: The name for the memory reference. | 439 | * @name: The name for the memory reference. |
@@ -460,7 +476,9 @@ EXPORT_SYMBOL_GPL(mcb_release_mem); | |||
460 | 476 | ||
461 | static int __mcb_get_irq(struct mcb_device *dev) | 477 | static int __mcb_get_irq(struct mcb_device *dev) |
462 | { | 478 | { |
463 | struct resource *irq = &dev->irq; | 479 | struct resource *irq; |
480 | |||
481 | irq = mcb_get_resource(dev, IORESOURCE_IRQ); | ||
464 | 482 | ||
465 | return irq->start; | 483 | return irq->start; |
466 | } | 484 | } |
diff --git a/include/linux/mcb.h b/include/linux/mcb.h index 4097ac9ea13a..b1a0ad9d23b3 100644 --- a/include/linux/mcb.h +++ b/include/linux/mcb.h | |||
@@ -136,5 +136,7 @@ extern struct resource *mcb_request_mem(struct mcb_device *dev, | |||
136 | const char *name); | 136 | const char *name); |
137 | extern void mcb_release_mem(struct resource *mem); | 137 | extern void mcb_release_mem(struct resource *mem); |
138 | extern int mcb_get_irq(struct mcb_device *dev); | 138 | extern int mcb_get_irq(struct mcb_device *dev); |
139 | extern struct resource *mcb_get_resource(struct mcb_device *dev, | ||
140 | unsigned int type); | ||
139 | 141 | ||
140 | #endif /* _LINUX_MCB_H */ | 142 | #endif /* _LINUX_MCB_H */ |