Re: [RESEND PATCH v2] mfd: syscon: Use a unique name with regmap_config

From: Arnd Bergmann
Date: Tue Jul 28 2020 - 03:44:49 EST


On Mon, Jul 27, 2020 at 11:10 PM Suman Anna <s-anna@xxxxxx> wrote:
>
> The DT node full name is currently being used in regmap_config
> which in turn is used to create the regmap debugfs directories.
> This name however is not guaranteed to be unique and the regmap
> debugfs registration can fail in the cases where the syscon nodes
> have the same unit-address but are present in different DT node
> hierarchies. Replace this logic using the syscon reg resource
> address instead (inspired from logic used while creating platform
> devices) to ensure a unique name is given for each syscon.
>
> Signed-off-by: Suman Anna <s-anna@xxxxxx>
> ---
> Hi Arnd,
> Lee is looking for your review on this patch. Can you please
> review and provide your comments.

Sorry for missing this earlier. I think this makes sense, and I don't
expect the name change to cause problems, so

Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>

> --- a/drivers/mfd/syscon.c
> +++ b/drivers/mfd/syscon.c
> @@ -101,12 +101,14 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_clk)
> }
> }
>
> - syscon_config.name = of_node_full_name(np);
> + syscon_config.name = kasprintf(GFP_KERNEL, "%pOFn@%llx", np,
> + (u64)res.start);

Note that you could avoid the cast by using "%pOFn@%pa", and
passing res.start by reference. Not important though, the result should
be similar, and you might not like the '0x' that this adds.

Arnd