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: Ping Cheng <pingc@wacom.com> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
26fe41245f
commit
954df6ad00
@ -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)
|
|||||||
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)
|
|||||||
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 {
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user