Re: [GIT PULL] HID for 5.7

From: Benjamin Tissoires
Date: Fri Apr 03 2020 - 07:35:40 EST


On Fri, Apr 3, 2020 at 12:05 PM Jiri Kosina <jikos@xxxxxxxxxx> wrote:
>
> On Wed, 1 Apr 2020, Linus Torvalds wrote:
>
> > > Samuel Äavoj (1):
> > > HID: Add driver fixing Glorious PC Gaming Race mouse report descriptor
> >
> > What a glorious name for a piece of hardware. Even if it's apparently
> > buggy and needs help to work right.
>
> Yeah, the vendor apparently was not of the humble kind :)
>
> > I felt bad saying I don't need that glorious driver when doing my
> > oldconfig.
>
> :))
>
> > Anyway, because I noticed this due to the name, it does strike me that
> > clearly Windows must be ignoring - or otherwise reacting differently to
> > - the HID_MAIN_ITEM_CONSTANT flag. Because presumably those mice work
> > under Windows without special drivers?
> >
> > In fact, reading that driver, it looks like they report being *both*
> > constant *and* variable in their report descriptors. Which sounds odd.
> > Maybe we should do whatever Windows does, and not need a special driver
> > for this maybe-bot-so-glorious-after-all mouse hardware?
>
> Adding Samuel to CC.
>
> From what I understood is that in order to access the buttons reported in
> report #2 (the one marked with HID_MAIN_ITEM_CONSTANT), you actually *do*
> need a special software on windows anyway.
>
> What we do is that we ignore any changes in reports with
> HID_MAIN_ITEM_CONSTANT in the HID core.

Funny enough, I think most hardware vendors are actually correct with
the CONSTANT implementation but Microsoft itself with the Surface
touchpad line :)

>
> It would still be possible to access the report via hidraw, and maybe
> that's analogy of what the Windows driver/special Glorious software :)
> does, I don't know. It's hard to believe that Windows would be actually
> willing to report any changes coming through HID_MAIN_ITEM_CONSTANT
> reports, but who knows.

I'll need to check whether we have too many drivers that replace
constant by variable. But I know it bit us in the past a few times
(and the Surface covers are the ones I remember). But again, Windows
is weird in a lot of ways, and I believe that they do not have one
unified driver for everything, but some behaviour that depends on the
application. So I am a little bit hesitant to toggle the switch to
consider constant usages as variable ones. Luckily, we now have a
regression test suite. It's not complete, but it can prevent such
regressions with the devices we have in there.

Cheers,
Benjamin

>
> --
> Jiri Kosina
> SUSE Labs
>