HID: wacom: generic: sync pad events only for actual packets
Commitsd793ff8
and4082da8
introduced two pad usages which do not actually send pad input events. To make sure we do not post empty pad packets, pad_input_event_flag is introduced. Turn on the flag for real pad input events so we can synchronize them properly. Signed-off-by: Ping Cheng <ping.cheng@wacom.com> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
b79cbc5548
commit
ed1fa73683
|
@ -1881,6 +1881,8 @@ static void wacom_wac_pad_event(struct hid_device *hdev, struct hid_field *field
|
|||
/* fall through*/
|
||||
default:
|
||||
input_event(input, usage->type, usage->code, value);
|
||||
if (value)
|
||||
wacom_wac->hid_data.pad_input_event_flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1921,9 +1923,12 @@ static void wacom_wac_pad_report(struct hid_device *hdev,
|
|||
bool active = wacom_wac->hid_data.inrange_state != 0;
|
||||
|
||||
/* report prox for expresskey events */
|
||||
if (wacom_equivalent_usage(report->field[0]->physical) == HID_DG_TABLETFUNCTIONKEY) {
|
||||
if ((wacom_equivalent_usage(report->field[0]->physical) == HID_DG_TABLETFUNCTIONKEY) &&
|
||||
wacom_wac->hid_data.pad_input_event_flag) {
|
||||
input_event(input, EV_ABS, ABS_MISC, active ? PAD_DEVICE_ID : 0);
|
||||
input_sync(input);
|
||||
if (!active)
|
||||
wacom_wac->hid_data.pad_input_event_flag = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -301,6 +301,7 @@ struct hid_data {
|
|||
int bat_charging;
|
||||
int bat_connected;
|
||||
int ps_connected;
|
||||
bool pad_input_event_flag;
|
||||
};
|
||||
|
||||
struct wacom_remote_data {
|
||||
|
|
Loading…
Reference in New Issue