diff options
Diffstat (limited to 'drivers/power/wm831x_backup.c')
| -rw-r--r-- | drivers/power/wm831x_backup.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/power/wm831x_backup.c b/drivers/power/wm831x_backup.c index 0fd130d80f5..e648cbea1e6 100644 --- a/drivers/power/wm831x_backup.c +++ b/drivers/power/wm831x_backup.c @@ -22,6 +22,7 @@  struct wm831x_backup {  	struct wm831x *wm831x;  	struct power_supply backup; +	char name[20];  };  static int wm831x_backup_read_voltage(struct wm831x *wm831x, @@ -163,6 +164,7 @@ static enum power_supply_property wm831x_backup_props[] = {  static __devinit int wm831x_backup_probe(struct platform_device *pdev)  {  	struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); +	struct wm831x_pdata *wm831x_pdata = wm831x->dev->platform_data;  	struct wm831x_backup *devdata;  	struct power_supply *backup;  	int ret; @@ -182,7 +184,14 @@ static __devinit int wm831x_backup_probe(struct platform_device *pdev)  	 */  	wm831x_config_backup(wm831x); -	backup->name = "wm831x-backup"; +	if (wm831x_pdata && wm831x_pdata->wm831x_num) +		snprintf(devdata->name, sizeof(devdata->name), +			 "wm831x-backup.%d", wm831x_pdata->wm831x_num); +	else +		snprintf(devdata->name, sizeof(devdata->name), +			 "wm831x-backup"); + +	backup->name = devdata->name;  	backup->type = POWER_SUPPLY_TYPE_BATTERY;  	backup->properties = wm831x_backup_props;  	backup->num_properties = ARRAY_SIZE(wm831x_backup_props); @@ -203,6 +212,7 @@ static __devexit int wm831x_backup_remove(struct platform_device *pdev)  	struct wm831x_backup *devdata = platform_get_drvdata(pdev);  	power_supply_unregister(&devdata->backup); +	kfree(devdata->backup.name);  	kfree(devdata);  	return 0;  |