kernel: backport v6.6 nvmem changes
[openwrt/openwrt.git] / target / linux / generic / backport-5.15 / 819-v6.6-0007-nvmem-qfprom-do-some-cleanup.patch
diff --git a/target/linux/generic/backport-5.15/819-v6.6-0007-nvmem-qfprom-do-some-cleanup.patch b/target/linux/generic/backport-5.15/819-v6.6-0007-nvmem-qfprom-do-some-cleanup.patch
new file mode 100644 (file)
index 0000000..6d93752
--- /dev/null
@@ -0,0 +1,59 @@
+From 0bc0d6dc2a9a05ae6729b4622f09782d9f230815 Mon Sep 17 00:00:00 2001
+From: Yangtao Li <frank.li@vivo.com>
+Date: Wed, 23 Aug 2023 14:27:30 +0100
+Subject: [PATCH] nvmem: qfprom: do some cleanup
+
+Use devm_platform_ioremap_resource() and
+devm_platform_get_and_ioremap_resource() to simplify code.
+BTW convert to use dev_err_probe() instead of open it.
+
+Signed-off-by: Yangtao Li <frank.li@vivo.com>
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Link: https://lore.kernel.org/r/20230823132744.350618-9-srinivas.kandagatla@linaro.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/nvmem/qfprom.c | 17 +++++------------
+ 1 file changed, 5 insertions(+), 12 deletions(-)
+
+--- a/drivers/nvmem/qfprom.c
++++ b/drivers/nvmem/qfprom.c
+@@ -374,8 +374,7 @@ static int qfprom_probe(struct platform_
+               return -ENOMEM;
+       /* The corrected section is always provided */
+-      res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+-      priv->qfpcorrected = devm_ioremap_resource(dev, res);
++      priv->qfpcorrected = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
+       if (IS_ERR(priv->qfpcorrected))
+               return PTR_ERR(priv->qfpcorrected);
+@@ -402,12 +401,10 @@ static int qfprom_probe(struct platform_
+               priv->qfpraw = devm_ioremap_resource(dev, res);
+               if (IS_ERR(priv->qfpraw))
+                       return PTR_ERR(priv->qfpraw);
+-              res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
+-              priv->qfpconf = devm_ioremap_resource(dev, res);
++              priv->qfpconf = devm_platform_ioremap_resource(pdev, 2);
+               if (IS_ERR(priv->qfpconf))
+                       return PTR_ERR(priv->qfpconf);
+-              res = platform_get_resource(pdev, IORESOURCE_MEM, 3);
+-              priv->qfpsecurity = devm_ioremap_resource(dev, res);
++              priv->qfpsecurity = devm_platform_ioremap_resource(pdev, 3);
+               if (IS_ERR(priv->qfpsecurity))
+                       return PTR_ERR(priv->qfpsecurity);
+@@ -427,12 +424,8 @@ static int qfprom_probe(struct platform_
+                       return PTR_ERR(priv->vcc);
+               priv->secclk = devm_clk_get(dev, "core");
+-              if (IS_ERR(priv->secclk)) {
+-                      ret = PTR_ERR(priv->secclk);
+-                      if (ret != -EPROBE_DEFER)
+-                              dev_err(dev, "Error getting clock: %d\n", ret);
+-                      return ret;
+-              }
++              if (IS_ERR(priv->secclk))
++                      return dev_err_probe(dev, PTR_ERR(priv->secclk), "Error getting clock\n");
+               /* Only enable writing if we have SoC data. */
+               if (priv->soc_data)