2013-10-08 06:09:22

by Wei Ni

[permalink] [raw]
Subject: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

Hi, Mark
In the latest regulator framework, it default to provide dummy
regulators with full constraints by your patch "regulator: core: Provide
a dummy regulator with full constraints".
I tried to use regulator_get() on lm90.c. If not set vcc-supply property
in the dts file to assume the regulator is physically present and
enabled, but it still can't get dummy regulator, just return -ENODEV.
I traced it, the regulator_dev_lookup() will return -ENODEV, and at that
time the has_full_constraints is still false, didn't be initialized in
regulator_init_complete() yet, so it will not return dummy regulator,
and will not return -EPROBE_DEFER either. This will cause the
lm90_probe() failed.

Could you take a look ?

Thanks.
Wei.


2013-10-08 09:09:19

by Mark Brown

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On Tue, Oct 08, 2013 at 02:09:02PM +0800, Wei Ni wrote:

> In the latest regulator framework, it default to provide dummy
> regulators with full constraints by your patch "regulator: core: Provide
> a dummy regulator with full constraints".

> I tried to use regulator_get() on lm90.c. If not set vcc-supply property
> in the dts file to assume the regulator is physically present and
> enabled, but it still can't get dummy regulator, just return -ENODEV.
> I traced it, the regulator_dev_lookup() will return -ENODEV, and at that
> time the has_full_constraints is still false, didn't be initialized in
> regulator_init_complete() yet, so it will not return dummy regulator,
> and will not return -EPROBE_DEFER either. This will cause the
> lm90_probe() failed.

> Could you take a look ?

Could you take a look at why we're getting -ENODEV please - this
indicates a problem with the device tree code since it should be what's
requesting probe deferral when it sees a link is present.


Attachments:
(No filename) (987.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-10-08 09:46:57

by Wei Ni

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On 10/08/2013 05:09 PM, Mark Brown wrote:
> * PGP Signed by an unknown key
>
> On Tue, Oct 08, 2013 at 02:09:02PM +0800, Wei Ni wrote:
>
>> In the latest regulator framework, it default to provide dummy
>> regulators with full constraints by your patch "regulator: core: Provide
>> a dummy regulator with full constraints".
>
>> I tried to use regulator_get() on lm90.c. If not set vcc-supply property
>> in the dts file to assume the regulator is physically present and
>> enabled, but it still can't get dummy regulator, just return -ENODEV.
>> I traced it, the regulator_dev_lookup() will return -ENODEV, and at that
>> time the has_full_constraints is still false, didn't be initialized in
>> regulator_init_complete() yet, so it will not return dummy regulator,
>> and will not return -EPROBE_DEFER either. This will cause the
>> lm90_probe() failed.
>
>> Could you take a look ?
>
> Could you take a look at why we're getting -ENODEV please - this
> indicates a problem with the device tree code since it should be what's
> requesting probe deferral when it sees a link is present.

In the regulator_dev_lookup(), it will try to read the "xx-supply" to
get the regnode, but I didn't set the vcc-supply in dts file for lm90,
so the of_get_regulator() will return NULL, then the
regulator_dev_lookup() will set the ret to -ENODEV, and return the rdev
as NULL.

Thanks.
Wei.

>
> * Unknown Key
> * 0x7EA229BD
>

2013-10-12 12:14:39

by Mark Brown

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On Tue, Oct 08, 2013 at 05:46:49PM +0800, Wei Ni wrote:

> In the regulator_dev_lookup(), it will try to read the "xx-supply" to
> get the regnode, but I didn't set the vcc-supply in dts file for lm90,
> so the of_get_regulator() will return NULL, then the
> regulator_dev_lookup() will set the ret to -ENODEV, and return the rdev
> as NULL.

OK, I think the device tree board code just needs to set full
constraints during machine initialisation. We can't have multiple
initcalls in the regulator code and doing it there is really a bit of a
workaround anyway.


Attachments:
(No filename) (563.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-10-16 04:36:46

by Wei Ni

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On 10/12/2013 08:14 PM, Mark Brown wrote:
> * PGP Signed by an unknown key
>
> On Tue, Oct 08, 2013 at 05:46:49PM +0800, Wei Ni wrote:
>
>> In the regulator_dev_lookup(), it will try to read the "xx-supply" to
>> get the regnode, but I didn't set the vcc-supply in dts file for lm90,
>> so the of_get_regulator() will return NULL, then the
>> regulator_dev_lookup() will set the ret to -ENODEV, and return the rdev
>> as NULL.
>
> OK, I think the device tree board code just needs to set full
> constraints during machine initialisation. We can't have multiple

Hi, Mark, do you mean we can call regulator_has_full_constraints(), but
some platforms doesn't have board file now, they only have dts file, how
to call this functions?

Wei.

> initcalls in the regulator code and doing it there is really a bit of a
> workaround anyway.
>
> * Unknown Key
> * 0x7EA229BD
>

2013-10-16 10:40:08

by Mark Brown

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On Wed, Oct 16, 2013 at 12:36:46PM +0800, Wei Ni wrote:
> On 10/12/2013 08:14 PM, Mark Brown wrote:

> > OK, I think the device tree board code just needs to set full
> > constraints during machine initialisation. We can't have multiple

> Hi, Mark, do you mean we can call regulator_has_full_constraints(), but
> some platforms doesn't have board file now, they only have dts file, how
> to call this functions?

There is still a board file for DT machines, it's just shared between
all machines - it should be doing the call instead of the regulator
framework trying to retrofit it.


Attachments:
(No filename) (586.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-10-17 04:40:01

by Wei Ni

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On 10/16/2013 06:39 PM, Mark Brown wrote:
> * PGP Signed by an unknown key
>
> On Wed, Oct 16, 2013 at 12:36:46PM +0800, Wei Ni wrote:
>> On 10/12/2013 08:14 PM, Mark Brown wrote:
>
>>> OK, I think the device tree board code just needs to set full
>>> constraints during machine initialisation. We can't have multiple
>
>> Hi, Mark, do you mean we can call regulator_has_full_constraints(), but
>> some platforms doesn't have board file now, they only have dts file, how
>> to call this functions?
>
> There is still a board file for DT machines, it's just shared between
> all machines - it should be doing the call instead of the regulator
> framework trying to retrofit it.

So do you mean it should call the regulator_has_full_constraints() in
the .init_machine for all machines? If so, this will affect all boards,
for example, in arch/arm/mach-tegra, if we set full constraints in the
shared board file tegra.c, all tegra boards will be set, is it right?

Thanks.
Wei.

>
> * Unknown Key
> * 0x7EA229BD
>

2013-10-17 09:37:13

by Mark Brown

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On Thu, Oct 17, 2013 at 12:39:55PM +0800, Wei Ni wrote:

> So do you mean it should call the regulator_has_full_constraints() in
> the .init_machine for all machines? If so, this will affect all boards,
> for example, in arch/arm/mach-tegra, if we set full constraints in the
> shared board file tegra.c, all tegra boards will be set, is it right?

Yes, but this is currently the case anyway for every system using DT -
all we'd be doing is moving this call earlier in init.


Attachments:
(No filename) (475.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-10-17 10:40:04

by Wei Ni

[permalink] [raw]
Subject: Re: About [PATCH 1/2] regulator: core: Provide a dummy regulator with full constraints

On 10/17/2013 05:37 PM, Mark Brown wrote:
> * PGP Signed by an unknown key
>
> On Thu, Oct 17, 2013 at 12:39:55PM +0800, Wei Ni wrote:
>
>> So do you mean it should call the regulator_has_full_constraints() in
>> the .init_machine for all machines? If so, this will affect all boards,
>> for example, in arch/arm/mach-tegra, if we set full constraints in the
>> shared board file tegra.c, all tegra boards will be set, is it right?
>
> Yes, but this is currently the case anyway for every system using DT -
> all we'd be doing is moving this call earlier in init.

Ok, I will send out patches for Tegra series.

>
> * Unknown Key
> * 0x7EA229BD
>