2020-02-10 08:21:48

by Mikhail Gavrilov

[permalink] [raw]
Subject: [BUG] Kernel log flooded by message "logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid device index:7"

Kernel log flooded by message
logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid
device index:7
This happens when the mouse is idle.
And it started since I begin using the mouse pad with Power Play technology.


Kernel ver: 5.6 pre RC
--
Best Regards,
Mike Gavrilov.


2020-02-10 12:41:29

by Filipe Laíns

[permalink] [raw]
Subject: Re: [BUG] Kernel log flooded by message "logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid device index:7"

On Mon, 2020-02-10 at 13:21 +0500, Mikhail Gavrilov wrote:
> Kernel log flooded by message
> logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid
> device index:7
> This happens when the mouse is idle.
> And it started since I begin using the mouse pad with Power Play
> technology.
>
>
> Kernel ver: 5.6 pre RC
> --
> Best Regards,
> Mike Gavrilov.

Hello Mike,

Yes, the Powerplay mat exports a static HID++ 2.0 device with index 7
to configure the led on the mat. The current code expects devices to
have a maximum index of 6, which is the maximum index of pairable
devices.

I already submitted a patch adding support for the Logitech G Powerplay
mat but it wasn't been upstreamed it. I will attach it in case you want
to try it.

Cheers,
Filipe Laíns

---
Author: Filipe Laíns <[email protected]>
Date: Sun Jan 12 20:15:41 2020 +0000

HID: logitech-dj: add support for the static device in the Powerplay mat/receiver

The Logitech G Powerplay has a lightspeed receiver with a static HID++
device with ID 7 attached to it to. It is used to configure the led on
the mat. For this reason I increased the max number of devices.

Signed-off-by: Filipe Laíns <[email protected]>

diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
index bb50d6e7745b..79294b873057 100644
--- a/drivers/hid/hid-logitech-dj.c
+++ b/drivers/hid/hid-logitech-dj.c
@@ -16,11 +16,11 @@
#include <asm/unaligned.h>
#include "hid-ids.h"

-#define DJ_MAX_PAIRED_DEVICES 6
+#define DJ_MAX_PAIRED_DEVICES 7
#define DJ_MAX_NUMBER_NOTIFS 8
#define DJ_RECEIVER_INDEX 0
#define DJ_DEVICE_INDEX_MIN 1
-#define DJ_DEVICE_INDEX_MAX 6
+#define DJ_DEVICE_INDEX_MAX 7

#define DJREPORT_SHORT_LENGTH 15
#define DJREPORT_LONG_LENGTH 32
@@ -980,6 +980,11 @@ static void logi_hidpp_recv_queue_notif(struct hid_device *hdev,
break;
}

+ /* custom receiver device (eg. powerplay) */
+ if (hidpp_report->device_index == 7) {
+ workitem.reports_supported |= HIDPP;
+ }
+
if (workitem.type == WORKITEM_TYPE_EMPTY) {
hid_warn(hdev,
"unusable device of type %s (0x%02x) connected on slot %d",


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part

2020-02-12 12:53:37

by Mikhail Gavrilov

[permalink] [raw]
Subject: Re: [BUG] Kernel log flooded by message "logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid device index:7"

On Mon, 10 Feb 2020 at 17:38, Filipe Laíns <[email protected]> wrote:
>
> On Mon, 2020-02-10 at 13:21 +0500, Mikhail Gavrilov wrote:
> > Kernel log flooded by message
> > logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid
> > device index:7
> > This happens when the mouse is idle.
> > And it started since I begin using the mouse pad with Power Play
> > technology.
> >
> >
> > Kernel ver: 5.6 pre RC
> > --
> > Best Regards,
> > Mike Gavrilov.
>
> Hello Mike,
>
> Yes, the Powerplay mat exports a static HID++ 2.0 device with index 7
> to configure the led on the mat. The current code expects devices to
> have a maximum index of 6, which is the maximum index of pairable
> devices.
>
> I already submitted a patch adding support for the Logitech G Powerplay
> mat but it wasn't been upstreamed it. I will attach it in case you want
> to try it.
>


Thanks, I tested the patch for a day and "logitech-djreceiver"
messages was not appear anymore and no other regressions are noted.
Why this patch wasn't been upstreamed?

Also would be good if "logitech-djreceiver" provides information for
upower daemon as how did it happening with unifying receiver and my
previous mouse Logitech Zone Touch Mouse T400.

For example:

$ upower --dump
Device: /org/freedesktop/UPower/devices/mouse_hidpp_battery_0
native-path: hidpp_battery_0
model: Zone Touch Mouse T400
serial: 4026-cf-15-61-0d
power supply: no
updated: Sun 22 Dec 2019 02:41:30 PM +05 (89 seconds ago)
has history: yes
has statistics: yes
mouse
present: yes
rechargeable: yes
state: discharging
warning-level: none
battery-level: normal
percentage: 55% (should be ignored)
icon-name: 'battery-low-symbolic'

Device: /org/freedesktop/UPower/devices/DisplayDevice
power supply: no
updated: Sun 22 Dec 2019 10:58:54 AM +05 (13445 seconds ago)
has history: no
has statistics: no
unknown
warning-level: none
icon-name: 'battery-missing-symbolic'

Daemon:
daemon-version: 0.99.11
on-battery: no
lid-is-closed: no
lid-is-present: no
critical-action: HybridSleep

https://user-images.githubusercontent.com/200750/71320201-d8a5ea80-24c9-11ea-9ea9-97100545d294.png

Currently, only sensors show the power charge level, but without
"upower" daemon user-friendly indication not available in DE.

$ sensors
hidpp_battery_0-hid-3-9
Adapter: HID adapter
in0: 4.08 V



--
Best Regards,
Mike Gavrilov.

2020-02-12 13:10:15

by Filipe Laíns

[permalink] [raw]
Subject: Re: [BUG] Kernel log flooded by message "logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event: invalid device index:7"

On Wed, 2020-02-12 at 17:53 +0500, Mikhail Gavrilov wrote:
> On Mon, 10 Feb 2020 at 17:38, Filipe Laíns <[email protected]>
> wrote:
> > On Mon, 2020-02-10 at 13:21 +0500, Mikhail Gavrilov wrote:
> > > Kernel log flooded by message
> > > logitech-djreceiver 0003:046D:C53A.000C: logi_dj_hidpp_event:
> > > invalid
> > > device index:7
> > > This happens when the mouse is idle.
> > > And it started since I begin using the mouse pad with Power Play
> > > technology.
> > >
> > >
> > > Kernel ver: 5.6 pre RC
> > > --
> > > Best Regards,
> > > Mike Gavrilov.
> >
> > Hello Mike,
> >
> > Yes, the Powerplay mat exports a static HID++ 2.0 device with index
> > 7
> > to configure the led on the mat. The current code expects devices
> > to
> > have a maximum index of 6, which is the maximum index of pairable
> > devices.
> >
> > I already submitted a patch adding support for the Logitech G
> > Powerplay
> > mat but it wasn't been upstreamed it. I will attach it in case you
> > want
> > to try it.
> >
>
> Thanks, I tested the patch for a day and "logitech-djreceiver"
> messages was not appear anymore and no other regressions are noted.
> Why this patch wasn't been upstreamed?

Lack of time I guess.

> Also would be good if "logitech-djreceiver" provides information for
> upower daemon as how did it happening with unifying receiver and my
> previous mouse Logitech Zone Touch Mouse T400.
>
> For example:
>
> $ upower --dump
> Device: /org/freedesktop/UPower/devices/mouse_hidpp_battery_0
> native-path: hidpp_battery_0
> model: Zone Touch Mouse T400
> serial: 4026-cf-15-61-0d
> power supply: no
> updated: Sun 22 Dec 2019 02:41:30 PM +05 (89 seconds
> ago)
> has history: yes
> has statistics: yes
> mouse
> present: yes
> rechargeable: yes
> state: discharging
> warning-level: none
> battery-level: normal
> percentage: 55% (should be ignored)
> icon-name: 'battery-low-symbolic'
>
> Device: /org/freedesktop/UPower/devices/DisplayDevice
> power supply: no
> updated: Sun 22 Dec 2019 10:58:54 AM +05 (13445
> seconds ago)
> has history: no
> has statistics: no
> unknown
> warning-level: none
> icon-name: 'battery-missing-symbolic'
>
> Daemon:
> daemon-version: 0.99.11
> on-battery: no
> lid-is-closed: no
> lid-is-present: no
> critical-action: HybridSleep
>
> https://user-images.githubusercontent.com/200750/71320201-d8a5ea80-24c9-11ea-9ea9-97100545d294.png
>
> Currently, only sensors show the power charge level, but without
> "upower" daemon user-friendly indication not available in DE.
>
> $ sensors
> hidpp_battery_0-hid-3-9
> Adapter: HID adapter
> in0: 4.08 V

The new devices only export the battery voltage. We will need to
calculate the charge level with the charging curve. I tried getting in
touch with the upower upstream to figure out exactly what is needed in
upower's side but without luck.

https://gitlab.freedesktop.org/upower/upower/issues/110

Regards,
Filipe Laíns


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part