diff options
author | Arnd Bergmann <arnd@arndb.de> | 2016-09-06 15:16:33 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2016-09-07 01:46:59 +0200 |
commit | 9edeaada19a21eb669ae0dfe749be88f1810ea92 (patch) | |
tree | 36a081af6da3dc088baf92d4488617d7bf31941d /drivers/power/supply/bq24257_charger.c | |
parent | c65a8b51123a14f6960e4238bfa4673d54ee183a (diff) | |
download | lwn-9edeaada19a21eb669ae0dfe749be88f1810ea92.tar.gz lwn-9edeaada19a21eb669ae0dfe749be88f1810ea92.zip |
power: supply: sbs-battery: simplify DT parsing
After the change to use the gpio descriptor interface, we get a warning if
-Wmaybe-uninitialized is added back to the build flags (it is currently
disabled:
drivers/power/supply/sbs-battery.c: In function 'sbs_probe':
drivers/power/supply/sbs-battery.c:760:28: error: 'pdata' may be used uninitialized in this function [-Werror=maybe-uninitialized]
The problem is that if neither the DT properties nor a platform_data
pointer are provided, the chip->pdata pointer gets set to an uninitialized
value.
Looking at the code some more, I found that the sbs_of_populate_pdata
function is more complex than necessary and has confusing calling
conventions of possibly returning a valid pointer, a NULL pointer
or an ERR_PTR pointer (in addition to the uninitialized pointer).
To fix all of that, this gets rid of the chip->pdata pointer and
simply moves the two integers into the sbs_info structure. This
makes it much clearer from reading sbs_probe() what the precedence
of the three possible values are (pdata, DT, hardcoded defaults)
and completely avoids the #ifdef CONFIG_OF guards as
of_property_read_u32() gets replaced with a compile-time stub
when that is disabled, and returns an error if passed a NULL of_node
pointer.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 3b5dd3a49496 ("power: supply: sbs-battery: Use gpio_desc and sleeping calls for battery detect")
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Diffstat (limited to 'drivers/power/supply/bq24257_charger.c')
0 files changed, 0 insertions, 0 deletions