diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/hid/wacom_sys.c | 8 | ||||
-rw-r--r-- | drivers/hid/wacom_wac.h | 1 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c index 68b6cd66f9c3..eb5531657e41 100644 --- a/drivers/hid/wacom_sys.c +++ b/drivers/hid/wacom_sys.c | |||
@@ -1135,7 +1135,7 @@ static void wacom_clean_inputs(struct wacom *wacom) | |||
1135 | input_free_device(wacom->wacom_wac.input); | 1135 | input_free_device(wacom->wacom_wac.input); |
1136 | } | 1136 | } |
1137 | if (wacom->wacom_wac.pad_input) { | 1137 | if (wacom->wacom_wac.pad_input) { |
1138 | if (wacom->wacom_wac.input_registered) | 1138 | if (wacom->wacom_wac.pad_registered) |
1139 | input_unregister_device(wacom->wacom_wac.pad_input); | 1139 | input_unregister_device(wacom->wacom_wac.pad_input); |
1140 | else | 1140 | else |
1141 | input_free_device(wacom->wacom_wac.pad_input); | 1141 | input_free_device(wacom->wacom_wac.pad_input); |
@@ -1162,6 +1162,7 @@ static int wacom_register_inputs(struct wacom *wacom) | |||
1162 | error = input_register_device(input_dev); | 1162 | error = input_register_device(input_dev); |
1163 | if (error) | 1163 | if (error) |
1164 | return error; | 1164 | return error; |
1165 | wacom_wac->input_registered = true; | ||
1165 | } | 1166 | } |
1166 | 1167 | ||
1167 | error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac); | 1168 | error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac); |
@@ -1174,22 +1175,23 @@ static int wacom_register_inputs(struct wacom *wacom) | |||
1174 | error = input_register_device(pad_input_dev); | 1175 | error = input_register_device(pad_input_dev); |
1175 | if (error) | 1176 | if (error) |
1176 | goto fail_register_pad_input; | 1177 | goto fail_register_pad_input; |
1178 | wacom_wac->pad_registered = true; | ||
1177 | 1179 | ||
1178 | error = wacom_initialize_leds(wacom); | 1180 | error = wacom_initialize_leds(wacom); |
1179 | if (error) | 1181 | if (error) |
1180 | goto fail_leds; | 1182 | goto fail_leds; |
1181 | } | 1183 | } |
1182 | 1184 | ||
1183 | wacom_wac->input_registered = true; | ||
1184 | |||
1185 | return 0; | 1185 | return 0; |
1186 | 1186 | ||
1187 | fail_leds: | 1187 | fail_leds: |
1188 | input_unregister_device(pad_input_dev); | 1188 | input_unregister_device(pad_input_dev); |
1189 | pad_input_dev = NULL; | 1189 | pad_input_dev = NULL; |
1190 | wacom_wac->pad_registered = false; | ||
1190 | fail_register_pad_input: | 1191 | fail_register_pad_input: |
1191 | input_unregister_device(input_dev); | 1192 | input_unregister_device(input_dev); |
1192 | wacom_wac->input = NULL; | 1193 | wacom_wac->input = NULL; |
1194 | wacom_wac->input_registered = false; | ||
1193 | return error; | 1195 | return error; |
1194 | } | 1196 | } |
1195 | 1197 | ||
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h index 0f0b85ec1322..128cbb337ff6 100644 --- a/drivers/hid/wacom_wac.h +++ b/drivers/hid/wacom_wac.h | |||
@@ -183,6 +183,7 @@ struct wacom_wac { | |||
183 | struct input_dev *input; | 183 | struct input_dev *input; |
184 | struct input_dev *pad_input; | 184 | struct input_dev *pad_input; |
185 | bool input_registered; | 185 | bool input_registered; |
186 | bool pad_registered; | ||
186 | int pid; | 187 | int pid; |
187 | int battery_capacity; | 188 | int battery_capacity; |
188 | int num_contacts_left; | 189 | int num_contacts_left; |