#16764: Mouse scrolls too much
------------------------------------+-------------------------
Reporter: miqlas | Owner: nobody
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Drivers/Input/USB-HID | Version: R1/beta2
Resolution: | Keywords:
Blocked By: | Blocking:
Platform: x86-64 |
------------------------------------+-------------------------
Comment (by pulkomandy):
First descriptor:
{{{
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x06, // Usage (Keyboard)
0xA1, 0x01, // Collection (Application)
0x05, 0x08, // Usage Page (LEDs)
0x19, 0x01, // Usage Minimum (Num Lock)
0x29, 0x03, // Usage Maximum (Scroll Lock)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x03, // Report Count (3)
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x95, 0x05, // Report Count (5)
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x05, 0x07, // Usage Page (Kbrd/Keypad)
0x1A, 0xE0, 0x00, // Usage Minimum (0xE0)
0x2A, 0xE7, 0x00, // Usage Maximum (0xE7)
0x95, 0x08, // Report Count (8)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x75, 0x08, // Report Size (8)
0x95, 0x01, // Report Count (1)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x19, 0x00, // Usage Minimum (0x00)
0x2A, 0x91, 0x00, // Usage Maximum (0x91)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x95, 0x06, // Report Count (6)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
}}}
Second:
{{{
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x02, // Usage (Mouse)
0xA1, 0x01, // Collection (Application)
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x02, // Usage (Mouse)
0xA1, 0x02, // Collection (Logical)
0x85, 0x1A, // Report ID (26)
0x09, 0x01, // Usage (Pointer)
0xA1, 0x00, // Collection (Physical)
0x05, 0x09, // Usage Page (Button)
0x19, 0x01, // Usage Minimum (0x01)
0x29, 0x05, // Usage Maximum (0x05)
0x95, 0x05, // Report Count (5)
0x75, 0x01, // Report Size (1)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x75, 0x03, // Report Size (3)
0x95, 0x01, // Report Count (1)
0x81, 0x01, // Input (Const,Array,Abs,No
Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x30, // Usage (X)
0x09, 0x31, // Usage (Y)
0x95, 0x02, // Report Count (2)
0x75, 0x10, // Report Size (16)
0x16, 0x01, 0x80, // Logical Minimum (-32767)
0x26, 0xFF, 0x7F, // Logical Maximum (32767)
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred
State,No Null Position)
0xA1, 0x02, // Collection (Logical)
0x85, 0x12, // Report ID (18)
0x09, 0x48, // Usage (0x48)
0x95, 0x01, // Report Count (1)
0x75, 0x02, // Report Size (2)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x35, 0x01, // Physical Minimum (1)
0x45, 0x10, // Physical Maximum (16)
0xB1, 0x02, // Feature (Data,Var,Abs,No
Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x85, 0x1A, // Report ID (26)
0x09, 0x38, // Usage (Wheel)
0x35, 0x00, // Physical Minimum (0)
0x45, 0x00, // Physical Maximum (0)
0x95, 0x01, // Report Count (1)
0x75, 0x10, // Report Size (16)
0x16, 0x01, 0x80, // Logical Minimum (-32767)
0x26, 0xFF, 0x7F, // Logical Maximum (32767)
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
0xA1, 0x02, // Collection (Logical)
0x85, 0x12, // Report ID (18)
0x09, 0x48, // Usage (0x48)
0x75, 0x02, // Report Size (2)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x35, 0x01, // Physical Minimum (1)
0x45, 0x10, // Physical Maximum (16)
0xB1, 0x02, // Feature (Data,Var,Abs,No
Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x35, 0x00, // Physical Minimum (0)
0x45, 0x00, // Physical Maximum (0)
0x75, 0x04, // Report Size (4)
0xB1, 0x01, // Feature (Const,Array,Abs,No
Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x85, 0x1A, // Report ID (26)
0x05, 0x0C, // Usage Page (Consumer)
0x95, 0x01, // Report Count (1)
0x75, 0x10, // Report Size (16)
0x16, 0x01, 0x80, // Logical Minimum (-32767)
0x26, 0xFF, 0x7F, // Logical Maximum (32767)
0x0A, 0x38, 0x02, // Usage (AC Pan)
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
0xC0, // End Collection
0xC0, // End Collection
0xC0, // End Collection
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x02, // Usage (Mouse)
0xA1, 0x02, // Collection (Logical)
0x85, 0x1F, // Report ID (31)
0x05, 0x0C, // Usage Page (Consumer)
0x0A, 0x38, 0x02, // Usage (AC Pan)
0x95, 0x01, // Report Count (1)
0x75, 0x10, // Report Size (16)
0x16, 0x01, 0x80, // Logical Minimum (-32767)
0x26, 0xFF, 0x7F, // Logical Maximum (32767)
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred
State,No Null Position)
0x85, 0x17, // Report ID (23)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x06, 0xFF, // Usage (0xFF06)
0x0A, 0x0F, 0xFF, // Usage (0xFF0F)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x35, 0x01, // Physical Minimum (1)
0x45, 0x10, // Physical Maximum (16)
0x95, 0x02, // Report Count (2)
0x75, 0x02, // Report Size (2)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x0A, 0x04, 0xFF, // Usage (0xFF04)
0x35, 0x00, // Physical Minimum (0)
0x45, 0x00, // Physical Maximum (0)
0x95, 0x01, // Report Count (1)
0x75, 0x01, // Report Size (1)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x75, 0x03, // Report Size (3)
0xB1, 0x01, // Feature (Const,Array,Abs,No
Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0, // End Collection
0x85, 0x16, // Report ID (22)
0x05, 0x0C, // Usage Page (Consumer)
0x19, 0x00, // Usage Minimum (Unassigned)
0x2A, 0xFF, 0x03, // Usage Maximum (0x03FF)
0x95, 0x01, // Report Count (1)
0x75, 0x10, // Report Size (16)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x03, // Logical Maximum (1023)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x1A, 0x01, 0xFD, // Usage Minimum (0xFD01)
0x2A, 0xFF, 0xFD, // Usage Maximum (0xFDFF)
0x15, 0x01, // Logical Minimum (1)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x75, 0x08, // Report Size (8)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x85, 0x1C, // Report ID (28)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x25, 0xFF, // Usage (0xFF25)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x04, // Logical Maximum (4)
0x75, 0x08, // Report Size (8)
0x95, 0x01, // Report Count (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x0A, 0x26, 0xFF, // Usage (0xFF26)
0x75, 0x10, // Report Size (16)
0x15, 0x00, // Logical Minimum (0)
0x27, 0xFF, 0xFF, 0x00, 0x00, // Logical Maximum (65534)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
}}}
Third:
{{{
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0x85, 0x20, // Report ID (32)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x75, 0x08, // Report Size (8)
0x95, 0x12, // Report Count (18)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x21, // Report ID (33)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x10, // Report Count (16)
0x1A, 0x10, 0xFA, // Usage Minimum (0xFA10)
0x2A, 0x1F, 0xFA, // Usage Maximum (0xFA1F)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x85, 0x28, // Report ID (40)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x1A, 0x10, 0xFA, // Usage Minimum (0xFA10)
0x2A, 0x1F, 0xFA, // Usage Maximum (0xFA1F)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x22, // Report ID (34)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x75, 0x08, // Report Size (8)
0x95, 0x1A, // Report Count (26)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x23, // Report ID (35)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x24, // Report ID (36)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x95, 0x1F, // Report Count (31)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x25, // Report ID (37)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x26, // Report ID (38)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position,Non-volatile)
0x85, 0x27, // Report ID (39)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x0A, 0xFA, // Usage (0xFA0A)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x85, 0x14, // Report ID (20)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x03, // Logical Maximum (3)
0x75, 0x02, // Report Size (2)
0x95, 0x01, // Report Count (1)
0x0A, 0x01, 0xFE, // Usage (0xFE01)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x75, 0x06, // Report Size (6)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x85, 0x04, // Report ID (4)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x03, // Logical Maximum (3)
0x75, 0x02, // Report Size (2)
0x95, 0x01, // Report Count (1)
0x0A, 0x01, 0xFE, // Usage (0xFE01)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x75, 0x06, // Report Size (6)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0x85, 0x07, // Report ID (7)
0x05, 0x0C, // Usage Page (Consumer)
0x19, 0x00, // Usage Minimum (Unassigned)
0x2A, 0xFF, 0x03, // Usage Maximum (0x03FF)
0x95, 0x01, // Report Count (1)
0x75, 0x10, // Report Size (16)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x03, // Logical Maximum (1023)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x05, 0x07, // Usage Page (Kbrd/Keypad)
0x19, 0x00, // Usage Minimum (0x00)
0x29, 0xFF, // Usage Maximum (0xFF)
0x75, 0x08, // Report Size (8)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
0x0A, 0x03, 0xFE, // Usage (0xFE03)
0x0A, 0x04, 0xFE, // Usage (0xFE04)
0x75, 0x01, // Report Size (1)
0x95, 0x02, // Report Count (2)
0x25, 0x01, // Logical Maximum (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x0A, 0x05, 0xFF, // Usage (0xFF05)
0x95, 0x01, // Report Count (1)
0x75, 0x05, // Report Size (5)
0x25, 0x1F, // Logical Maximum (31)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x75, 0x01, // Report Size (1)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x1A, 0x01, 0xFD, // Usage Minimum (0xFD01)
0x2A, 0xFF, 0xFD, // Usage Maximum (0xFDFF)
0x15, 0x01, // Logical Minimum (1)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x75, 0x08, // Report Size (8)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0x0A, 0x02, 0xFF, // Usage (0xFF02)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x15, 0x00, // Logical Minimum (0)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
0x06, 0xBC, 0xFF, // Usage Page (Vendor Defined 0xFFBC)
0x09, 0x88, // Usage (0x88)
0xA1, 0x01, // Collection (Application)
0x85, 0x08, // Report ID (8)
0x19, 0x01, // Usage Minimum (0x01)
0x29, 0xFF, // Usage Maximum (0xFF)
0x15, 0x01, // Logical Minimum (1)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x95, 0x01, // Report Count (1)
0x75, 0x08, // Report Size (8)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x80, // Usage (Sys Control)
0xA1, 0x01, // Collection (Application)
0x85, 0x03, // Report ID (3)
0x19, 0x00, // Usage Minimum (Undefined)
0x29, 0xFF, // Usage Maximum (0xFF)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred
State,No Null Position)
0xC0, // End Collection
}}}
--
Ticket URL: <https://dev.haiku-os.org/ticket/16764#comment:5>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.