Oh, right. Here it is. The top portion is the suspect, as the mouse Usage doesn't cause the repeating get desciptor if I comment the top.
Thanks.
0x05, 0x0C, // Usage Page (Consumer Devices)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0xA1, 0x00, /* Collection (Physical), 20 */
0x85, 0x04, /* Report Id (4) */
0x19, 0x00, // Usage Minimum (0)
0x2A,0xFF,0x03, // Usage Maximum (1)
0x95, 0x01, // Report Count (1)
0x75, 0x10, // Report Size (16)
0x15, 0x00, // Logical Minimum (0)
0x27, 0xFF, 0x03, 0x00, 0x00, // Logical Maximum (1023)
0x81, 0x00, // Input (Data, Ary, Absolute)
0xC0, // End Collection
0xC0, // End Collection
0x05, 0x01, /* Usage Page (Generic Desktop), 8 */
0x09, 0x02, /* Usage (Mouse), */
0xA1, 0x01, /* Collection (Application), */
0x09, 0x01, /* Usage (Pointer), */
0xA1, 0x00, /* Collection (Physical), 20 */
0x85, 0x01, /* Report Id (1) */
0x05, 0x09, /* Usage Page (Buttons), */
0x19, 0x01, /* Usage Minimum (01), */
0x29, 0x03, /* Usage Maximum (03), */
0x15, 0x00, /* Logical Minimum (0), */
0x25, 0x01, /* Logical Maximum (1), */
0x75, 0x01, /* Report Size (1), */
0x95, 0x03, /* Report Count (3), 3 bits for buttons */
0x81, 0x02, /* Input (Data, Variable, Absolute) */
0x75, 0x05, /* Report Size (5), 24 5 useless bits to make up even bytes */
0x95, 0x01, /* Report Count (1), */
0x81, 0x01, /* Input (Constant), */
0x05, 0x01, /* Usage Page (Generic Desktop), */
0x09, 0x30, /* Usage (X), */
0x09, 0x31, /* Usage (Y), */
0x09, 0x38, /* Usage (Scroll), */
0x15, 0x81, /* Logical Minimum (-127), */
0x25, 0x7F, /* Logical Maximum (127), */
0x75, 0x08, /* Report Size (8), */
0x95, 0x03, /* Report Count (3), each is a byte so its 3 separate bytes */
0x81, 0x06, /* Input (Data, Variable, Relative) */
0x05, 0x0c, // USAGE_PAGE (Consumer Devices) 15
0x0a, 0x38, 0x02, // USAGE (AC Pan)
0x15, 0x81, // LOGICAL_MINIMUM (-127)
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, /* Report Count (1), */
0x81, 0x06, // INPUT (Data,Var,Rel)
0xC0, /* End Collection, 2 */
0xC0, /* End Collection */
0x05, 0x01, /* Usage Page (Generic Desktop), 12 */
0x09, 0x02, /* Usage (Mouse), */
0xA1, 0x01, /* Collection (Application), */
0x09, 0x01, /* Usage (Pointer), */
0xA1, 0x00, /* Collection (Physical), */
0x85, 0x02, /* Report Id (2) */
0x05, 0x01, /* Usage Page (Generic Desktop),40 */
0x09, 0x30, /* Usage (X), */
0x35, 0x00, /* PHYSICAL_MINIMUM (0) */
0x46, 0x10, 0x27,// PHYSICAL_MAXIMUM (10000)
0x15, 0x00, // Logical Minimum (0),
0x26, 0x10, 0x27,// Logical Maximum (10000),
0x75, 0x10, /* Report Size (16), */
0x95, 0x01, /* Report Count (1), */
0x81, 0x02, /* Input (Data, Variable, Absolute)*/
0x09, 0x31, /* Usage (Y), */
0x35, 0x00, /* PHYSICAL_MINIMUM (0) */
0x46, 0x10, 0x27,// PHYSICAL_MAXIMUM (10000)
0x15, 0x00, // Logical Minimum (0),
0x26, 0x10, 0x27,// Logical Maximum (10000),
0x75, 0x10, /* Report Size (16), */
0x95, 0x01, /* Report Count (1), */
0x81, 0x02, /* Input (Data, Variable, Absolute)*/
0x05, 0x01, /* Usage Page (Generic Desktop), */
0xC0, /* End Collection, 2 */
0xC0, /* End Collection */
//
}
};