Message ID | 1418831474-24428-7-git-send-email-ricardo.ribalda@gmail.com |
---|---|
State | New, archived |
Headers | show |
On Wed, Dec 17, 2014 at 4:51 PM, Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> wrote: > Create counterpart of of_mm_gpiochip_add(). This way the modules that > can be removable do not duplicate the cleanup code. > > Suggested-by: Alexandre Courbot <gnurou@gmail.com> > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Patch applied. Hm. $ git grep of_mm_gpiochip_add arch/powerpc/sysdev/cpm1.c: return of_mm_gpiochip_add(np, mm_gc); arch/powerpc/sysdev/cpm1.c: return of_mm_gpiochip_add(np, mm_gc); arch/powerpc/sysdev/cpm_common.c: return of_mm_gpiochip_add(np, mm_gc); arch/powerpc/sysdev/ppc4xx_gpio.c: ret = of_mm_gpiochip_add(np, mm_gc); arch/powerpc/sysdev/qe_lib/gpio.c: ret = of_mm_gpiochip_add(np, mm_gc); arch/powerpc/sysdev/simple_gpio.c: ret = of_mm_gpiochip_add(np, mm_gc); drivers/gpio/gpio-ge.c: return of_mm_gpiochip_add(pdev->dev.of_node, mmchip); drivers/gpio/gpio-mm-lantiq.c: ret = of_mm_gpiochip_add(pdev->dev.of_node, &chip->mmchip); drivers/gpio/gpio-mpc5200.c: ret = of_mm_gpiochip_add(ofdev->dev.of_node, &chip->mmchip); drivers/gpio/gpio-mpc5200.c: ret = of_mm_gpiochip_add(ofdev->dev.of_node, &chip->mmchip); drivers/gpio/gpio-mpc8xxx.c: ret = of_mm_gpiochip_add(np, mm_gc); drivers/gpio/gpio-xilinx.c: status = of_mm_gpiochip_add(np, &chip->mmchip); drivers/gpio/gpio-zevio.c: status = of_mm_gpiochip_add(pdev->dev.of_node, &(controller->chip)); Should these all be patched to use this, or reviewed for applicability? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello I think that only gpio-mpc5200.c would benefit from the new API, I can send a patchset to support removal and use the new API if you want. Thanks! On Mon, Jan 12, 2015 at 10:30 AM, Linus Walleij <linus.walleij@linaro.org> wrote: > On Wed, Dec 17, 2014 at 4:51 PM, Ricardo Ribalda Delgado > <ricardo.ribalda@gmail.com> wrote: > >> Create counterpart of of_mm_gpiochip_add(). This way the modules that >> can be removable do not duplicate the cleanup code. >> >> Suggested-by: Alexandre Courbot <gnurou@gmail.com> >> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> > > Patch applied. > > Hm. > > $ git grep of_mm_gpiochip_add > arch/powerpc/sysdev/cpm1.c: return of_mm_gpiochip_add(np, mm_gc); > arch/powerpc/sysdev/cpm1.c: return of_mm_gpiochip_add(np, mm_gc); > arch/powerpc/sysdev/cpm_common.c: return of_mm_gpiochip_add(np, mm_gc); > arch/powerpc/sysdev/ppc4xx_gpio.c: ret = > of_mm_gpiochip_add(np, mm_gc); > arch/powerpc/sysdev/qe_lib/gpio.c: ret = > of_mm_gpiochip_add(np, mm_gc); > arch/powerpc/sysdev/simple_gpio.c: ret = of_mm_gpiochip_add(np, mm_gc); > drivers/gpio/gpio-ge.c: return of_mm_gpiochip_add(pdev->dev.of_node, mmchip); > drivers/gpio/gpio-mm-lantiq.c: ret = > of_mm_gpiochip_add(pdev->dev.of_node, &chip->mmchip); > drivers/gpio/gpio-mpc5200.c: ret = > of_mm_gpiochip_add(ofdev->dev.of_node, &chip->mmchip); > drivers/gpio/gpio-mpc5200.c: ret = > of_mm_gpiochip_add(ofdev->dev.of_node, &chip->mmchip); > drivers/gpio/gpio-mpc8xxx.c: ret = of_mm_gpiochip_add(np, mm_gc); > drivers/gpio/gpio-xilinx.c: status = of_mm_gpiochip_add(np, &chip->mmchip); > drivers/gpio/gpio-zevio.c: status = > of_mm_gpiochip_add(pdev->dev.of_node, &(controller->chip)); > > Should these all be patched to use this, or reviewed for applicability? > > Yours, > Linus Walleij
On Mon, Jan 12, 2015 at 10:31 AM, Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> wrote: > I think that only gpio-mpc5200.c would benefit from the new API, I can > send a patchset to support removal and use the new API if you want. That would be awesome. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index 604dbe6..3e2c6af 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -204,6 +204,23 @@ err0: } EXPORT_SYMBOL(of_mm_gpiochip_add); +/** + * of_mm_gpiochip_remove - Remove memory mapped GPIO chip (bank) + * @mm_gc: pointer to the of_mm_gpio_chip allocated structure + */ +void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc) +{ + struct gpio_chip *gc = &mm_gc->gc; + + if (!mm_gc) + return; + + gpiochip_remove(gc); + iounmap(mm_gc->regs); + kfree(gc->label); +} +EXPORT_SYMBOL(of_mm_gpiochip_remove); + #ifdef CONFIG_PINCTRL static void of_gpiochip_add_pin_range(struct gpio_chip *chip) { diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h index 38fc050..69dbe31 100644 --- a/include/linux/of_gpio.h +++ b/include/linux/of_gpio.h @@ -52,6 +52,7 @@ extern int of_get_named_gpio_flags(struct device_node *np, extern int of_mm_gpiochip_add(struct device_node *np, struct of_mm_gpio_chip *mm_gc); +extern void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc); extern void of_gpiochip_add(struct gpio_chip *gc); extern void of_gpiochip_remove(struct gpio_chip *gc);
Create counterpart of of_mm_gpiochip_add(). This way the modules that can be removable do not duplicate the cleanup code. Suggested-by: Alexandre Courbot <gnurou@gmail.com> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> --- drivers/gpio/gpiolib-of.c | 17 +++++++++++++++++ include/linux/of_gpio.h | 1 + 2 files changed, 18 insertions(+)