lkml.org 
[lkml]   [2010]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: regulator: regulator_get behaviour without CONFIG_REGULATOR set
    On Fri, Apr 02, 2010 at 11:47:50AM -0400, Jerome Oufella wrote:

    Please fix your mail client to word wrap paragraphs, I've manually fixed
    this up here.

    > Working on drivers/hwmon/sht15.c, I noticed it would return bogus
    > temperatures in my case, where CONFIG_REGULATOR is not set.

    > This is due to the following section in drivers/hwmon/sht15.c:
    >
    > /* If a regulator is available, query what the supply voltage actually is!*/
    > data->reg = regulator_get(data->dev, "vcc");
    > if (!IS_ERR(data->reg)) {
    > ...

    > Looking at consumer.h, it appears that regulator_get() returns a
    > pointer to its second argument when CONFIG_REGULATOR is not set.

    Right, it's just returning something that won't match IS_ERR().

    > What would be the proper way to determine if the returned value is a
    > valid regulator ? Would it be safe to check it against the 2nd
    > argument ?

    You're asking the wrong question here. The problem here is not that the
    regulator got stubbed out, the problem is that the sht15 driver is not
    checking the return value of regulator_get_voltage() and so is trying to
    use the error code that was returned as a voltage, with predictably poor
    results. It is this function that the driver needs to check, not
    regulator_get(). There are a range of reasons why an error might be
    returned when querying the voltage, all of which would cause the same
    result.

    It is not sensible to check the return code of regulator_get() for
    anything other than IS_ERR().


    \
     
     \ /
      Last update: 2010-04-02 18:03    [W:3.101 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site