linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Julian Sax <jsbc@gmx.de>
Cc: Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [GIT PULL] HID fixes
Date: Wed, 20 Jun 2018 09:06:08 +0200	[thread overview]
Message-ID: <b952c1f6-5866-d25e-32c2-ac0ded1812e2@redhat.com> (raw)
In-Reply-To: <nycvar.YFH.7.76.1806200611290.6203@cbobk.fhfr.pm>

[-- Attachment #1: Type: text/plain, Size: 882 bytes --]

Hi all,

On 20-06-18 06:19, Jiri Kosina wrote:
> On Wed, 20 Jun 2018, Linus Torvalds wrote:
> 
>> What is that odd binary blob i2c_hid_desc_override, and where does the
>> data come from? Not explained anywhere.
> 
> Fair enough; it's a pretty standard HID descriptor override, but you're
> right that we're usually replacing it in a bit more verbose way. Julian,
> could you please run that descriptor through something like HID descriptor
> tool, and send me a patch that reformats it? (for the way we usually do
> this, look for example in hid-sony.c).

Julian let me know if you need any help with this,
to format the HID descriptor take a file with
the raw descriptor in binary format and do:

cat descriptor.bin | hidrd-convert -o code

I've just done that to make sure my instructions are
right, so to save you having to redo this I've
attached the result.

Regards,

Hans



[-- Attachment #2: desc.c --]
[-- Type: text/x-csrc, Size: 18091 bytes --]

0x05, 0x01,                     /*  Usage Page (Desktop),                   */
0x09, 0x02,                     /*  Usage (Mouse),                          */
0xA1, 0x01,                     /*  Collection (Application),               */
0x85, 0x01,                     /*      Report ID (1),                      */
0x09, 0x01,                     /*      Usage (Pointer),                    */
0xA1, 0x00,                     /*      Collection (Physical),              */
0x05, 0x09,                     /*          Usage Page (Button),            */
0x19, 0x01,                     /*          Usage Minimum (01h),            */
0x29, 0x02,                     /*          Usage Maximum (02h),            */
0x25, 0x01,                     /*          Logical Maximum (1),            */
0x75, 0x01,                     /*          Report Size (1),                */
0x95, 0x02,                     /*          Report Count (2),               */
0x81, 0x02,                     /*          Input (Variable),               */
0x95, 0x06,                     /*          Report Count (6),               */
0x81, 0x01,                     /*          Input (Constant),               */
0x05, 0x01,                     /*          Usage Page (Desktop),           */
0x09, 0x30,                     /*          Usage (X),                      */
0x09, 0x31,                     /*          Usage (Y),                      */
0x15, 0x81,                     /*          Logical Minimum (-127),         */
0x25, 0x7F,                     /*          Logical Maximum (127),          */
0x75, 0x08,                     /*          Report Size (8),                */
0x95, 0x02,                     /*          Report Count (2),               */
0x81, 0x06,                     /*          Input (Variable, Relative),     */
0xC0,                           /*      End Collection,                     */
0xC0,                           /*  End Collection,                         */
0x05, 0x0D,                     /*  Usage Page (Digitizer),                 */
0x09, 0x05,                     /*  Usage (Touchpad),                       */
0xA1, 0x01,                     /*  Collection (Application),               */
0x85, 0x04,                     /*      Report ID (4),                      */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x09, 0x22,                     /*      Usage (Finger),                     */
0xA1, 0x02,                     /*      Collection (Logical),               */
0x15, 0x00,                     /*          Logical Minimum (0),            */
0x25, 0x01,                     /*          Logical Maximum (1),            */
0x09, 0x47,                     /*          Usage (Touch Valid),            */
0x09, 0x42,                     /*          Usage (Tip Switch),             */
0x95, 0x02,                     /*          Report Count (2),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x81, 0x02,                     /*          Input (Variable),               */
0x95, 0x01,                     /*          Report Count (1),               */
0x75, 0x03,                     /*          Report Size (3),                */
0x25, 0x05,                     /*          Logical Maximum (5),            */
0x09, 0x51,                     /*          Usage (Contact Identifier),     */
0x81, 0x02,                     /*          Input (Variable),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x95, 0x03,                     /*          Report Count (3),               */
0x81, 0x03,                     /*          Input (Constant, Variable),     */
0x05, 0x01,                     /*          Usage Page (Desktop),           */
0x26, 0x44, 0x0A,               /*          Logical Maximum (2628),         */
0x75, 0x10,                     /*          Report Size (16),               */
0x55, 0x0E,                     /*          Unit Exponent (14),             */
0x65, 0x11,                     /*          Unit (Centimeter),              */
0x09, 0x30,                     /*          Usage (X),                      */
0x46, 0x1A, 0x04,               /*          Physical Maximum (1050),        */
0x95, 0x01,                     /*          Report Count (1),               */
0x81, 0x02,                     /*          Input (Variable),               */
0x46, 0xBC, 0x02,               /*          Physical Maximum (700),         */
0x26, 0x34, 0x05,               /*          Logical Maximum (1332),         */
0x09, 0x31,                     /*          Usage (Y),                      */
0x81, 0x02,                     /*          Input (Variable),               */
0xC0,                           /*      End Collection,                     */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x09, 0x22,                     /*      Usage (Finger),                     */
0xA1, 0x02,                     /*      Collection (Logical),               */
0x25, 0x01,                     /*          Logical Maximum (1),            */
0x09, 0x47,                     /*          Usage (Touch Valid),            */
0x09, 0x42,                     /*          Usage (Tip Switch),             */
0x95, 0x02,                     /*          Report Count (2),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x81, 0x02,                     /*          Input (Variable),               */
0x95, 0x01,                     /*          Report Count (1),               */
0x75, 0x03,                     /*          Report Size (3),                */
0x25, 0x05,                     /*          Logical Maximum (5),            */
0x09, 0x51,                     /*          Usage (Contact Identifier),     */
0x81, 0x02,                     /*          Input (Variable),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x95, 0x03,                     /*          Report Count (3),               */
0x81, 0x03,                     /*          Input (Constant, Variable),     */
0x05, 0x01,                     /*          Usage Page (Desktop),           */
0x26, 0x44, 0x0A,               /*          Logical Maximum (2628),         */
0x75, 0x10,                     /*          Report Size (16),               */
0x09, 0x30,                     /*          Usage (X),                      */
0x46, 0x1A, 0x04,               /*          Physical Maximum (1050),        */
0x95, 0x01,                     /*          Report Count (1),               */
0x81, 0x02,                     /*          Input (Variable),               */
0x46, 0xBC, 0x02,               /*          Physical Maximum (700),         */
0x26, 0x34, 0x05,               /*          Logical Maximum (1332),         */
0x09, 0x31,                     /*          Usage (Y),                      */
0x81, 0x02,                     /*          Input (Variable),               */
0xC0,                           /*      End Collection,                     */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x09, 0x22,                     /*      Usage (Finger),                     */
0xA1, 0x02,                     /*      Collection (Logical),               */
0x25, 0x01,                     /*          Logical Maximum (1),            */
0x09, 0x47,                     /*          Usage (Touch Valid),            */
0x09, 0x42,                     /*          Usage (Tip Switch),             */
0x95, 0x02,                     /*          Report Count (2),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x81, 0x02,                     /*          Input (Variable),               */
0x95, 0x01,                     /*          Report Count (1),               */
0x75, 0x03,                     /*          Report Size (3),                */
0x25, 0x05,                     /*          Logical Maximum (5),            */
0x09, 0x51,                     /*          Usage (Contact Identifier),     */
0x81, 0x02,                     /*          Input (Variable),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x95, 0x03,                     /*          Report Count (3),               */
0x81, 0x03,                     /*          Input (Constant, Variable),     */
0x05, 0x01,                     /*          Usage Page (Desktop),           */
0x26, 0x44, 0x0A,               /*          Logical Maximum (2628),         */
0x75, 0x10,                     /*          Report Size (16),               */
0x09, 0x30,                     /*          Usage (X),                      */
0x46, 0x1A, 0x04,               /*          Physical Maximum (1050),        */
0x95, 0x01,                     /*          Report Count (1),               */
0x81, 0x02,                     /*          Input (Variable),               */
0x46, 0xBC, 0x02,               /*          Physical Maximum (700),         */
0x26, 0x34, 0x05,               /*          Logical Maximum (1332),         */
0x09, 0x31,                     /*          Usage (Y),                      */
0x81, 0x02,                     /*          Input (Variable),               */
0xC0,                           /*      End Collection,                     */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x09, 0x22,                     /*      Usage (Finger),                     */
0xA1, 0x02,                     /*      Collection (Logical),               */
0x25, 0x01,                     /*          Logical Maximum (1),            */
0x09, 0x47,                     /*          Usage (Touch Valid),            */
0x09, 0x42,                     /*          Usage (Tip Switch),             */
0x95, 0x02,                     /*          Report Count (2),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x81, 0x02,                     /*          Input (Variable),               */
0x95, 0x01,                     /*          Report Count (1),               */
0x75, 0x03,                     /*          Report Size (3),                */
0x25, 0x05,                     /*          Logical Maximum (5),            */
0x09, 0x51,                     /*          Usage (Contact Identifier),     */
0x81, 0x02,                     /*          Input (Variable),               */
0x75, 0x01,                     /*          Report Size (1),                */
0x95, 0x03,                     /*          Report Count (3),               */
0x81, 0x03,                     /*          Input (Constant, Variable),     */
0x05, 0x01,                     /*          Usage Page (Desktop),           */
0x26, 0x44, 0x0A,               /*          Logical Maximum (2628),         */
0x75, 0x10,                     /*          Report Size (16),               */
0x09, 0x30,                     /*          Usage (X),                      */
0x46, 0x1A, 0x04,               /*          Physical Maximum (1050),        */
0x95, 0x01,                     /*          Report Count (1),               */
0x81, 0x02,                     /*          Input (Variable),               */
0x46, 0xBC, 0x02,               /*          Physical Maximum (700),         */
0x26, 0x34, 0x05,               /*          Logical Maximum (1332),         */
0x09, 0x31,                     /*          Usage (Y),                      */
0x81, 0x02,                     /*          Input (Variable),               */
0xC0,                           /*      End Collection,                     */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x55, 0x0C,                     /*      Unit Exponent (12),                 */
0x66, 0x01, 0x10,               /*      Unit (Seconds),                     */
0x47, 0xFF, 0xFF, 0x00, 0x00,   /*      Physical Maximum (65535),           */
0x27, 0xFF, 0xFF, 0x00, 0x00,   /*      Logical Maximum (65535),            */
0x75, 0x10,                     /*      Report Size (16),                   */
0x95, 0x01,                     /*      Report Count (1),                   */
0x09, 0x56,                     /*      Usage (Scan Time),                  */
0x81, 0x02,                     /*      Input (Variable),                   */
0x09, 0x54,                     /*      Usage (Contact Count),              */
0x25, 0x7F,                     /*      Logical Maximum (127),              */
0x75, 0x08,                     /*      Report Size (8),                    */
0x81, 0x02,                     /*      Input (Variable),                   */
0x05, 0x09,                     /*      Usage Page (Button),                */
0x09, 0x01,                     /*      Usage (01h),                        */
0x25, 0x01,                     /*      Logical Maximum (1),                */
0x75, 0x01,                     /*      Report Size (1),                    */
0x95, 0x01,                     /*      Report Count (1),                   */
0x81, 0x02,                     /*      Input (Variable),                   */
0x95, 0x07,                     /*      Report Count (7),                   */
0x81, 0x03,                     /*      Input (Constant, Variable),         */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x85, 0x02,                     /*      Report ID (2),                      */
0x09, 0x55,                     /*      Usage (Contact Count Maximum),      */
0x09, 0x59,                     /*      Usage (59h),                        */
0x75, 0x04,                     /*      Report Size (4),                    */
0x95, 0x02,                     /*      Report Count (2),                   */
0x25, 0x0F,                     /*      Logical Maximum (15),               */
0xB1, 0x02,                     /*      Feature (Variable),                 */
0x05, 0x0D,                     /*      Usage Page (Digitizer),             */
0x85, 0x07,                     /*      Report ID (7),                      */
0x09, 0x60,                     /*      Usage (60h),                        */
0x75, 0x01,                     /*      Report Size (1),                    */
0x95, 0x01,                     /*      Report Count (1),                   */
0x25, 0x01,                     /*      Logical Maximum (1),                */
0xB1, 0x02,                     /*      Feature (Variable),                 */
0x95, 0x07,                     /*      Report Count (7),                   */
0xB1, 0x03,                     /*      Feature (Constant, Variable),       */
0x85, 0x06,                     /*      Report ID (6),                      */
0x06, 0x00, 0xFF,               /*      Usage Page (FF00h),                 */
0x09, 0xC5,                     /*      Usage (C5h),                        */
0x26, 0xFF, 0x00,               /*      Logical Maximum (255),              */
0x75, 0x08,                     /*      Report Size (8),                    */
0x96, 0x00, 0x01,               /*      Report Count (256),                 */
0xB1, 0x02,                     /*      Feature (Variable),                 */
0xC0,                           /*  End Collection,                         */
0x06, 0x00, 0xFF,               /*  Usage Page (FF00h),                     */
0x09, 0x01,                     /*  Usage (01h),                            */
0xA1, 0x01,                     /*  Collection (Application),               */
0x85, 0x0D,                     /*      Report ID (13),                     */
0x26, 0xFF, 0x00,               /*      Logical Maximum (255),              */
0x19, 0x01,                     /*      Usage Minimum (01h),                */
0x29, 0x02,                     /*      Usage Maximum (02h),                */
0x75, 0x08,                     /*      Report Size (8),                    */
0x95, 0x02,                     /*      Report Count (2),                   */
0xB1, 0x02,                     /*      Feature (Variable),                 */
0xC0,                           /*  End Collection,                         */
0x05, 0x0D,                     /*  Usage Page (Digitizer),                 */
0x09, 0x0E,                     /*  Usage (Configuration),                  */
0xA1, 0x01,                     /*  Collection (Application),               */
0x85, 0x03,                     /*      Report ID (3),                      */
0x09, 0x22,                     /*      Usage (Finger),                     */
0xA1, 0x02,                     /*      Collection (Logical),               */
0x09, 0x52,                     /*          Usage (Device Mode),            */
0x25, 0x0A,                     /*          Logical Maximum (10),           */
0x95, 0x01,                     /*          Report Count (1),               */
0xB1, 0x02,                     /*          Feature (Variable),             */
0xC0,                           /*      End Collection,                     */
0x09, 0x22,                     /*      Usage (Finger),                     */
0xA1, 0x00,                     /*      Collection (Physical),              */
0x85, 0x05,                     /*          Report ID (5),                  */
0x09, 0x57,                     /*          Usage (57h),                    */
0x09, 0x58,                     /*          Usage (58h),                    */
0x75, 0x01,                     /*          Report Size (1),                */
0x95, 0x02,                     /*          Report Count (2),               */
0x25, 0x01,                     /*          Logical Maximum (1),            */
0xB1, 0x02,                     /*          Feature (Variable),             */
0x95, 0x06,                     /*          Report Count (6),               */
0xB1, 0x03,                     /*          Feature (Constant, Variable),   */
0xC0,                           /*      End Collection,                     */
0xC0                            /*  End Collection                          */

  reply	other threads:[~2018-06-20  9:06 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-19 12:00 [GIT PULL] HID fixes Jiri Kosina
2018-06-20  1:51 ` Linus Torvalds
2018-06-20  4:19   ` Jiri Kosina
2018-06-20  7:06     ` Hans de Goede [this message]
2018-06-20  7:12       ` Linus Torvalds
2018-06-20  7:15         ` Jiri Kosina
2018-06-20  7:35           ` Benjamin Tissoires
2018-06-20  7:37 ` [GIT PULL v2] " Jiri Kosina
  -- strict thread matches above, loose matches on Subject: below --
2024-02-15 12:38 [GIT PULL] " Jiri Kosina
2024-02-15 19:50 ` pr-tracker-bot
2023-12-12 22:51 Jiri Kosina
2023-12-13  1:21 ` pr-tracker-bot
2023-11-23 19:22 Jiri Kosina
2023-11-24  1:51 ` pr-tracker-bot
2023-10-11 12:00 Benjamin Tissoires
2023-10-11 20:58 ` pr-tracker-bot
2023-10-05 20:41 Jiri Kosina
2023-10-06  3:50 ` pr-tracker-bot
2023-07-11 13:59 Benjamin Tissoires
2023-07-12 23:28 ` pr-tracker-bot
2023-06-01 10:27 Jiri Kosina
2023-06-01 21:15 ` pr-tracker-bot
2023-04-12 22:03 Jiri Kosina
2023-04-13  0:44 ` pr-tracker-bot
2023-03-09 15:07 Benjamin Tissoires
2023-03-09 19:07 ` pr-tracker-bot
2023-02-09 14:31 Benjamin Tissoires
2023-02-09 18:10 ` pr-tracker-bot
2023-01-18 20:17 Jiri Kosina
2023-01-18 22:47 ` pr-tracker-bot
2022-12-21 15:18 Benjamin Tissoires
2022-12-21 17:53 ` pr-tracker-bot
2022-11-11 10:04 Jiri Kosina
2022-11-11 18:03 ` pr-tracker-bot
2022-10-21 12:17 Benjamin Tissoires
2022-10-22  1:28 ` pr-tracker-bot
2022-08-31 10:54 Jiri Kosina
2022-08-31 17:20 ` pr-tracker-bot
2022-03-09 10:42 Jiri Kosina
2022-03-09 22:16 ` pr-tracker-bot
2022-02-15 15:35 Jiri Kosina
2022-02-15 19:19 ` pr-tracker-bot
2022-01-21 14:17 Jiri Kosina
2022-01-21 14:27 ` pr-tracker-bot
2021-12-21 14:40 Jiri Kosina
2021-12-21 17:39 ` pr-tracker-bot
2021-12-09 10:15 Jiri Kosina
2021-12-09 19:35 ` pr-tracker-bot
2021-11-24  7:10 Jiri Kosina
2021-11-24 18:31 ` pr-tracker-bot
2021-09-27 13:54 Jiri Kosina
2021-09-27 17:25 ` pr-tracker-bot
2021-07-30 12:06 Jiri Kosina
2021-07-30 18:11 ` pr-tracker-bot
2021-06-01 21:58 Jiri Kosina
2021-06-02  3:58 ` pr-tracker-bot
2021-04-15 13:51 Jiri Kosina
2021-04-15 18:15 ` pr-tracker-bot
2021-01-28  8:38 Jiri Kosina
2021-01-28 18:16 ` pr-tracker-bot
2021-01-14 12:33 Jiri Kosina
2021-01-14 21:55 ` pr-tracker-bot
2020-11-22 21:18 Jiri Kosina
2020-11-22 22:40 ` pr-tracker-bot
2020-09-02 18:58 Jiri Kosina
2020-09-02 20:08 ` pr-tracker-bot
2020-08-25  8:14 Jiri Kosina
2020-08-25 19:16 ` pr-tracker-bot
2020-07-17 12:01 Jiri Kosina
2020-07-17 17:40 ` pr-tracker-bot
2020-03-17 13:41 Jiri Kosina
2020-03-17 17:10 ` pr-tracker-bot
2020-02-27 14:46 Jiri Kosina
2020-02-27 19:40 ` pr-tracker-bot
2020-01-09 14:23 Jiri Kosina
2020-01-09 19:14 ` Linus Torvalds
2020-01-09 19:25   ` Dmitry Torokhov
2020-01-09 19:37   ` Jiri Kosina
2020-01-09 20:38     ` Jiri Kosina
2020-01-09 23:36       ` Linus Torvalds
2020-01-09 23:41         ` Linus Torvalds
2020-01-10 14:31           ` Jiri Kosina
2020-01-09 19:15 ` pr-tracker-bot
2019-11-07 19:32 Jiri Kosina
2019-11-07 20:00 ` pr-tracker-bot
2019-08-20 12:53 Jiri Kosina
2019-08-20 18:55 ` pr-tracker-bot
2019-08-06 10:59 Jiri Kosina
2019-08-06 18:55 ` pr-tracker-bot
2019-06-27  9:37 Jiri Kosina
2019-06-28  0:45 ` pr-tracker-bot
2019-04-03 13:39 Jiri Kosina
2019-04-03 16:25 ` pr-tracker-bot
2019-01-22  9:46 Jiri Kosina
2019-01-22 18:55 ` pr-tracker-bot
2018-12-10 16:05 Jiri Kosina
2018-12-10 20:20 ` pr-tracker-bot
2018-11-24 20:19 Jiri Kosina
2018-11-24 23:15 ` pr-tracker-bot
2018-11-07 10:31 Jiri Kosina
2018-11-07 17:07 ` Linus Torvalds
2018-10-03  8:55 Jiri Kosina
2018-10-03 11:50 ` Greg Kroah-Hartman
2018-09-11  7:49 Jiri Kosina
2018-07-09 12:54 Jiri Kosina
2018-04-19  8:05 Jiri Kosina
2017-10-12 12:46 Jiri Kosina
2017-10-05  8:58 Jiri Kosina
2017-06-20  9:01 Jiri Kosina
2017-03-31  8:01 Jiri Kosina
2017-01-31 12:13 Jiri Kosina
2017-01-19 13:29 Jiri Kosina
2016-11-07 10:01 Jiri Kosina
2015-02-23 22:37 Jiri Kosina

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b952c1f6-5866-d25e-32c2-ac0ded1812e2@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=jikos@kernel.org \
    --cc=jsbc@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).