Since d621e8bae5ac9c67 (Create of_mm_gpiochip_remove), there is a
counterpart for of_mm_gpiochip_add.

This patch implements the remove function of the driver making use of
it.

Cc: Linus Walleij <[email protected]>
Cc: Alexandre Courbot <[email protected]>
Cc: Fabian Vogt <[email protected]>
Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
---
 drivers/gpio/gpio-zevio.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpio/gpio-zevio.c b/drivers/gpio/gpio-zevio.c
index f769cd5..6f02d7c 100644
--- a/drivers/gpio/gpio-zevio.c
+++ b/drivers/gpio/gpio-zevio.c
@@ -181,6 +181,8 @@ static int zevio_gpio_probe(struct platform_device *pdev)
        if (!controller)
                return -ENOMEM;
 
+       platform_set_drvdata(pdev, controller);
+
        /* Copy our reference */
        controller->chip.gc = zevio_gpio_chip;
        controller->chip.gc.dev = &pdev->dev;
@@ -202,6 +204,15 @@ static int zevio_gpio_probe(struct platform_device *pdev)
        return 0;
 }
 
+static int zevio_gpio_remove(struct platform_device *pdev)
+{
+       struct zevio_gpio *controller = platform_get_drvdata(pdev);
+
+       of_mm_gpiochip_remove(&controller->chip);
+
+       return 0;
+}
+
 static const struct of_device_id zevio_gpio_of_match[] = {
        { .compatible = "lsi,zevio-gpio", },
        { },
@@ -215,6 +226,7 @@ static struct platform_driver zevio_gpio_driver = {
                .of_match_table = zevio_gpio_of_match,
        },
        .probe          = zevio_gpio_probe,
+       .remove         = zevio_gpio_remove,
 };
 module_platform_driver(zevio_gpio_driver);
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to