--- v2
+++ v6
@@ -1,41 +1,26 @@
-Upon unbinding the device make sure we release RPi's firmware interface.
+Use devm_rpi_firmware_get() so as to make sure we release RPi's firmware
+interface when unbinding the device.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
- drivers/reset/reset-raspberrypi.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
+ drivers/gpio/gpio-raspberrypi-exp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/reset/reset-raspberrypi.c b/drivers/reset/reset-raspberrypi.c
-index 02f59c06f69b..29311192e2c9 100644
---- a/drivers/reset/reset-raspberrypi.c
-+++ b/drivers/reset/reset-raspberrypi.c
-@@ -99,7 +99,17 @@ static int rpi_reset_probe(struct platform_device *pdev)
- priv->rcdev.ops = &rpi_reset_ops;
- priv->rcdev.of_node = dev->of_node;
+diff --git a/drivers/gpio/gpio-raspberrypi-exp.c b/drivers/gpio/gpio-raspberrypi-exp.c
+index bb100e0124e6..64a552ecc2ad 100644
+--- a/drivers/gpio/gpio-raspberrypi-exp.c
++++ b/drivers/gpio/gpio-raspberrypi-exp.c
+@@ -208,7 +208,7 @@ static int rpi_exp_gpio_probe(struct platform_device *pdev)
+ return -ENOENT;
+ }
-- return devm_reset_controller_register(dev, &priv->rcdev);
-+ return reset_controller_register(&priv->rcdev);
-+}
-+
-+static int rpi_reset_remove(struct platform_device *pdev)
-+{
-+ struct rpi_reset *priv = platform_get_drvdata(pdev);
-+
-+ reset_controller_unregister(&priv->rcdev);
-+ rpi_firmware_put(priv->fw);
-+
-+ return 0;
- }
-
- static const struct of_device_id rpi_reset_of_match[] = {
-@@ -110,6 +120,7 @@ MODULE_DEVICE_TABLE(of, rpi_reset_of_match);
-
- static struct platform_driver rpi_reset_driver = {
- .probe = rpi_reset_probe,
-+ .remove = rpi_reset_remove,
- .driver = {
- .name = "raspberrypi-reset",
- .of_match_table = rpi_reset_of_match,
+- fw = rpi_firmware_get(fw_node);
++ fw = devm_rpi_firmware_get(&pdev->dev, fw_node);
+ of_node_put(fw_node);
+ if (!fw)
+ return -EPROBE_DEFER;
--
-2.28.0
+2.29.2