[PATCH v4 6/8] reset: mchp: sparx5: Release syscon when not use anymore
Steen Hegelund
steen.hegelund at microchip.com
Wed Aug 7 02:48:56 PDT 2024
Hi Herve,
On Mon, 2024-08-05 at 12:17 +0200, Herve Codina wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
>
> From: Clément Léger <clement.leger at bootlin.com>
>
> The sparx5 reset controller does not release syscon when it is not
> used
> anymore.
>
> This reset controller is used by the LAN966x PCI device driver.
> It can be removed from the system at runtime and needs to release its
> consumed syscon on removal.
>
> Use the newly introduced devm_syscon_regmap_lookup_by_phandle() in
> order
> to get the syscon and automatically release it on removal.
>
> Signed-off-by: Clément Léger <clement.leger at bootlin.com>
> Signed-off-by: Herve Codina <herve.codina at bootlin.com>
> ---
> drivers/reset/reset-microchip-sparx5.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/reset/reset-microchip-sparx5.c
> b/drivers/reset/reset-microchip-sparx5.c
> index 69915c7b4941..c4fe65291a43 100644
> --- a/drivers/reset/reset-microchip-sparx5.c
> +++ b/drivers/reset/reset-microchip-sparx5.c
> @@ -65,15 +65,11 @@ static const struct reset_control_ops
> sparx5_reset_ops = {
> static int mchp_sparx5_map_syscon(struct platform_device *pdev, char
> *name,
> struct regmap **target)
> {
> - struct device_node *syscon_np;
> + struct device *dev = &pdev->dev;
> struct regmap *regmap;
> int err;
>
> - syscon_np = of_parse_phandle(pdev->dev.of_node, name, 0);
> - if (!syscon_np)
> - return -ENODEV;
> - regmap = syscon_node_to_regmap(syscon_np);
> - of_node_put(syscon_np);
> + regmap = devm_syscon_regmap_lookup_by_phandle(dev, dev-
> >of_node, name);
> if (IS_ERR(regmap)) {
> err = PTR_ERR(regmap);
> dev_err(&pdev->dev, "No '%s' map: %d\n", name, err);
> --
> 2.45.0
>
Looks good to me.
Reviewed-by: Steen Hegelund <Steen.Hegelund at microchip.com>
BR
Steen
More information about the linux-arm-kernel
mailing list