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

Commit 954df6ad authored by Ping Cheng's avatar Ping Cheng Committed by Jiri Kosina
Browse files

HID: wacom: PAD is independent with pen/touch



PAD can be on pen interface (Intuos Pro and Cintiq series) or touch
interface (Bamboo PT and Intuos PT series) or its own interface
(Bamboo pen-only and Intuos Pen M/S). We need to mark it independently.

Signed-off-by: default avatarPing Cheng <pingc@wacom.com>
Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 26fe4124
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1135,7 +1135,7 @@ static void wacom_clean_inputs(struct wacom *wacom)
			input_free_device(wacom->wacom_wac.input);
	}
	if (wacom->wacom_wac.pad_input) {
		if (wacom->wacom_wac.input_registered)
		if (wacom->wacom_wac.pad_registered)
			input_unregister_device(wacom->wacom_wac.pad_input);
		else
			input_free_device(wacom->wacom_wac.pad_input);
@@ -1162,6 +1162,7 @@ static int wacom_register_inputs(struct wacom *wacom)
		error = input_register_device(input_dev);
		if (error)
			return error;
		wacom_wac->input_registered = true;
	}

	error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac);
@@ -1174,22 +1175,23 @@ static int wacom_register_inputs(struct wacom *wacom)
		error = input_register_device(pad_input_dev);
		if (error)
			goto fail_register_pad_input;
		wacom_wac->pad_registered = true;

		error = wacom_initialize_leds(wacom);
		if (error)
			goto fail_leds;
	}

	wacom_wac->input_registered = true;

	return 0;

fail_leds:
	input_unregister_device(pad_input_dev);
	pad_input_dev = NULL;
	wacom_wac->pad_registered = false;
fail_register_pad_input:
	input_unregister_device(input_dev);
	wacom_wac->input = NULL;
	wacom_wac->input_registered = false;
	return error;
}

+1 −0
Original line number Diff line number Diff line
@@ -183,6 +183,7 @@ struct wacom_wac {
	struct input_dev *input;
	struct input_dev *pad_input;
	bool input_registered;
	bool pad_registered;
	int pid;
	int battery_capacity;
	int num_contacts_left;