@@ -2097,14 +2097,12 @@ static void wacom_wac_pad_report(struct hid_device *hdev,
2097
2097
bool active = wacom_wac -> hid_data .inrange_state != 0 ;
2098
2098
2099
2099
/* report prox for expresskey events */
2100
- if ((wacom_equivalent_usage (field -> physical ) == HID_DG_TABLETFUNCTIONKEY ) &&
2101
- wacom_wac -> hid_data .pad_input_event_flag ) {
2100
+ if (wacom_wac -> hid_data .pad_input_event_flag ) {
2102
2101
input_event (input , EV_ABS , ABS_MISC , active ? PAD_DEVICE_ID : 0 );
2103
2102
input_sync (input );
2104
2103
if (!active )
2105
2104
wacom_wac -> hid_data .pad_input_event_flag = false;
2106
2105
}
2107
-
2108
2106
}
2109
2107
2110
2108
static void wacom_wac_pen_usage_mapping (struct hid_device * hdev ,
@@ -2680,9 +2678,7 @@ static int wacom_wac_collection(struct hid_device *hdev, struct hid_report *repo
2680
2678
if (report -> type != HID_INPUT_REPORT )
2681
2679
return -1 ;
2682
2680
2683
- if (WACOM_PAD_FIELD (field ) && wacom -> wacom_wac .pad_input )
2684
- wacom_wac_pad_report (hdev , report , field );
2685
- else if (WACOM_PEN_FIELD (field ) && wacom -> wacom_wac .pen_input )
2681
+ if (WACOM_PEN_FIELD (field ) && wacom -> wacom_wac .pen_input )
2686
2682
wacom_wac_pen_report (hdev , report );
2687
2683
else if (WACOM_FINGER_FIELD (field ) && wacom -> wacom_wac .touch_input )
2688
2684
wacom_wac_finger_report (hdev , report );
@@ -2696,7 +2692,7 @@ void wacom_wac_report(struct hid_device *hdev, struct hid_report *report)
2696
2692
struct wacom_wac * wacom_wac = & wacom -> wacom_wac ;
2697
2693
struct hid_field * field ;
2698
2694
bool pad_in_hid_field = false, pen_in_hid_field = false,
2699
- finger_in_hid_field = false;
2695
+ finger_in_hid_field = false, true_pad = false ;
2700
2696
int r ;
2701
2697
int prev_collection = -1 ;
2702
2698
@@ -2712,6 +2708,8 @@ void wacom_wac_report(struct hid_device *hdev, struct hid_report *report)
2712
2708
pen_in_hid_field = true;
2713
2709
if (WACOM_FINGER_FIELD (field ))
2714
2710
finger_in_hid_field = true;
2711
+ if (wacom_equivalent_usage (field -> physical ) == HID_DG_TABLETFUNCTIONKEY )
2712
+ true_pad = true;
2715
2713
}
2716
2714
2717
2715
wacom_wac_battery_pre_report (hdev , report );
@@ -2735,6 +2733,9 @@ void wacom_wac_report(struct hid_device *hdev, struct hid_report *report)
2735
2733
}
2736
2734
2737
2735
wacom_wac_battery_report (hdev , report );
2736
+
2737
+ if (true_pad && wacom -> wacom_wac .pad_input )
2738
+ wacom_wac_pad_report (hdev , report , field );
2738
2739
}
2739
2740
2740
2741
static int wacom_bpt_touch (struct wacom_wac * wacom )
0 commit comments