drivers: new helper for ioremapping memory resources
Subsystems (3)
v2 cover drivers: new helper for ioremapping memory resources
From: Bartosz Golaszewski <[email protected]>
There are currently 1200+ instances of using platform_get_resource() and devm_ioremap_resource() together in the kernel tree. It's a minor redundancy, but consolidation is always good.
The first patch in this series adds a wrapper for these two calls and the second uses it in a driver I could test.
If accepted I'll prepare a coccinelle script that'll make it easier to convert all users.
v1 -> v2:
- EXPORT_SYMBOL() -> EXPORT_SYMBOL_GPL()
Bartosz Golaszewski (2):
drivers: provide devm_platform_ioremap_resource()
gpio: davinci: use devm_platform_ioremap_resource()
drivers/base/platform.c | 18 ++++++++++++++++++ drivers/gpio/gpio-davinci.c | 4 +--- include/linux/platform_device.h | 3 +++ 3 files changed, 22 insertions(+), 3 deletions(-)
Signature · 1 line
2.20.1
PATCH v2 1/2 drivers: provide devm_platform_ioremap_resource()
From: Bartosz Golaszewski <[email protected]>
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.
--- drivers/base/platform.c | 18 ++++++++++++++++++ include/linux/platform_device.h | 3 +++ 2 files changed, 21 insertions(+)
drivers/base/platform.c +18 -0
@@ -79,6 +79,24 @@ struct resource *platform_get_resource(struct platform_device *dev, }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
include/linux/platform_device.h +3 -0
@@ -52,6 +52,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 *,
Signature · 1 line
2.20.1
PATCH v2 2/2 gpio: davinci: use devm_platform_ioremap_resource()
In reply to Bartosz GolaszewskiFrom: Bartosz Golaszewski <[email protected]>
Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together.
--- drivers/gpio/gpio-davinci.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/gpio/gpio-davinci.c +1 -3
@@ -198,7 +198,6 @@ static int davinci_gpio_probe(struct platform_device *pdev)struct davinci_gpio_controller *chips;struct davinci_gpio_platform_data *pdata;struct device *dev = &pdev->dev; -struct resource *res; pdata =davinci_gpio_get_pdata (pdev);if (!pdata) {
@@ -236,8 +235,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)if (!chips)return -ENOMEM ; - res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); - gpio_base =devm_ioremap_resource (dev, res); + gpio_base =devm_platform_ioremap_resource (pdev,0 );if (IS_ERR (gpio_base))return PTR_ERR (gpio_base);
Signature · 1 line
2.20.1
Re: [PATCH v2 1/2] drivers: provide devm_platform_ioremap_resource()
In reply to Bartosz GolaszewskiQuoted 11 lines · Bartosz Golaszewski
From: Bartosz Golaszewski <[email protected]>
There are currently 1200+ instances of using
platform_get_resource()anddevm_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]>
Re: [PATCH v2 1/2] drivers: provide devm_platform_ioremap_resource()
śr., 20 lut 2019 o 12:16 Greg Kroah-Hartman
<[email protected]> napisał(a):
Quoted 7 lines · Bartosz Golaszewski
Quoted 5 lines
From: Bartosz Golaszewski <[email protected]>
There are currently 1200+ instances of using
platform_get_resource()anddevm_ioremap_resource()together in the kernel tree.
Quoted 9 lines
Quoted 6 lines
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]>
Should this go through the driver-core tree?
Bart
Quoted 6 lines · Bartosz Golaszewski
From: Bartosz Golaszewski <[email protected]>
There are currently 1200+ instances of using
platform_get_resource()anddevm_ioremap_resource()together in the kernel tree. It's a minor redundancy, but consolidation is always good.
Quoted 6 lines
The first patch in this series adds a wrapper for these two calls and the second uses it in a driver I could test.
If accepted I'll prepare a coccinelle script that'll make it easier to convert all users.
Quoted 15 lines
v1 -> v2:
-EXPORT_SYMBOL()->EXPORT_SYMBOL_GPL()Bartosz Golaszewski (2):
drivers: providedevm_platform_ioremap_resource()
gpio: davinci: usedevm_platform_ioremap_resource()drivers/base/platform.c | 18 ++++++++++++++++++ drivers/gpio/gpio-davinci.c | 4 +--- include/linux/platform_device.h | 3 +++ 3 files changed, 22 insertions(+), 3 deletions(-)Signature · 1 line
2.20.1
Signature · 2 lines
With Best Regards, Andy Shevchenko
Greg Kroah-Hartman
maintainerRe: [PATCH v2 1/2] drivers: provide devm_platform_ioremap_resource()
In reply to Bartosz GolaszewskiQuoted 14 lines · Bartosz Golaszewski
śr., 20 lut 2019 o 12:16 Greg Kroah-Hartman
<[email protected]> napisał(a):Quoted 12 lines · Bartosz Golaszewski
Quoted 10 lines
From: Bartosz Golaszewski <[email protected]>
There are currently 1200+ instances of using
platform_get_resource()anddevm_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.
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Bartosz Golaszewski <[email protected]>Should this go through the driver-core tree?
No need, put it through the tree for patch 2/2.
thanks,
greg k-h
Re: [PATCH v2 1/2] drivers: provide devm_platform_ioremap_resource()
śr., 20 lut 2019 o 13:15 Greg Kroah-Hartman
<[email protected]> napisał(a):
Quoted 21 lines · Bartosz Golaszewski
Quoted 19 lines
śr., 20 lut 2019 o 12:16 Greg Kroah-Hartman
<[email protected]> napisał(a):Quoted 16 lines · Bartosz Golaszewski
Quoted 11 lines
From: Bartosz Golaszewski <[email protected]>
There are currently 1200+ instances of using
platform_get_resource()anddevm_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]>
Quoted 7 lines
Quoted 1 line
Should this go through the driver-core tree?
No need, put it through the tree for patch 2/2.
thanks,
greg k-h
Linus,
can you take the two patches for v5.1?
Bart
Re: [PATCH v2 1/2] drivers: provide devm_platform_ioremap_resource()
Quoted 11 lines · Bartosz Golaszewski
Quoted 7 lines
Quoted 1 line
Should this go through the driver-core tree?
No need, put it through the tree for patch 2/2.
thanks,
greg k-h
Linus,
can you take the two patches for v5.1?
Yup both merged to the GPIO tree, thanks!
Yours,
Linus Walleij