[PATCH v6 2/7] reset: mchp: sparx5: Use the second reg item when cpu-syscon is not present
Geert Uytterhoeven
geert at linux-m68k.org
Mon Sep 30 06:23:37 PDT 2024
Hi Hervé,
On Mon, Sep 30, 2024 at 2:16 PM Herve Codina <herve.codina at bootlin.com> wrote:
> In the LAN966x PCI device use case, syscon cannot be used as syscon
> devices do not support removal [1]. A syscon device is a core "system"
> device and not a device available in some addon boards and so, it is not
> supposed to be removed.
>
> In order to remove the syscon usage, use a local mapping of a reg
> address range when cpu-syscon is not present.
>
> Link: https://lore.kernel.org/all/20240923100741.11277439@bootlin.com/ [1]
> Signed-off-by: Herve Codina <herve.codina at bootlin.com>
Thanks for your patch!
> --- a/drivers/reset/reset-microchip-sparx5.c
> +++ b/drivers/reset/reset-microchip-sparx5.c
> @@ -114,8 +114,22 @@ static int mchp_sparx5_reset_probe(struct platform_device *pdev)
> return -ENOMEM;
>
> err = mchp_sparx5_map_syscon(pdev, "cpu-syscon", &ctx->cpu_ctrl);
> - if (err)
> + switch (err) {
> + case 0:
> + break;
> + case -ENODEV:
> + /*
> + * The cpu-syscon device is not available.
> + * Fall back with IO mapping (i.e. mapping from reg property).
> + */
> + err = mchp_sparx5_map_io(pdev, 1, &ctx->cpu_ctrl);
> + if (err)
> + return err;
> + break;
> + default:
> return err;
> + }
> +
This can be shortened to:
if (err == -ENODEV) {
/*
* The cpu-syscon device is not available.
* Fall back with IO mapping (i.e. mapping from reg property).
*/
err = mchp_sparx5_map_io(pdev, 1, &ctx->cpu_ctrl);
}
if (err)
return err;
> err = mchp_sparx5_map_io(pdev, 0, &ctx->gcb_ctrl);
> if (err)
> return err;
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-arm-kernel
mailing list