gpio: vx855: Switch to use managed resources APIs
PATCH 1/1 gpio: vx855: Switch to use managed resources APIs
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>
--- drivers/gpio/gpio-vx855.c | 44 ++++++-------------------------------------- 1 file changed, 6 insertions(+), 38 deletions(-)
drivers/gpio/gpio-vx855.c +6 -38
@@ -52,8 +52,6 @@ struct vx855_gpio {spinlock_t lock;u32 io_gpi;u32 io_gpo; -bool gpi_reserved; -bool gpo_reserved; };/* resolve a GPIx into the corresponding bit position */
@@ -224,14 +222,13 @@ static int vx855gpio_probe(struct platform_device *pdev)struct resource *res_gpi;struct resource *res_gpo;struct vx855_gpio *vg; -int ret; res_gpi =platform_get_resource (pdev,IORESOURCE_IO ,0 ); res_gpo =platform_get_resource (pdev,IORESOURCE_IO ,1 );if (!res_gpi || !res_gpo)return -EBUSY ; - vg =kzalloc (sizeof (*vg),GFP_KERNEL ); + vg =devm_kzalloc (&pdev->dev,sizeof (*vg),GFP_KERNEL );if (!vg)return -ENOMEM ;
@@ -250,56 +247,27 @@ static int vx855gpio_probe(struct platform_device *pdev)* succeed. Ignore and continue. */ -if (!request_region (res_gpi->start,resource_size (res_gpi), -MODULE_NAME "_gpi" )) +if (!devm_request_region (&pdev->dev, res_gpi->start, +resource_size (res_gpi),MODULE_NAME "_gpi" ))dev_warn (&pdev->dev,"GPI I/O resource busy, probably claimed by ACPI\n" ); -else - vg->gpi_reserved = true; -if (!request_region (res_gpo->start,resource_size (res_gpo), -MODULE_NAME "_gpo" )) +if (!devm_request_region (&pdev->dev, res_gpo->start, +resource_size (res_gpo),MODULE_NAME "_gpo" ))dev_warn (&pdev->dev,"GPO I/O resource busy, probably claimed by ACPI\n" ); -else - vg->gpo_reserved = true;vx855gpio_gpio_setup (vg); - ret =gpiochip_add (&vg->gpio); -if (ret) { -dev_err (&pdev->dev,"failed to register GPIOs\n" ); - goto out_release; - } - -return 0 ; - -out_release: -if (vg->gpi_reserved) -release_region (res_gpi->start,resource_size (res_gpi)); -if (vg->gpo_reserved) -release_region (res_gpi->start,resource_size (res_gpo)); -kfree (vg); -return ret; +return gpiochip_add (&vg->gpio); }static int vx855gpio_remove (struct platform_device *pdev) {struct vx855_gpio *vg =platform_get_drvdata (pdev); -struct resource *res;gpiochip_remove (&vg->gpio); -if (vg->gpi_reserved) { - res =platform_get_resource (pdev,IORESOURCE_IO ,0 ); -release_region (res->start,resource_size (res)); - } -if (vg->gpo_reserved) { - res =platform_get_resource (pdev,IORESOURCE_IO ,1 ); -release_region (res->start,resource_size (res)); - } - -kfree (vg);return 0 ; }
Signature · 1 line
1.9.1
Quoted 3 lines · Axel Lin
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>
Negative line count patch is good.
Quoted 3 lines · Axel Lin
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>
Patch applied.
Great work, as usual.
Yours,
Linus Walleij