Re: [PATCH v2 00/37] HID: logitech: Handling of non DJ receivers in hid-logitech-dj

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

On Wed, Apr 10, 2019 at 4:55 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>
> Hi All,
>
> Here is v2 of Benjamin's and mine series to enumerate the devices behind
> various non DJ receivers instead of relying on their HID proxy mode.

Thanks for the re-spin. I spent a good amount of time today reviewing
the series and testing it, and I am happy with it.
There are a couple of nitpicks I'd like to see addressed, but
otherwise, I think this is ready for 5.2.

Checkpatch complains about 2 "ERROR: do not use assignment in if
condition" in patches 19/37 and 27/37. Though I can see the benefit of
having it that way, I think we should stick to checkpatch here as it
is too tempting to say "hey, there's a typo here, let's replace `=` by
`==`"

Checkpatch also complains about:
- trailing statements should be on next line: but I do not really mind
those, the blocks it complains are clearer that way
- lines over 80 characters -> these are fine in that context
- Block comments use a trailing */ on a separate line -> please fix
those (patches 7/37 and 8/37) as the rest of the code has the correct
block comments style

>
> There are 3 major changes in v2:
>
> 1) Add a new HID group for 27 MHz devices, this has 2 advantages:
> 1a) It allows the logitech-hidpp code to identity 27 Mhz devices and to
> automatically enable some HID++ quirls for these, such as e.g. HID++
> mouse-wheel handling (fixing some hwheel issues)
> 1b) Since the logitech-hidpp code can now identify these the logitech-dj
> code for 27 MHz devices no longer needs separate 27 MHz descriptors for the
> consumer and HID++ reports.

I am not entirely convinced we need a new group. But OTOH, being able
to quickly and reliably filter those legacy device is something that
is useful.

>
> 2) Add support Logitech Bluetooth receivers in HID proxy mode, tested with a
> MX5000 keyboard + receiver. This allows e.g. battery monitoring of the kbd.
>

I played today with a diNovo mini which has a slightly different
Logitech BT receiver. This part works fine except for the integrated
touchapd which provides reports with an ID 5. I locally hacked
something to have the mouse working, but it's a hack.
The only problem I have with integrating the diNovo mini is that
hid-lg.c does an input_mapping for one key on the keyboard... And I
think we will need it too in hid-logitech-hidpp :/

I also added the G700 locally, and a small modification to support
unnumbered mouse reports of size 8 is required, but I can send that as
a followup patch.

Cheers,
Benjamin

> 3) Rework HID++ mouse-wheel and extra-buttons support making it more
> generic and cleaner and add HID++ consumer-keys report. Using the HID++
> consumer keys reports fixes several keys not working on some kbds.
>
>
> Per patch info, unlisted patches are unchanged:
>
> [PATCH 01/37] HID: quirks: do not blacklist Logitech devices
> -New patch split of from a cleanup patch from Benjamin which was touching
>  many different drivers at once. This removes a dep on that patch.
>
> [PATCH 12/37] HID: logitech-dj: support sharing struct dj_receiver_dev between USB-interfaces
> -Fixed calling hid_err on a NULL hdev
>
> [PATCH 16/37] HID: logitech-dj: add support for 27 MHz receivers
> -Remove chunk to pick a better name for hidpp devices, see new patch below
> -Add support for mouse on index 2, numeric-keypad on index 4
> -Use a new group for 27MHz devices
>
> [PATCH 20/37] HID: logitech-dj: pick a better name for non-unifying receivers
> -New patch replacing the dropped chunk from patch 16 as well as replacing
>  "HID: logitech-hidpp: create a name based on the type if non available"
>  from v1
>
> [PATCH 21/37] HID: logitech-dj: remove false-positive error ...
> -New misc. fix patch
>
> [PATCH 22/37] HID: logitech-dj: make appending of the HID++ ...
> [PATCH 23/37] HID: logitech-dj: add support for Logitech Bluetooth
> -2 new patches adding support for Logitech BT receivers in HID proxy mode
>
> [PATCH 26/37] HID: logitech-hidpp: ignore very-short or empty
> [PATCH 27/37] HID: logitech-hidpp: do not make failure to get the
> [PATCH 28/37] HID: logitech-hidpp: remove double assignment from
> [PATCH 29/37] HID: logitech-hidpp: remove unused
> -4 new patches (misc. fixes / cleanups)
>
> [PATCH 31/37] HID: logitech-hidpp: handle devices attached to
> -Add support for the new 27 MHz lg devices hid group
>
> [PATCH 32/37] HID: logitech-hidpp: do not hardcode very long
> -This fixes logitech-hidpp rejecting the mx5000 keyboard when paired over BT
>
> [PATCH 34/37] HID: logitech-hidpp: make hidpp10_set_register_bit a
> [PATCH 35/37] HID: logitech-hidpp: add support for HID++ 1.0 wheel
> [PATCH 36/37] HID: logitech-hidpp: add support for HID++ 1.0 extra
> [PATCH 37/37] HID: logitech-hidpp: add support for HID++ 1.0
> -Reworked HID++ mouse-wheel and extra-buttons support making it more
>  generic and add HID++ consumer-keys report support
>
>
>
> For reference here is the cover letter of v1 of the series:
>
> Here is a series Benjamin and I have been working on, before this series we
> treat Logitech wireless mice / keyboards connected through a non-unifying
> receiver as generic HID devices, using the generic HID emulation of the
> receiver. This causes several problems:
>
> -We cannot properly support some special keys / buttons on some keyboards /
>  mice since we cannot properly identify / talk to the device behind the recv.
> -We cannot monitor the battery in these devices
>
> This series addresses this by actually enumerating (and talking to) the
> devices behind the receiver, rather then solely relying on the receiver's
> generic HID emulation.
>
> Note this series applies on top of the:
> "[PATCH] HID: force setting drvdata to NULL when removing the driver"
> patch which Benjamin send out 2 days ago.
>
> Regards,
>
> Hans
>



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux