Lines Matching +full:15 +full:- +full:input

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
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
11315 00 25 01 75 01 95 06 81 02 09 32 75 01 95 01 81 02 81 03 05 01 09 30 09 31 55 0d 65 33 26 ff 7f…
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
147 * # 0x81, 0x06, // Input (Data,Var,Rel) 56
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
19415 00 25 01 75 01 95 01 a1 00 05 09 09 01 81 02 05 0d 09 33 81 02 95 06 81 03 a1 02 05 01 09 37 16…
215 // -- Byte 0 in report
221 // Byte 1 in report - just exists so we get to be a tablet pad
225 Input(Var|Abs)
227 Input(Const)
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)
240 Input(Var|Rel)
247 Input(Var|Abs)
249 Input(Const)
260 // -- Byte 0 in report
264 // -- Byte 1 in report
271 Input(Var|Abs)
273 Input(Const)
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)
324 Input(Const)
327 Input(Var|Abs)
333 UnitExponent(-1)
340 Input(Var|Abs)
345 Input(Var|Abs)
350 Input(Var|Abs)
353 Input(Const)
354 LogicalRange_i8(-60, 60)
361 Input(Var|Abs)
377 Input(Var|Abs)
379 Input(Const)
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)
400 Input(Var|Rel)
404 Input(Var|Rel)
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()