Hi Adam,

> Am 10.09.2019 um 20:51 schrieb H. Nikolaus Schaller <h...@goldelico.com>:
> 
> Hi,
> 
>> Am 10.09.2019 um 20:30 schrieb Adam Ford <aford...@gmail.com>:
>> 
>> On Tue, Sep 10, 2019 at 11:59 AM H. Nikolaus Schaller <h...@goldelico.com> 
>> wrote:
>>> 

>> 
>> I assumed this to be -EINVAL, but I'd be happy to be wrong.
> 
> It seems that cat microvolts stringifies the int returned from reading
> the regulator voltage.
> 
> Since it is initialized to -EINVAL it returns "-22" as string instead of
> converting into an errno return when reading /sys... So one step is
> missing a proper error check.

Ok, found it in regulator_uV_show().

ret = sprintf(buf, "%d\n", regulator_get_voltage_rdev(rdev));

simply prints the result into a string.

But regulator_get_voltage_rdev() (or _regulator_get_voltage() before v5.3-rc1)
may return errors like -EPROBE_DEFER or -EINVAL or whatever
rdev->desc->ops->get_voltage_sel(rdev) returns.

So this is clearly a bug in regulator_uV_show().

> But that is just a symptom that there is no call to set a good voltage.

That is the next issue to find...

BR,
Nikolaus

Reply via email to