mbox series

[v2,00/13] memory: simplify with scoped/cleanup.h for device nodes

Message ID 20240816-cleanup-h-of-node-put-memory-v2-0-9eed0ee16b78@linaro.org
Headers show
Series memory: simplify with scoped/cleanup.h for device nodes | expand

Message

Krzysztof Kozlowski Aug. 16, 2024, 10:54 a.m. UTC
Changes in v2:
- Add tags
- Wrap lines before of_parse_phandle() (Jonathan)
- Few new patches (see individual changelogs)
- Link to v1: https://lore.kernel.org/r/20240812-cleanup-h-of-node-put-memory-v1-0-5065a8f361d2@linaro.org

Make code a bit simpler and smaller by using cleanup.h when handling
device nodes.

Best regards,
Krzysztof

---
Krzysztof Kozlowski (13):
      memory: atmel-ebi: use scoped device node handling to simplify error paths
      memory: atmel-ebi: simplify with scoped for each OF child loop
      memory: samsung: exynos5422-dmc: simplify dmc->dev usage
      memory: samsung: exynos5422-dmc: use scoped device node handling to simplify error paths
      memory: stm32-fmc2-ebi: simplify with scoped for each OF child loop
      memory: stm32-fmc2-ebi: simplify with dev_err_probe()
      memory: tegra-mc: simplify with scoped for each OF child loop
      memory: tegra124-emc: simplify with scoped for each OF child loop
      memory: tegra20-emc: simplify with scoped for each OF child loop
      memory: tegra30-emc: simplify with scoped for each OF child loop
      memory: ti-aemif: simplify with dev_err_probe()
      memory: ti-aemif: simplify with devm_clk_get_enabled()
      memory: ti-aemif: simplify with scoped for each OF child loop

 drivers/memory/atmel-ebi.c              | 35 +++++--------
 drivers/memory/samsung/exynos5422-dmc.c | 90 +++++++++++++++------------------
 drivers/memory/stm32-fmc2-ebi.c         | 23 +++------
 drivers/memory/tegra/mc.c               | 11 ++--
 drivers/memory/tegra/tegra124-emc.c     |  7 +--
 drivers/memory/tegra/tegra20-emc.c      |  7 +--
 drivers/memory/tegra/tegra30-emc.c      |  7 +--
 drivers/memory/ti-aemif.c               | 48 +++++-------------
 8 files changed, 80 insertions(+), 148 deletions(-)
---
base-commit: cf4d89333014d387065aa296160aaec5cec04cc5
change-id: 20240812-cleanup-h-of-node-put-memory-dd6de1b92917

Best regards,

Comments

Jonathan Cameron Aug. 19, 2024, 3:58 p.m. UTC | #1
On Fri, 16 Aug 2024 12:54:37 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> Use scoped for_each_available_child_of_node_scoped() when iterating over
> device nodes to make code a bit simpler.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Jonathan Cameron Aug. 19, 2024, 4 p.m. UTC | #2
On Fri, 16 Aug 2024 12:54:35 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> Use dev_err_probe() to avoid dmesg flood on actual defer.  This makes
> the code also simpler.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> ---
> 
> Changes in v2:
> 1. New patch
> ---
>  drivers/memory/ti-aemif.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/memory/ti-aemif.c b/drivers/memory/ti-aemif.c
> index e192db9e0e4b..360f2705b1ff 100644
> --- a/drivers/memory/ti-aemif.c
> +++ b/drivers/memory/ti-aemif.c
> @@ -345,10 +345,8 @@ static int aemif_probe(struct platform_device *pdev)
>  	platform_set_drvdata(pdev, aemif);
>  
>  	aemif->clk = devm_clk_get(dev, NULL);
> -	if (IS_ERR(aemif->clk)) {
> -		dev_err(dev, "cannot get clock 'aemif'\n");
> -		return PTR_ERR(aemif->clk);
> -	}
> +	if (IS_ERR(aemif->clk))
> +		return dev_err_probe(dev, PTR_ERR(aemif->clk), "cannot get clock 'aemif'\n");
Bit of a long line, so maybe wrap.  Up to maintainers

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

>  
>  	ret = clk_prepare_enable(aemif->clk);
>  	if (ret)
>
Jonathan Cameron Aug. 19, 2024, 4:03 p.m. UTC | #3
On Fri, 16 Aug 2024 12:54:27 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> Store 'dmc->dev' in local 'dev' variable, to make several pieces of code
> using it shorter and easier to read.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Jonathan Cameron Aug. 19, 2024, 4:04 p.m. UTC | #4
On Fri, 16 Aug 2024 12:54:25 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> Obtain the device node reference with scoped/cleanup.h to reduce error
> handling and make the code a bit simpler.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
I'm not entirely keen on the increased scope for which the reference
is held but doesn't really matter.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

>
Krzysztof Kozlowski Aug. 21, 2024, 11:41 a.m. UTC | #5
On 16/08/2024 12:54, Krzysztof Kozlowski wrote:
> Changes in v2:
> - Add tags
> - Wrap lines before of_parse_phandle() (Jonathan)
> - Few new patches (see individual changelogs)
> - Link to v1: https://lore.kernel.org/r/20240812-cleanup-h-of-node-put-memory-v1-0-5065a8f361d2@linaro.org
> 
> Make code a bit simpler and smaller by using cleanup.h when handling
> device nodes.
> 
> Best regards,

Rebased (some changes around ti-aemif) and applied.

Best regards,
Krzysztof
Thierry Reding Aug. 27, 2024, 9:10 a.m. UTC | #6
On Fri, Aug 16, 2024 at 12:54:31PM GMT, Krzysztof Kozlowski wrote:
> Use scoped for_each_child_of_node_scoped() when iterating over device
> nodes to make code a bit simpler.
> 
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  drivers/memory/tegra/mc.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>
Thierry Reding Aug. 27, 2024, 9:11 a.m. UTC | #7
On Fri, Aug 16, 2024 at 12:54:33PM GMT, Krzysztof Kozlowski wrote:
> Use scoped for_each_child_of_node_scoped() when iterating over device
> nodes to make code a bit simpler.
> 
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  drivers/memory/tegra/tegra20-emc.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>
Thierry Reding Aug. 27, 2024, 9:12 a.m. UTC | #8
On Wed, Aug 21, 2024 at 01:41:54PM GMT, Krzysztof Kozlowski wrote:
> On 16/08/2024 12:54, Krzysztof Kozlowski wrote:
> > Changes in v2:
> > - Add tags
> > - Wrap lines before of_parse_phandle() (Jonathan)
> > - Few new patches (see individual changelogs)
> > - Link to v1: https://lore.kernel.org/r/20240812-cleanup-h-of-node-put-memory-v1-0-5065a8f361d2@linaro.org
> > 
> > Make code a bit simpler and smaller by using cleanup.h when handling
> > device nodes.
> > 
> > Best regards,
> 
> Rebased (some changes around ti-aemif) and applied.

Oh heh... nevermind those Acked-bys that I just sent out then. =)

Thierry
Nicolas Ferre Aug. 27, 2024, 10:35 a.m. UTC | #9
On 16/08/2024 at 12:54, Krzysztof Kozlowski wrote:
> Obtain the device node reference with scoped/cleanup.h to reduce error
> handling and make the code a bit simpler.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Best regards,
   Nicolas

> 
> ---
> 
> Changes in v2:
> 1. Wrap line before of_parse_phandle()
> ---
>   drivers/memory/atmel-ebi.c | 29 ++++++++++-------------------
>   1 file changed, 10 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/memory/atmel-ebi.c b/drivers/memory/atmel-ebi.c
> index e8bb5f37f5cb..8f5b3302ee30 100644
> --- a/drivers/memory/atmel-ebi.c
> +++ b/drivers/memory/atmel-ebi.c
> @@ -6,6 +6,7 @@
>    * Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
>    */
> 
> +#include <linux/cleanup.h>
>   #include <linux/clk.h>
>   #include <linux/io.h>
>   #include <linux/mfd/syscon.h>
> @@ -517,7 +518,7 @@ static int atmel_ebi_dev_disable(struct atmel_ebi *ebi, struct device_node *np)
>   static int atmel_ebi_probe(struct platform_device *pdev)
>   {
>          struct device *dev = &pdev->dev;
> -       struct device_node *child, *np = dev->of_node, *smc_np;
> +       struct device_node *child, *np = dev->of_node;
>          struct atmel_ebi *ebi;
>          int ret, reg_cells;
>          struct clk *clk;
> @@ -541,30 +542,24 @@ static int atmel_ebi_probe(struct platform_device *pdev)
> 
>          ebi->clk = clk;
> 
> -       smc_np = of_parse_phandle(dev->of_node, "atmel,smc", 0);
> +       struct device_node *smc_np __free(device_node) =
> +               of_parse_phandle(dev->of_node, "atmel,smc", 0);
> 
>          ebi->smc.regmap = syscon_node_to_regmap(smc_np);
> -       if (IS_ERR(ebi->smc.regmap)) {
> -               ret = PTR_ERR(ebi->smc.regmap);
> -               goto put_node;
> -       }
> +       if (IS_ERR(ebi->smc.regmap))
> +               return PTR_ERR(ebi->smc.regmap);
> 
>          ebi->smc.layout = atmel_hsmc_get_reg_layout(smc_np);
> -       if (IS_ERR(ebi->smc.layout)) {
> -               ret = PTR_ERR(ebi->smc.layout);
> -               goto put_node;
> -       }
> +       if (IS_ERR(ebi->smc.layout))
> +               return PTR_ERR(ebi->smc.layout);
> 
>          ebi->smc.clk = of_clk_get(smc_np, 0);
>          if (IS_ERR(ebi->smc.clk)) {
> -               if (PTR_ERR(ebi->smc.clk) != -ENOENT) {
> -                       ret = PTR_ERR(ebi->smc.clk);
> -                       goto put_node;
> -               }
> +               if (PTR_ERR(ebi->smc.clk) != -ENOENT)
> +                       return PTR_ERR(ebi->smc.clk);
> 
>                  ebi->smc.clk = NULL;
>          }
> -       of_node_put(smc_np);
>          ret = clk_prepare_enable(ebi->smc.clk);
>          if (ret)
>                  return ret;
> @@ -615,10 +610,6 @@ static int atmel_ebi_probe(struct platform_device *pdev)
>          }
> 
>          return of_platform_populate(np, NULL, NULL, dev);
> -
> -put_node:
> -       of_node_put(smc_np);
> -       return ret;
>   }
> 
>   static __maybe_unused int atmel_ebi_resume(struct device *dev)
> 
> --
> 2.43.0
>