diff options
author | Syed Rafiuddin <srafiuddin@nvidia.com> | 2012-04-25 15:43:26 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-05-01 14:08:17 -0700 |
commit | bc18103a71dabc08fa26a287632e33f0c61b4a8e (patch) | |
tree | 95bdfd2e1ace628abc84874190aa288cb66129c1 | |
parent | 450337a3707bd4964b0bd39e2d0118ed6f56756a (diff) |
power: smb349: fix NULL pointer issue.
Configure i2c client structure in update charger structure
only when the charger driver is in use.
If charger driver is not used return -ENODEV
Change-Id: Ib1bc99145ee75bea819f69157920f9096e5d40ba
Signed-off-by: Syed Rafiuddin <srafiuddin@nvidia.com>
Reviewed-on: http://git-master/r/98712
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
-rw-r--r-- | drivers/power/smb349-charger.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/power/smb349-charger.c b/drivers/power/smb349-charger.c index 3013e576a463..22df2f923bde 100644 --- a/drivers/power/smb349-charger.c +++ b/drivers/power/smb349-charger.c @@ -274,9 +274,14 @@ error: int update_charger_status(void) { - struct i2c_client *client = charger->client; + struct i2c_client *client; int ret, val; + if (!charger) + return -ENODEV; + else + client = charger->client; + val = smb349_read(client, SMB349_STS_REG_D); if (val < 0) { dev_err(&client->dev, "%s(): Failed in reading register" @@ -371,14 +376,9 @@ static void smb349_otg_status(enum usb_otg_state to, enum usb_otg_state from, vo static int smb349_enable_charging(struct regulator_dev *rdev, int min_uA, int max_uA) { - struct i2c_client *client; + struct i2c_client *client = charger->client; int ret; - if(!charger) - return -ENODEV; - else - client = charger->client; - if (!max_uA) { charger->state = stopped; /* Disable charger */ |