Lines Matching refs:rdesc
362 static __u8 *kye_consumer_control_fixup(struct hid_device *hdev, __u8 *rdesc,
372 rdesc[offset] == 0x05 && rdesc[offset + 1] == 0x0c &&
374 rdesc[offset + 2] == 0x09 && rdesc[offset + 3] == 0x01 &&
376 rdesc[offset + 10] == 0x2a && rdesc[offset + 12] > 0x2f) {
378 rdesc[offset + 12] = 0x2f;
380 return rdesc;
402 static __u8 *kye_tablet_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize)
410 return rdesc;
420 return rdesc;
424 memcpy(rdesc, kye_tablet_rdesc, newsize);
426 put_unaligned_le32(info->x_logical_maximum, rdesc + 66);
427 put_unaligned_le32(info->x_physical_maximum, rdesc + 72);
428 rdesc[77] = info->unit;
429 rdesc[79] = info->unit_exponent;
430 put_unaligned_le32(info->y_logical_maximum, rdesc + 87);
431 put_unaligned_le32(info->y_physical_maximum, rdesc + 92);
432 put_unaligned_le32(info->pressure_logical_maximum, rdesc + 104);
435 put_unaligned_le32(info->x_logical_maximum, rdesc + 156);
436 put_unaligned_le32(info->x_physical_maximum, rdesc + 162);
437 rdesc[167] = info->unit;
438 rdesc[169] = info->unit_exponent;
439 put_unaligned_le32(info->y_logical_maximum, rdesc + 177);
440 put_unaligned_le32(info->y_physical_maximum, rdesc + 182);
445 hid_err(hdev, "control rdesc unexpectedly large");
447 memcpy(rdesc + newsize, info->control_rdesc, info->control_rsize);
453 return rdesc;
456 static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc,
469 rdesc[61] == 0x05 && rdesc[62] == 0x08 &&
470 rdesc[63] == 0x19 && rdesc[64] == 0x08 &&
471 rdesc[65] == 0x29 && rdesc[66] == 0x0f &&
472 rdesc[71] == 0x75 && rdesc[72] == 0x08 &&
473 rdesc[73] == 0x95 && rdesc[74] == 0x01) {
477 rdesc[62] = 0x09;
478 rdesc[64] = 0x04;
479 rdesc[66] = 0x07;
480 rdesc[72] = 0x01;
481 rdesc[74] = 0x08;
485 rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104,
489 rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104,
493 rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83,
509 rdesc = kye_tablet_fixup(hdev, rdesc, rsize);
512 return rdesc;