Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 001dac87 authored by David Herrmann's avatar David Herrmann Committed by Jiri Kosina
Browse files

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: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent f8966048
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -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: