2018-02-17 01:43:23

by Suman Anna

[permalink] [raw]
Subject: syscon regmap for disabled node?

Hi Pankaj, Arnd, Lee,

I am testing some code to use a syscon/regmap interface and I find that
the syscon/regmap is initialized even on a disabled device node using a
"syscon" compatible property when I have expected it to fail. Prior to
commit bdb0066df96e ("mfd: syscon: Decouple syscon interface from
platform devices"), the driver would have never probed, and the
of_syscon_register() only checks for the compatible, but not if the
device node is available. Is this intentional or a bug?

regards
Suman


2018-02-17 19:54:44

by Arnd Bergmann

[permalink] [raw]
Subject: Re: syscon regmap for disabled node?

On Sat, Feb 17, 2018 at 2:40 AM, Suman Anna <[email protected]> wrote:
> Hi Pankaj, Arnd, Lee,
>
> I am testing some code to use a syscon/regmap interface and I find that
> the syscon/regmap is initialized even on a disabled device node using a
> "syscon" compatible property when I have expected it to fail. Prior to
> commit bdb0066df96e ("mfd: syscon: Decouple syscon interface from
> platform devices"), the driver would have never probed, and the
> of_syscon_register() only checks for the compatible, but not if the
> device node is available. Is this intentional or a bug?

My guess would be that nothing relies on the current behavior and that
it could be changed if it causes problems, but it's hard to tell for the general
case.

Can you describe why you have a disabled syscon node? Most uses of the
status property are for on-chip devices that we disable because nothing is
connected to them, but that seems unlikely for a syscon.

Arnd

2018-02-20 00:08:17

by Suman Anna

[permalink] [raw]
Subject: Re: syscon regmap for disabled node?

On 02/17/2018 01:51 PM, Arnd Bergmann wrote:
> On Sat, Feb 17, 2018 at 2:40 AM, Suman Anna <[email protected]> wrote:
>> Hi Pankaj, Arnd, Lee,
>>
>> I am testing some code to use a syscon/regmap interface and I find that
>> the syscon/regmap is initialized even on a disabled device node using a
>> "syscon" compatible property when I have expected it to fail. Prior to
>> commit bdb0066df96e ("mfd: syscon: Decouple syscon interface from
>> platform devices"), the driver would have never probed, and the
>> of_syscon_register() only checks for the compatible, but not if the
>> device node is available. Is this intentional or a bug?
>
> My guess would be that nothing relies on the current behavior and that
> it could be changed if it causes problems, but it's hard to tell for the general
> case.
>
> Can you describe why you have a disabled syscon node? Most uses of the
> status property are for on-chip devices that we disable because nothing is
> connected to them, but that seems unlikely for a syscon.

I am just testing the failure paths in my code by specifically disabling
the syscon node, and to my surprise, the code went through fine when I
had expected the syscon_node_to_regmap() call to fail.

regards
Suman