@@ -234,6 +234,58 @@ static __u8 pid0011_rdesc_fixed[] = {
234
234
0xC0 /* End Collection */
235
235
};
236
236
237
+ static __u8 pid0006_rdesc_fixed [] = {
238
+ 0x05 , 0x01 , /* Usage Page (Generic Desktop) */
239
+ 0x09 , 0x04 , /* Usage (Joystick) */
240
+ 0xA1 , 0x01 , /* Collection (Application) */
241
+ 0xA1 , 0x02 , /* Collection (Logical) */
242
+ 0x75 , 0x08 , /* Report Size (8) */
243
+ 0x95 , 0x05 , /* Report Count (5) */
244
+ 0x15 , 0x00 , /* Logical Minimum (0) */
245
+ 0x26 , 0xFF , 0x00 , /* Logical Maximum (255) */
246
+ 0x35 , 0x00 , /* Physical Minimum (0) */
247
+ 0x46 , 0xFF , 0x00 , /* Physical Maximum (255) */
248
+ 0x09 , 0x30 , /* Usage (X) */
249
+ 0x09 , 0x33 , /* Usage (Ry) */
250
+ 0x09 , 0x32 , /* Usage (Z) */
251
+ 0x09 , 0x31 , /* Usage (Y) */
252
+ 0x09 , 0x34 , /* Usage (Ry) */
253
+ 0x81 , 0x02 , /* Input (Variable) */
254
+ 0x75 , 0x04 , /* Report Size (4) */
255
+ 0x95 , 0x01 , /* Report Count (1) */
256
+ 0x25 , 0x07 , /* Logical Maximum (7) */
257
+ 0x46 , 0x3B , 0x01 , /* Physical Maximum (315) */
258
+ 0x65 , 0x14 , /* Unit (Centimeter) */
259
+ 0x09 , 0x39 , /* Usage (Hat switch) */
260
+ 0x81 , 0x42 , /* Input (Variable) */
261
+ 0x65 , 0x00 , /* Unit (None) */
262
+ 0x75 , 0x01 , /* Report Size (1) */
263
+ 0x95 , 0x0C , /* Report Count (12) */
264
+ 0x25 , 0x01 , /* Logical Maximum (1) */
265
+ 0x45 , 0x01 , /* Physical Maximum (1) */
266
+ 0x05 , 0x09 , /* Usage Page (Button) */
267
+ 0x19 , 0x01 , /* Usage Minimum (0x01) */
268
+ 0x29 , 0x0C , /* Usage Maximum (0x0C) */
269
+ 0x81 , 0x02 , /* Input (Variable) */
270
+ 0x06 , 0x00 , 0xFF , /* Usage Page (Vendor Defined) */
271
+ 0x75 , 0x01 , /* Report Size (1) */
272
+ 0x95 , 0x08 , /* Report Count (8) */
273
+ 0x25 , 0x01 , /* Logical Maximum (1) */
274
+ 0x45 , 0x01 , /* Physical Maximum (1) */
275
+ 0x09 , 0x01 , /* Usage (0x01) */
276
+ 0x81 , 0x02 , /* Input (Variable) */
277
+ 0xC0 , /* End Collection */
278
+ 0xA1 , 0x02 , /* Collection (Logical) */
279
+ 0x75 , 0x08 , /* Report Size (8) */
280
+ 0x95 , 0x07 , /* Report Count (7) */
281
+ 0x46 , 0xFF , 0x00 , /* Physical Maximum (255) */
282
+ 0x26 , 0xFF , 0x00 , /* Logical Maximum (255) */
283
+ 0x09 , 0x02 , /* Usage (0x02) */
284
+ 0x91 , 0x02 , /* Output (Variable) */
285
+ 0xC0 , /* End Collection */
286
+ 0xC0 /* End Collection */
287
+ };
288
+
237
289
static __u8 * dr_report_fixup (struct hid_device * hdev , __u8 * rdesc ,
238
290
unsigned int * rsize )
239
291
{
@@ -244,6 +296,12 @@ static __u8 *dr_report_fixup(struct hid_device *hdev, __u8 *rdesc,
244
296
* rsize = sizeof (pid0011_rdesc_fixed );
245
297
}
246
298
break ;
299
+ case 0x0006 :
300
+ if (* rsize == sizeof (pid0006_rdesc_fixed )) {
301
+ rdesc = pid0006_rdesc_fixed ;
302
+ * rsize = sizeof (pid0006_rdesc_fixed );
303
+ }
304
+ break ;
247
305
}
248
306
return rdesc ;
249
307
}
0 commit comments