You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
HID: wacom: generic: sync pad events only for actual packets
Commitsd793ff8and4082da8introduced 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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user