Lines Matching +full:abs +full:- +full:range

1 // SPDX-License-Identifier: GPL-2.0-only
19 /* Filled in by udev-hid-bpf */
34 * To switch the tablet use e.g. https://github.com/whot/huion-switcher
37 * This BPF works for both modes. The huion-switcher tool sets the
38 * HUION_FIRMWARE_ID udev property - if that is set then we disable the firmware
54 * # 0x81, 0x02, // Input (Data,Var,Abs) 15
59 * https://github.com/whot/huion-switcher
81 * # 0x81, 0x02, // Input (Data,Var,Abs) 28
82 * # 0x09, 0x32, // Usage (In Range) 30
85 * # 0x81, 0x02, // Input (Data,Var,Abs) 36
86 * # 0x81, 0x03, // Input (Cnst,Var,Abs) 38
90 * # 0x55, 0x0d, // Unit Exponent (-3) 46
97 * # 0x81, 0x02, // Input (Data,Var,Abs) 62
103 * # 0x81, 0x02, // Input (Data,Var,Abs) 75
106 * # 0x15, 0x81, // Logical Minimum (-127) 81
110 * # 0x81, 0x02, // Input (Data,Var,Abs) 89
121 * # 0x09, 0x0e, // Usage (System Multi-Axis Controller) 2
134 * # 0x81, 0x02, // Input (Data,Var,Abs) 28
137 * # 0x81, 0x02, // Input (Data,Var,Abs) 34
139 * # 0x81, 0x03, // Input (Cnst,Var,Abs) 38
143 * # 0x16, 0x00, 0x80, // Logical Minimum (-32768) 46
153 * # 0xb1, 0x02, // Feature (Data,Var,Abs) 70
158 * # 0x81, 0x01, // Input (Cnst,Arr,Abs) 79
161 * # 0x81, 0x01, // Input (Cnst,Arr,Abs) 85
164 * # 0x81, 0x01, // Input (Cnst,Arr,Abs) 91
167 * # 0x81, 0x01, // Input (Cnst,Arr,Abs) 97
170 * # 0x81, 0x01, // Input (Cnst,Arr,Abs) 103
185 * # 0x81, 0x02, // Input (Data,Var,Abs) 130
192 * # 0x81, 0x00, // Input (Data,Arr,Abs) 145
215 // -- Byte 0 in report
221 // Byte 1 in report - just exists so we get to be a tablet pad
225 Input(Var|Abs)
228 // Bytes 2/3 in report - just exists so we get to be a tablet pad
234 Input(Var|Abs)
237 LogicalRange_i8(-1, 1)
247 Input(Var|Abs)
260 // -- Byte 0 in report
264 // -- Byte 1 in report
271 Input(Var|Abs)
276 Input(Var|Abs)
282 UnitExponent(-1)
286 Input(Var|Abs) // Bytes 2+3
290 Input(Var|Abs) // Bytes 4+5
295 Input(Var|Abs) // Byte 6+7
298 LogicalRange_i8(-60, 60)
301 Input(Var|Abs) // Byte 8+9
322 Input(Var|Abs)
327 Input(Var|Abs)
333 UnitExponent(-1)
334 // Note: reported logical range differs
340 Input(Var|Abs)
345 Input(Var|Abs)
350 Input(Var|Abs)
354 LogicalRange_i8(-60, 60)
361 Input(Var|Abs)
377 Input(Var|Abs)
380 // Bytes 2/3 - x/y just exist so we get to be a tablet pad
386 Input(Var|Abs)
393 Input(Var|Abs)
397 LogicalRange_i8(-1, 1)
423 __s32 rdesc_size = hctx->size; in SEC()
435 sizeof(EXPECTED_FIRMWARE_ID) - 1) == 0; in SEC()
455 * the udev property (e.g. huion-switcher run manually) in SEC()
479 * Button 1: 03 00 05 00 00 00 00 00 -> b in SEC()
480 * Button 2: 03 00 08 00 00 00 00 00 -> e in SEC()
481 * Button 3: 03 00 0c 00 00 00 00 00 -> i in SEC()
482 * Button 4: 03 00 e0 16 00 00 00 00 -> Ctrl S in SEC()
483 * Button 5: 03 00 2c 00 00 00 00 00 -> space in SEC()
484 * Button 6: 03 00 e0 e2 1d 00 00 00 -> Ctrl Alt Z in SEC()
522 * Dial down: 11 00 ff ff 00 00 00 00 00 -> Dial -1 in SEC()
523 * Dial up: 11 00 01 00 00 00 00 00 00 -> Dial 1 in SEC()
576 pad_report->report_id = PAD_REPORT_ID; in SEC()
577 pad_report->btn_stylus = 0; in SEC()
578 pad_report->x = 0; in SEC()
579 pad_report->y = 0; in SEC()
580 pad_report->buttons = last_button_state; in SEC()
581 pad_report->dial_1 = dial_1; in SEC()
582 pad_report->dial_2 = dial_2; in SEC()
601 switch (ctx->rdesc_size) { in probe()
605 ctx->retval = 0; in probe()
608 ctx->retval = -EINVAL; in probe()