Lines Matching +full:0 +full:x75
21 #define DJ_RECEIVER_INDEX 0
28 #define REPORT_ID_DJ_SHORT 0x20
29 #define REPORT_ID_DJ_LONG 0x21
31 #define REPORT_ID_HIDPP_SHORT 0x10
32 #define REPORT_ID_HIDPP_LONG 0x11
33 #define REPORT_ID_HIDPP_VERY_LONG 0x12
38 #define HIDPP_RECEIVER_INDEX 0xff
40 #define REPORT_TYPE_RFREPORT_FIRST 0x01
41 #define REPORT_TYPE_RFREPORT_LAST 0x1F
44 #define REPORT_TYPE_CMD_SWITCH 0x80
45 #define CMD_SWITCH_PARAM_DEVBITFIELD 0x00
46 #define CMD_SWITCH_PARAM_TIMEOUT_SECONDS 0x01
47 #define TIMEOUT_NO_KEEPALIVE 0x00
50 #define REPORT_TYPE_CMD_GET_PAIRED_DEVICES 0x81
53 #define REPORT_TYPE_NOTIF_DEVICE_PAIRED 0x41
54 #define SPFUNCTION_MORE_NOTIF_EXPECTED 0x01
55 #define SPFUNCTION_DEVICE_LIST_EMPTY 0x02
56 #define DEVICE_PAIRED_PARAM_SPFUNCTION 0x00
57 #define DEVICE_PAIRED_PARAM_EQUAD_ID_LSB 0x01
58 #define DEVICE_PAIRED_PARAM_EQUAD_ID_MSB 0x02
59 #define DEVICE_PAIRED_RF_REPORT_TYPE 0x03
62 #define REPORT_TYPE_NOTIF_DEVICE_UNPAIRED 0x40
65 #define REPORT_TYPE_NOTIF_CONNECTION_STATUS 0x42
66 #define CONNECTION_STATUS_PARAM_STATUS 0x00
67 #define STATUS_LINKLOSS 0x01
70 #define REPORT_TYPE_NOTIF_ERROR 0x7F
71 #define NOTIF_ERROR_PARAM_ETYPE 0x00
72 #define ETYPE_KEEPALIVE_TIMEOUT 0x01
75 #define REPORT_TYPE_KEYBOARD 0x01
76 #define REPORT_TYPE_MOUSE 0x02
77 #define REPORT_TYPE_CONSUMER_CONTROL 0x03
78 #define REPORT_TYPE_SYSTEM_CONTROL 0x04
79 #define REPORT_TYPE_MEDIA_CENTER 0x08
80 #define REPORT_TYPE_LEDS 0x0E
94 #define REPORT_TYPE_NOTIF_DEVICE_CONNECTED 0x41
95 #define HIDPP_PARAM_PROTO_TYPE 0x00
96 #define HIDPP_PARAM_DEVICE_INFO 0x01
97 #define HIDPP_PARAM_EQUAD_LSB 0x02
98 #define HIDPP_PARAM_EQUAD_MSB 0x03
99 #define HIDPP_PARAM_27MHZ_DEVID 0x03
100 #define HIDPP_DEVICE_TYPE_MASK GENMASK(3, 0)
108 #define HIDPP_SET_REGISTER 0x80
109 #define HIDPP_GET_LONG_REGISTER 0x83
110 #define HIDPP_REG_CONNECTION_STATE 0x02
111 #define HIDPP_REG_PAIRING_INFORMATION 0xB5
112 #define HIDPP_PAIRING_INFORMATION 0x20
113 #define HIDPP_FAKE_DEVICE_ARRIVAL 0x02
163 #define WORKITEM_TYPE_EMPTY 0
179 0x05, 0x01, /* USAGE_PAGE (generic Desktop) */
180 0x09, 0x06, /* USAGE (Keyboard) */
181 0xA1, 0x01, /* COLLECTION (Application) */
182 0x85, 0x01, /* REPORT_ID (1) */
183 0x95, 0x08, /* REPORT_COUNT (8) */
184 0x75, 0x01, /* REPORT_SIZE (1) */
185 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
186 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
187 0x05, 0x07, /* USAGE_PAGE (Keyboard) */
188 0x19, 0xE0, /* USAGE_MINIMUM (Left Control) */
189 0x29, 0xE7, /* USAGE_MAXIMUM (Right GUI) */
190 0x81, 0x02, /* INPUT (Data,Var,Abs) */
191 0x95, 0x06, /* REPORT_COUNT (6) */
192 0x75, 0x08, /* REPORT_SIZE (8) */
193 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
194 0x26, 0xFF, 0x00, /* LOGICAL_MAXIMUM (255) */
195 0x05, 0x07, /* USAGE_PAGE (Keyboard) */
196 0x19, 0x00, /* USAGE_MINIMUM (no event) */
197 0x2A, 0xFF, 0x00, /* USAGE_MAXIMUM (reserved) */
198 0x81, 0x00, /* INPUT (Data,Ary,Abs) */
199 0x85, 0x0e, /* REPORT_ID (14) */
200 0x05, 0x08, /* USAGE PAGE (LED page) */
201 0x95, 0x05, /* REPORT COUNT (5) */
202 0x75, 0x01, /* REPORT SIZE (1) */
203 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
204 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
205 0x19, 0x01, /* USAGE MINIMUM (1) */
206 0x29, 0x05, /* USAGE MAXIMUM (5) */
207 0x91, 0x02, /* OUTPUT (Data, Variable, Absolute) */
208 0x95, 0x01, /* REPORT COUNT (1) */
209 0x75, 0x03, /* REPORT SIZE (3) */
210 0x91, 0x01, /* OUTPUT (Constant) */
211 0xC0
216 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
217 0x09, 0x02, /* USAGE (Mouse) */
218 0xA1, 0x01, /* COLLECTION (Application) */
219 0x85, 0x02, /* REPORT_ID = 2 */
220 0x09, 0x01, /* USAGE (pointer) */
221 0xA1, 0x00, /* COLLECTION (physical) */
222 0x05, 0x09, /* USAGE_PAGE (buttons) */
223 0x19, 0x01, /* USAGE_MIN (1) */
224 0x29, 0x10, /* USAGE_MAX (16) */
225 0x15, 0x00, /* LOGICAL_MIN (0) */
226 0x25, 0x01, /* LOGICAL_MAX (1) */
227 0x95, 0x10, /* REPORT_COUNT (16) */
228 0x75, 0x01, /* REPORT_SIZE (1) */
229 0x81, 0x02, /* INPUT (data var abs) */
230 0x05, 0x01, /* USAGE_PAGE (generic desktop) */
231 0x16, 0x01, 0xF8, /* LOGICAL_MIN (-2047) */
232 0x26, 0xFF, 0x07, /* LOGICAL_MAX (2047) */
233 0x75, 0x0C, /* REPORT_SIZE (12) */
234 0x95, 0x02, /* REPORT_COUNT (2) */
235 0x09, 0x30, /* USAGE (X) */
236 0x09, 0x31, /* USAGE (Y) */
237 0x81, 0x06, /* INPUT */
238 0x15, 0x81, /* LOGICAL_MIN (-127) */
239 0x25, 0x7F, /* LOGICAL_MAX (127) */
240 0x75, 0x08, /* REPORT_SIZE (8) */
241 0x95, 0x01, /* REPORT_COUNT (1) */
242 0x09, 0x38, /* USAGE (wheel) */
243 0x81, 0x06, /* INPUT */
244 0x05, 0x0C, /* USAGE_PAGE(consumer) */
245 0x0A, 0x38, 0x02, /* USAGE(AC Pan) */
246 0x95, 0x01, /* REPORT_COUNT (1) */
247 0x81, 0x06, /* INPUT */
248 0xC0, /* END_COLLECTION */
249 0xC0, /* END_COLLECTION */
254 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
255 0x09, 0x02, /* USAGE (Mouse) */
256 0xA1, 0x01, /* COLLECTION (Application) */
257 0x85, 0x02, /* REPORT_ID = 2 */
258 0x09, 0x01, /* USAGE (pointer) */
259 0xA1, 0x00, /* COLLECTION (physical) */
260 0x05, 0x09, /* USAGE_PAGE (buttons) */
261 0x19, 0x01, /* USAGE_MIN (1) */
262 0x29, 0x08, /* USAGE_MAX (8) */
263 0x15, 0x00, /* LOGICAL_MIN (0) */
264 0x25, 0x01, /* LOGICAL_MAX (1) */
265 0x95, 0x08, /* REPORT_COUNT (8) */
266 0x75, 0x01, /* REPORT_SIZE (1) */
267 0x81, 0x02, /* INPUT (data var abs) */
268 0x05, 0x01, /* USAGE_PAGE (generic desktop) */
269 0x16, 0x01, 0xF8, /* LOGICAL_MIN (-2047) */
270 0x26, 0xFF, 0x07, /* LOGICAL_MAX (2047) */
271 0x75, 0x0C, /* REPORT_SIZE (12) */
272 0x95, 0x02, /* REPORT_COUNT (2) */
273 0x09, 0x30, /* USAGE (X) */
274 0x09, 0x31, /* USAGE (Y) */
275 0x81, 0x06, /* INPUT */
276 0x15, 0x81, /* LOGICAL_MIN (-127) */
277 0x25, 0x7F, /* LOGICAL_MAX (127) */
278 0x75, 0x08, /* REPORT_SIZE (8) */
279 0x95, 0x01, /* REPORT_COUNT (1) */
280 0x09, 0x38, /* USAGE (wheel) */
281 0x81, 0x06, /* INPUT */
282 0x05, 0x0C, /* USAGE_PAGE(consumer) */
283 0x0A, 0x38, 0x02, /* USAGE(AC Pan) */
284 0x95, 0x01, /* REPORT_COUNT (1) */
285 0x81, 0x06, /* INPUT */
286 0xC0, /* END_COLLECTION */
287 0xC0, /* END_COLLECTION */
292 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
293 0x09, 0x02, /* USAGE (Mouse) */
294 0xA1, 0x01, /* COLLECTION (Application) */
295 0x85, 0x02, /* REPORT_ID = 2 */
296 0x09, 0x01, /* USAGE (pointer) */
297 0xA1, 0x00, /* COLLECTION (physical) */
298 0x05, 0x09, /* USAGE_PAGE (buttons) */
299 0x19, 0x01, /* USAGE_MIN (1) */
300 0x29, 0x08, /* USAGE_MAX (8) */
301 0x15, 0x00, /* LOGICAL_MIN (0) */
302 0x25, 0x01, /* LOGICAL_MAX (1) */
303 0x95, 0x08, /* REPORT_COUNT (8) */
304 0x75, 0x01, /* REPORT_SIZE (1) */
305 0x81, 0x02, /* INPUT (data var abs) */
306 0x05, 0x01, /* USAGE_PAGE (generic desktop) */
307 0x16, 0x01, 0xF8, /* LOGICAL_MIN (-2047) */
308 0x26, 0xFF, 0x07, /* LOGICAL_MAX (2047) */
309 0x75, 0x0C, /* REPORT_SIZE (12) */
310 0x95, 0x02, /* REPORT_COUNT (2) */
311 0x09, 0x30, /* USAGE (X) */
312 0x09, 0x31, /* USAGE (Y) */
313 0x81, 0x06, /* INPUT */
314 0x15, 0x81, /* LOGICAL_MIN (-127) */
315 0x25, 0x7F, /* LOGICAL_MAX (127) */
316 0x75, 0x08, /* REPORT_SIZE (8) */
317 0x95, 0x01, /* REPORT_COUNT (1) */
318 0x09, 0x38, /* USAGE (wheel) */
319 0x81, 0x06, /* INPUT */
320 0x05, 0x0C, /* USAGE_PAGE(consumer) */
321 0x0A, 0x38, 0x02, /* USAGE(AC Pan) */
322 0x15, 0xF9, /* LOGICAL_MIN (-7) */
323 0x25, 0x07, /* LOGICAL_MAX (7) */
324 0x75, 0x04, /* REPORT_SIZE (4) */
325 0x95, 0x01, /* REPORT_COUNT (1) */
326 0x81, 0x06, /* INPUT */
327 0x05, 0x09, /* USAGE_PAGE (buttons) */
328 0x19, 0x09, /* USAGE_MIN (9) */
329 0x29, 0x0C, /* USAGE_MAX (12) */
330 0x15, 0x00, /* LOGICAL_MIN (0) */
331 0x25, 0x01, /* LOGICAL_MAX (1) */
332 0x75, 0x01, /* REPORT_SIZE (1) */
333 0x95, 0x04, /* REPORT_COUNT (4) */
334 0x81, 0x02, /* INPUT (Data,Var,Abs) */
335 0xC0, /* END_COLLECTION */
336 0xC0, /* END_COLLECTION */
341 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
342 0x09, 0x02, /* Usage (Mouse) */
343 0xa1, 0x01, /* Collection (Application) */
344 0x85, 0x05, /* Report ID (5) */
345 0x09, 0x01, /* Usage (Pointer) */
346 0xa1, 0x00, /* Collection (Physical) */
347 0x05, 0x09, /* Usage Page (Button) */
348 0x19, 0x01, /* Usage Minimum (1) */
349 0x29, 0x08, /* Usage Maximum (8) */
350 0x15, 0x00, /* Logical Minimum (0) */
351 0x25, 0x01, /* Logical Maximum (1) */
352 0x95, 0x08, /* Report Count (8) */
353 0x75, 0x01, /* Report Size (1) */
354 0x81, 0x02, /* Input (Data,Var,Abs) */
355 0x05, 0x01, /* Usage Page (Generic Desktop) */
356 0x16, 0x01, 0xf8, /* Logical Minimum (-2047) */
357 0x26, 0xff, 0x07, /* Logical Maximum (2047) */
358 0x75, 0x0c, /* Report Size (12) */
359 0x95, 0x02, /* Report Count (2) */
360 0x09, 0x30, /* Usage (X) */
361 0x09, 0x31, /* Usage (Y) */
362 0x81, 0x06, /* Input (Data,Var,Rel) */
363 0x15, 0x81, /* Logical Minimum (-127) */
364 0x25, 0x7f, /* Logical Maximum (127) */
365 0x75, 0x08, /* Report Size (8) */
366 0x95, 0x01, /* Report Count (1) */
367 0x09, 0x38, /* Usage (Wheel) */
368 0x81, 0x06, /* Input (Data,Var,Rel) */
369 0x05, 0x0c, /* Usage Page (Consumer Devices) */
370 0x0a, 0x38, 0x02, /* Usage (AC Pan) */
371 0x15, 0x81, /* Logical Minimum (-127) */
372 0x25, 0x7f, /* Logical Maximum (127) */
373 0x75, 0x08, /* Report Size (8) */
374 0x95, 0x01, /* Report Count (1) */
375 0x81, 0x06, /* Input (Data,Var,Rel) */
376 0xc0, /* End Collection */
377 0xc0, /* End Collection */
382 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
383 0x09, 0x02, /* USAGE (Mouse) */
384 0xA1, 0x01, /* COLLECTION (Application) */
385 0x85, 0x02, /* REPORT_ID = 2 */
386 0x09, 0x01, /* USAGE (pointer) */
387 0xA1, 0x00, /* COLLECTION (physical) */
388 0x05, 0x09, /* USAGE_PAGE (buttons) */
389 0x19, 0x01, /* USAGE_MIN (1) */
390 0x29, 0x10, /* USAGE_MAX (16) */
391 0x15, 0x00, /* LOGICAL_MIN (0) */
392 0x25, 0x01, /* LOGICAL_MAX (1) */
393 0x95, 0x10, /* REPORT_COUNT (16) */
394 0x75, 0x01, /* REPORT_SIZE (1) */
395 0x81, 0x02, /* INPUT (data var abs) */
396 0x05, 0x01, /* USAGE_PAGE (generic desktop) */
397 0x16, 0x01, 0x80, /* LOGICAL_MIN (-32767) */
398 0x26, 0xFF, 0x7F, /* LOGICAL_MAX (32767) */
399 0x75, 0x10, /* REPORT_SIZE (16) */
400 0x95, 0x02, /* REPORT_COUNT (2) */
401 0x09, 0x30, /* USAGE (X) */
402 0x09, 0x31, /* USAGE (Y) */
403 0x81, 0x06, /* INPUT */
404 0x15, 0x81, /* LOGICAL_MIN (-127) */
405 0x25, 0x7F, /* LOGICAL_MAX (127) */
406 0x75, 0x08, /* REPORT_SIZE (8) */
407 0x95, 0x01, /* REPORT_COUNT (1) */
408 0x09, 0x38, /* USAGE (wheel) */
409 0x81, 0x06, /* INPUT */
410 0x05, 0x0C, /* USAGE_PAGE(consumer) */
411 0x0A, 0x38, 0x02, /* USAGE(AC Pan) */
412 0x95, 0x01, /* REPORT_COUNT (1) */
413 0x81, 0x06, /* INPUT */
414 0xC0, /* END_COLLECTION */
415 0xC0, /* END_COLLECTION */
420 0x05, 0x0C, /* USAGE_PAGE (Consumer Devices) */
421 0x09, 0x01, /* USAGE (Consumer Control) */
422 0xA1, 0x01, /* COLLECTION (Application) */
423 0x85, 0x03, /* REPORT_ID = 3 */
424 0x75, 0x10, /* REPORT_SIZE (16) */
425 0x95, 0x02, /* REPORT_COUNT (2) */
426 0x15, 0x01, /* LOGICAL_MIN (1) */
427 0x26, 0xFF, 0x02, /* LOGICAL_MAX (767) */
428 0x19, 0x01, /* USAGE_MIN (1) */
429 0x2A, 0xFF, 0x02, /* USAGE_MAX (767) */
430 0x81, 0x00, /* INPUT (Data Ary Abs) */
431 0xC0, /* END_COLLECTION */
436 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
437 0x09, 0x80, /* USAGE (System Control) */
438 0xA1, 0x01, /* COLLECTION (Application) */
439 0x85, 0x04, /* REPORT_ID = 4 */
440 0x75, 0x02, /* REPORT_SIZE (2) */
441 0x95, 0x01, /* REPORT_COUNT (1) */
442 0x15, 0x01, /* LOGICAL_MIN (1) */
443 0x25, 0x03, /* LOGICAL_MAX (3) */
444 0x09, 0x82, /* USAGE (System Sleep) */
445 0x09, 0x81, /* USAGE (System Power Down) */
446 0x09, 0x83, /* USAGE (System Wake Up) */
447 0x81, 0x60, /* INPUT (Data Ary Abs NPrf Null) */
448 0x75, 0x06, /* REPORT_SIZE (6) */
449 0x81, 0x03, /* INPUT (Cnst Var Abs) */
450 0xC0, /* END_COLLECTION */
455 0x06, 0xbc, 0xff, /* Usage Page 0xffbc */
456 0x09, 0x88, /* Usage 0x0088 */
457 0xa1, 0x01, /* BeginCollection */
458 0x85, 0x08, /* Report ID 8 */
459 0x19, 0x01, /* Usage Min 0x0001 */
460 0x29, 0xff, /* Usage Max 0x00ff */
461 0x15, 0x01, /* Logical Min 1 */
462 0x26, 0xff, 0x00, /* Logical Max 255 */
463 0x75, 0x08, /* Report Size 8 */
464 0x95, 0x01, /* Report Count 1 */
465 0x81, 0x00, /* Input */
466 0xc0, /* EndCollection */
471 0x06, 0x00, 0xff, /* Usage Page (Vendor Defined Page 1) */
472 0x09, 0x01, /* Usage (Vendor Usage 1) */
473 0xa1, 0x01, /* Collection (Application) */
474 0x85, 0x10, /* Report ID (16) */
475 0x75, 0x08, /* Report Size (8) */
476 0x95, 0x06, /* Report Count (6) */
477 0x15, 0x00, /* Logical Minimum (0) */
478 0x26, 0xff, 0x00, /* Logical Maximum (255) */
479 0x09, 0x01, /* Usage (Vendor Usage 1) */
480 0x81, 0x00, /* Input (Data,Arr,Abs) */
481 0x09, 0x01, /* Usage (Vendor Usage 1) */
482 0x91, 0x00, /* Output (Data,Arr,Abs) */
483 0xc0, /* End Collection */
484 0x06, 0x00, 0xff, /* Usage Page (Vendor Defined Page 1) */
485 0x09, 0x02, /* Usage (Vendor Usage 2) */
486 0xa1, 0x01, /* Collection (Application) */
487 0x85, 0x11, /* Report ID (17) */
488 0x75, 0x08, /* Report Size (8) */
489 0x95, 0x13, /* Report Count (19) */
490 0x15, 0x00, /* Logical Minimum (0) */
491 0x26, 0xff, 0x00, /* Logical Maximum (255) */
492 0x09, 0x02, /* Usage (Vendor Usage 2) */
493 0x81, 0x00, /* Input (Data,Arr,Abs) */
494 0x09, 0x02, /* Usage (Vendor Usage 2) */
495 0x91, 0x00, /* Output (Data,Arr,Abs) */
496 0xc0, /* End Collection */
497 0x06, 0x00, 0xff, /* Usage Page (Vendor Defined Page 1) */
498 0x09, 0x04, /* Usage (Vendor Usage 0x04) */
499 0xa1, 0x01, /* Collection (Application) */
500 0x85, 0x20, /* Report ID (32) */
501 0x75, 0x08, /* Report Size (8) */
502 0x95, 0x0e, /* Report Count (14) */
503 0x15, 0x00, /* Logical Minimum (0) */
504 0x26, 0xff, 0x00, /* Logical Maximum (255) */
505 0x09, 0x41, /* Usage (Vendor Usage 0x41) */
506 0x81, 0x00, /* Input (Data,Arr,Abs) */
507 0x09, 0x41, /* Usage (Vendor Usage 0x41) */
508 0x91, 0x00, /* Output (Data,Arr,Abs) */
509 0x85, 0x21, /* Report ID (33) */
510 0x95, 0x1f, /* Report Count (31) */
511 0x15, 0x00, /* Logical Minimum (0) */
512 0x26, 0xff, 0x00, /* Logical Maximum (255) */
513 0x09, 0x42, /* Usage (Vendor Usage 0x42) */
514 0x81, 0x00, /* Input (Data,Arr,Abs) */
515 0x09, 0x42, /* Usage (Vendor Usage 0x42) */
516 0x91, 0x00, /* Output (Data,Arr,Abs) */
517 0xc0, /* End Collection */
539 * For instance, RF report type 0x01 which has a size of 8 bytes, corresponds
540 * to hid report id 0x01, this is standard keyboard. Same thing applies to mice
555 #define LOGITECH_DJ_INTERFACE_NUMBER 0x02
741 case 0x01: type_str = "Keyboard"; break; in logi_dj_recv_add_djhid_device()
742 case 0x02: type_str = "Mouse"; break; in logi_dj_recv_add_djhid_device()
743 case 0x03: type_str = "Numpad"; break; in logi_dj_recv_add_djhid_device()
744 case 0x04: type_str = "Presenter"; break; in logi_dj_recv_add_djhid_device()
745 case 0x07: type_str = "Remote Control"; break; in logi_dj_recv_add_djhid_device()
746 case 0x08: type_str = "Trackball"; break; in logi_dj_recv_add_djhid_device()
747 case 0x09: type_str = "Touchpad"; break; in logi_dj_recv_add_djhid_device()
935 0xb309, /* Dinovo Edge */
936 0xb30c, /* Dinovo Mini */
957 for (i = 0; i < ARRAY_SIZE(kbd_builtin_touchpad_ids); i++) { in logi_hidpp_dev_conn_notif_equad()
1018 case 0x01: in logi_hidpp_recv_queue_notif()
1029 case 0x02: in logi_hidpp_recv_queue_notif()
1033 case 0x03: in logi_hidpp_recv_queue_notif()
1037 case 0x04: in logi_hidpp_recv_queue_notif()
1041 case 0x05: in logi_hidpp_recv_queue_notif()
1044 case 0x06: in logi_hidpp_recv_queue_notif()
1048 case 0x07: in logi_hidpp_recv_queue_notif()
1053 case 0x08: in logi_hidpp_recv_queue_notif()
1056 case 0x0a: in logi_hidpp_recv_queue_notif()
1060 case 0x0c: in logi_hidpp_recv_queue_notif()
1065 case 0x0d: in logi_hidpp_recv_queue_notif()
1070 case 0x0f: in logi_hidpp_recv_queue_notif()
1071 case 0x11: in logi_hidpp_recv_queue_notif()
1085 "unusable device of type %s (0x%02x) connected on slot %d", in logi_hidpp_recv_queue_notif()
1092 hid_info(hdev, "device of type %s (0x%02x) connected on slot %d", in logi_hidpp_recv_queue_notif()
1110 memset(reportbuffer, 0, sizeof(reportbuffer)); in logi_dj_recv_forward_null_report()
1112 for (i = 0; i < NUMBER_OF_HID_REPORTS; i++) { in logi_dj_recv_forward_null_report()
1114 reportbuffer[0] = i; in logi_dj_recv_forward_null_report()
1135 (hid_reportid_size_map[dj_report->report_type] == 0)) { in logi_dj_recv_forward_dj()
1161 u8 report = data[0]; in logi_dj_recv_forward_input_report()
1170 for (i = 0; i < (DJ_MAX_PAIRED_DEVICES + DJ_DEVICE_INDEX_MIN); i++) { in logi_dj_recv_forward_input_report()
1202 for (i = 0; i < DJREPORT_SHORT_LENGTH - 1; i++) in logi_dj_recv_send_report()
1203 report->field[0]->value[i] = data[i]; in logi_dj_recv_send_report()
1207 return 0; in logi_dj_recv_send_report()
1218 0x00, 0x00 in logi_dj_recv_query_hidpp_devices()
1234 return (retval < 0) ? retval : 0; in logi_dj_recv_query_hidpp_devices()
1265 int retval = 0; in logi_dj_recv_switch_to_dj_mode()
1275 dj_report->report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x3F; in logi_dj_recv_switch_to_dj_mode()
1299 memset(buf, 0, HIDPP_REPORT_SHORT_LENGTH); in logi_dj_recv_switch_to_dj_mode()
1301 buf[0] = REPORT_ID_HIDPP_SHORT; in logi_dj_recv_switch_to_dj_mode()
1303 buf[2] = 0x80; in logi_dj_recv_switch_to_dj_mode()
1304 buf[3] = 0x00; in logi_dj_recv_switch_to_dj_mode()
1305 buf[4] = 0x00; in logi_dj_recv_switch_to_dj_mode()
1306 buf[5] = 0x09; in logi_dj_recv_switch_to_dj_mode()
1307 buf[6] = 0x00; in logi_dj_recv_switch_to_dj_mode()
1321 return 0; in logi_dj_ll_open()
1331 * Register 0xB5 is "pairing information". It is solely intended for the
1353 if ((buf[0] == REPORT_ID_HIDPP_SHORT) || in logi_dj_ll_raw_request()
1354 (buf[0] == REPORT_ID_HIDPP_LONG) || in logi_dj_ll_raw_request()
1355 (buf[0] == REPORT_ID_HIDPP_VERY_LONG)) { in logi_dj_ll_raw_request()
1363 buf[4] = (buf[4] & 0xf0) | (djdev->device_index - 1); in logi_dj_ll_raw_request()
1370 if (buf[0] != REPORT_TYPE_LEDS) in logi_dj_ll_raw_request()
1376 return 0; in logi_dj_ll_raw_request()
1379 return hid_hw_raw_request(djrcv_dev->keyboard, 0, buf, count, in logi_dj_ll_raw_request()
1390 out_buf[0] = REPORT_ID_DJ_SHORT; in logi_dj_ll_raw_request()
1394 ret = hid_hw_raw_request(djrcv_dev->hidpp, out_buf[0], out_buf, in logi_dj_ll_raw_request()
1410 unsigned int rsize = 0; in logi_dj_ll_parse()
1416 djdev->hdev->version = 0x0111; in logi_dj_ll_parse()
1417 djdev->hdev->country = 0x00; in logi_dj_ll_parse()
1493 return 0; in logi_dj_ll_start()
1605 device_index = (data[4] & 0x0F) + 1; in logi_dj_hidpp_event()
1612 * data to the corresponding child dj device and return 0 to hid-core in logi_dj_hidpp_event()
1640 hidpp_report->params[HIDPP_PARAM_PROTO_TYPE] == 0x02 && in logi_dj_hidpp_event()
1674 return 0; in logi_dj_raw_event()
1684 data[1] = data[0]; in logi_dj_raw_event()
1685 data[0] = REPORT_TYPE_KEYBOARD; in logi_dj_raw_event()
1690 data[0] = data[1]; in logi_dj_raw_event()
1691 data[1] = 0; in logi_dj_raw_event()
1702 mouse_report[0] = REPORT_TYPE_MOUSE; in logi_dj_raw_event()
1711 switch (data[0]) { in logi_dj_raw_event()
1750 unsigned int no_dj_interfaces = 0; in logi_dj_probe()
1802 if (rep->application == 0xff000001) in logi_dj_probe()
1834 retval = logi_dj_recv_switch_to_dj_mode(djrcv_dev, 0); in logi_dj_probe()
1835 if (retval < 0) { in logi_dj_probe()
1844 if (retval < 0) { in logi_dj_probe()
1858 if (retval < 0) { in logi_dj_probe()
1868 return 0; in logi_dj_probe()
1886 return 0; in logi_dj_reset_resume()
1888 retval = logi_dj_recv_switch_to_dj_mode(djrcv_dev, 0); in logi_dj_reset_resume()
1889 if (retval < 0) { in logi_dj_reset_resume()
1894 return 0; in logi_dj_reset_resume()
1930 for (i = 0; i < (DJ_MAX_PAIRED_DEVICES + DJ_DEVICE_INDEX_MIN); i++) { in logi_dj_remove()
1945 { /* Logitech unifying receiver (0xc52b) */
1949 { /* Logitech unifying receiver (0xc532) */
1954 { /* Logitech Nano mouse only receiver (0xc52f) */
1958 { /* Logitech Nano (non DJ) receiver (0xc534) */
1963 { /* Logitech G700(s) receiver (0xc531) */
1967 { /* Logitech G602 receiver (0xc537) */
1969 0xc537),
1971 { /* Logitech lightspeed receiver (0xc539) */
1975 { /* Logitech powerplay receiver (0xc53a) */
1979 { /* Logitech lightspeed receiver (0xc53f) */
1984 { /* Logitech 27 MHz HID++ 1.0 receiver (0xc513) */
1987 { /* Logitech 27 MHz HID++ 1.0 receiver (0xc517) */
1991 { /* Logitech 27 MHz HID++ 1.0 mouse-only receiver (0xc51b) */
1996 { /* Logitech MX5000 HID++ / bluetooth receiver keyboard intf. (0xc70e) */
2000 { /* Logitech MX5000 HID++ / bluetooth receiver mouse intf. (0xc70a) */
2004 { /* Logitech MX5500 HID++ / bluetooth receiver keyboard intf. (0xc71b) */
2008 { /* Logitech MX5500 HID++ / bluetooth receiver mouse intf. (0xc71c) */
2013 { /* Logitech Dinovo Edge HID++ / bluetooth receiver keyboard intf. (0xc713) */
2017 { /* Logitech Dinovo Edge HID++ / bluetooth receiver mouse intf. (0xc714) */
2021 { /* Logitech DiNovo Mini HID++ / bluetooth receiver mouse intf. (0xc71e) */
2025 { /* Logitech DiNovo Mini HID++ / bluetooth receiver keyboard intf. (0xc71f) */