Skip to content

Commit

Permalink
sbs-battery: Change power supply name
Browse files Browse the repository at this point in the history
The power supply name used to be fixed as "battery". This change allows
for multiple batteries by generating the name rather than using a fixed
value.

Signed-off-by: Rhyland Klein <rklein@nvidia.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
  • Loading branch information
Rhyland Klein authored and Anton Vorontsov committed Jan 6, 2012
1 parent e57f1b6 commit 52f56c6
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions drivers/power/sbs-battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -682,15 +682,24 @@ static int __devinit sbs_probe(struct i2c_client *client,
struct sbs_platform_data *pdata = client->dev.platform_data;
int rc;
int irq;
char *name;

chip = kzalloc(sizeof(struct sbs_info), GFP_KERNEL);
if (!chip)
name = kasprintf(GFP_KERNEL, "sbs-%s", dev_name(&client->dev));
if (!name) {
dev_err(&client->dev, "Failed to allocate device name\n");
return -ENOMEM;
}

chip = kzalloc(sizeof(struct sbs_info), GFP_KERNEL);
if (!chip) {
rc = -ENOMEM;
goto exit_free_name;
}

chip->client = client;
chip->enable_detection = false;
chip->gpio_detect = false;
chip->power_supply.name = "battery";
chip->power_supply.name = name;
chip->power_supply.type = POWER_SUPPLY_TYPE_BATTERY;
chip->power_supply.properties = sbs_properties;
chip->power_supply.num_properties = ARRAY_SIZE(sbs_properties);
Expand Down Expand Up @@ -775,6 +784,9 @@ static int __devinit sbs_probe(struct i2c_client *client,

kfree(chip);

exit_free_name:
kfree(name);

return rc;
}

Expand All @@ -791,6 +803,7 @@ static int __devexit sbs_remove(struct i2c_client *client)

cancel_delayed_work_sync(&chip->work);

kfree(chip->power_supply.name);
kfree(chip);
chip = NULL;

Expand Down

0 comments on commit 52f56c6

Please sign in to comment.