12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- From 7945f929f1a77a1c8887a97ca07f87626858ff42 Mon Sep 17 00:00:00 2001
- From: Bartosz Golaszewski <[email protected]>
- Date: Wed, 20 Feb 2019 11:12:39 +0000
- Subject: [PATCH] drivers: provide devm_platform_ioremap_resource()
- There are currently 1200+ instances of using platform_get_resource()
- and devm_ioremap_resource() together in the kernel tree.
- This patch wraps these two calls in a single helper. Thanks to that
- we don't have to declare a local variable for struct resource * and can
- omit the redundant argument for resource type. We also have one
- function call less.
- Signed-off-by: Bartosz Golaszewski <[email protected]>
- Acked-by: Greg Kroah-Hartman <[email protected]>
- Reviewed-by: Andy Shevchenko <[email protected]>
- Signed-off-by: Linus Walleij <[email protected]>
- ---
- drivers/base/platform.c | 18 ++++++++++++++++++
- include/linux/platform_device.h | 3 +++
- 2 files changed, 21 insertions(+)
- --- a/drivers/base/platform.c
- +++ b/drivers/base/platform.c
- @@ -81,6 +81,24 @@ struct resource *platform_get_resource(s
- EXPORT_SYMBOL_GPL(platform_get_resource);
-
- /**
- + * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform
- + * device
- + *
- + * @pdev: platform device to use both for memory resource lookup as well as
- + * resource managemend
- + * @index: resource index
- + */
- +void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev,
- + unsigned int index)
- +{
- + struct resource *res;
- +
- + res = platform_get_resource(pdev, IORESOURCE_MEM, index);
- + return devm_ioremap_resource(&pdev->dev, res);
- +}
- +EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource);
- +
- +/**
- * platform_get_irq - get an IRQ for a device
- * @dev: platform device
- * @num: IRQ number index
- --- a/include/linux/platform_device.h
- +++ b/include/linux/platform_device.h
- @@ -51,6 +51,9 @@ extern struct device platform_bus;
- extern void arch_setup_pdev_archdata(struct platform_device *);
- extern struct resource *platform_get_resource(struct platform_device *,
- unsigned int, unsigned int);
- +extern void __iomem *
- +devm_platform_ioremap_resource(struct platform_device *pdev,
- + unsigned int index);
- extern int platform_get_irq(struct platform_device *, unsigned int);
- extern int platform_irq_count(struct platform_device *);
- extern struct resource *platform_get_resource_byname(struct platform_device *,
|