aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Thumshirn <jthumshirn@suse.de>2017-08-02 03:58:52 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-28 14:51:22 -0400
commit2ce8008711e4837c11e99a94df55406085d0d098 (patch)
tree361894dfa3ace1606927188629a777e6e5debb83
parent5aabd3b0077e0577f60a1ca6b8bdad62f23353d8 (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.c20
-rw-r--r--include/linux/mcb.h2
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)
418EXPORT_SYMBOL_GPL(mcb_bus_add_devices); 418EXPORT_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 */
425struct 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}
434EXPORT_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
461static int __mcb_get_irq(struct mcb_device *dev) 477static 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);
137extern void mcb_release_mem(struct resource *mem); 137extern void mcb_release_mem(struct resource *mem);
138extern int mcb_get_irq(struct mcb_device *dev); 138extern int mcb_get_irq(struct mcb_device *dev);
139extern 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 */