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

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
...@@ -1135,7 +1135,7 @@ static void wacom_clean_inputs(struct wacom *wacom) ...@@ -1135,7 +1135,7 @@ static void wacom_clean_inputs(struct wacom *wacom)
input_free_device(wacom->wacom_wac.input); input_free_device(wacom->wacom_wac.input);
} }
if (wacom->wacom_wac.pad_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); input_unregister_device(wacom->wacom_wac.pad_input);
else else
input_free_device(wacom->wacom_wac.pad_input); input_free_device(wacom->wacom_wac.pad_input);
...@@ -1162,6 +1162,7 @@ static int wacom_register_inputs(struct wacom *wacom) ...@@ -1162,6 +1162,7 @@ static int wacom_register_inputs(struct wacom *wacom)
error = input_register_device(input_dev); error = input_register_device(input_dev);
if (error) if (error)
return error; return error;
wacom_wac->input_registered = true;
} }
error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac); error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac);
...@@ -1174,22 +1175,23 @@ static int wacom_register_inputs(struct wacom *wacom) ...@@ -1174,22 +1175,23 @@ static int wacom_register_inputs(struct wacom *wacom)
error = input_register_device(pad_input_dev); error = input_register_device(pad_input_dev);
if (error) if (error)
goto fail_register_pad_input; goto fail_register_pad_input;
wacom_wac->pad_registered = true;
error = wacom_initialize_leds(wacom); error = wacom_initialize_leds(wacom);
if (error) if (error)
goto fail_leds; goto fail_leds;
} }
wacom_wac->input_registered = true;
return 0; return 0;
fail_leds: fail_leds:
input_unregister_device(pad_input_dev); input_unregister_device(pad_input_dev);
pad_input_dev = NULL; pad_input_dev = NULL;
wacom_wac->pad_registered = false;
fail_register_pad_input: fail_register_pad_input:
input_unregister_device(input_dev); input_unregister_device(input_dev);
wacom_wac->input = NULL; wacom_wac->input = NULL;
wacom_wac->input_registered = false;
return error; return error;
} }
......
...@@ -183,6 +183,7 @@ struct wacom_wac { ...@@ -183,6 +183,7 @@ struct wacom_wac {
struct input_dev *input; struct input_dev *input;
struct input_dev *pad_input; struct input_dev *pad_input;
bool input_registered; bool input_registered;
bool pad_registered;
int pid; int pid;
int battery_capacity; int battery_capacity;
int num_contacts_left; int num_contacts_left;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment