Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <bgolaszewski@baylibre.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Bartosz Golaszewski and committed by
Linus Walleij
7945f929 3dda927f

+21
+18
drivers/base/platform.c
··· 80 80 EXPORT_SYMBOL_GPL(platform_get_resource); 81 81 82 82 /** 83 + * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform 84 + * device 85 + * 86 + * @pdev: platform device to use both for memory resource lookup as well as 87 + * resource managemend 88 + * @index: resource index 89 + */ 90 + void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev, 91 + unsigned int index) 92 + { 93 + struct resource *res; 94 + 95 + res = platform_get_resource(pdev, IORESOURCE_MEM, index); 96 + return devm_ioremap_resource(&pdev->dev, res); 97 + } 98 + EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource); 99 + 100 + /** 83 101 * platform_get_irq - get an IRQ for a device 84 102 * @dev: platform device 85 103 * @num: IRQ number index
+3
include/linux/platform_device.h
··· 52 52 extern void arch_setup_pdev_archdata(struct platform_device *); 53 53 extern struct resource *platform_get_resource(struct platform_device *, 54 54 unsigned int, unsigned int); 55 + extern void __iomem * 56 + devm_platform_ioremap_resource(struct platform_device *pdev, 57 + unsigned int index); 55 58 extern int platform_get_irq(struct platform_device *, unsigned int); 56 59 extern int platform_irq_count(struct platform_device *); 57 60 extern struct resource *platform_get_resource_byname(struct platform_device *,