forked from luck/tmp_suning_uos_patched
HID: wiimote: use unique battery names
Battery device names must be unique, otherwise registration fails if multiple Wii Remotes are connected. This breaks the sysfs API, but there is no known application that uses the Wii Remote battery that I know of so we should go ahead and apply this. Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
f8966048c1
commit
001dac8705
@ -1160,6 +1160,7 @@ static void wiimote_destroy(struct wiimote_data *wdata)
|
||||
wiimote_leds_destroy(wdata);
|
||||
|
||||
power_supply_unregister(&wdata->battery);
|
||||
kfree(wdata->battery.name);
|
||||
input_unregister_device(wdata->accel);
|
||||
input_unregister_device(wdata->ir);
|
||||
input_unregister_device(wdata->input);
|
||||
@ -1216,9 +1217,14 @@ static int wiimote_hid_probe(struct hid_device *hdev,
|
||||
wdata->battery.properties = wiimote_battery_props;
|
||||
wdata->battery.num_properties = ARRAY_SIZE(wiimote_battery_props);
|
||||
wdata->battery.get_property = wiimote_battery_get_property;
|
||||
wdata->battery.name = "wiimote_battery";
|
||||
wdata->battery.type = POWER_SUPPLY_TYPE_BATTERY;
|
||||
wdata->battery.use_for_apm = 0;
|
||||
wdata->battery.name = kasprintf(GFP_KERNEL, "wiimote_battery_%s",
|
||||
wdata->hdev->uniq);
|
||||
if (!wdata->battery.name) {
|
||||
ret = -ENOMEM;
|
||||
goto err_battery_name;
|
||||
}
|
||||
|
||||
ret = power_supply_register(&wdata->hdev->dev, &wdata->battery);
|
||||
if (ret) {
|
||||
@ -1254,6 +1260,8 @@ static int wiimote_hid_probe(struct hid_device *hdev,
|
||||
return ret;
|
||||
|
||||
err_battery:
|
||||
kfree(wdata->battery.name);
|
||||
err_battery_name:
|
||||
input_unregister_device(wdata->input);
|
||||
wdata->input = NULL;
|
||||
err_input:
|
||||
|
Loading…
Reference in New Issue
Block a user