Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: logitech-hidpp: Do not flood kernel log

Since commit 680ee411a98e ("HID: logitech-hidpp: Fix connect event race")
the following messages appear in the kernel log from time to time:

logitech-hidpp-device 0003:046D:408A.0005: HID++ 4.5 device connected.
logitech-hidpp-device 0003:046D:408A.0005: HID++ 4.5 device connected.
logitech-hidpp-device 0003:046D:4051.0006: Disconnected
logitech-hidpp-device 0003:046D:408A.0005: Disconnected

As discussed, print the first per-device "device connected" message
at info level, demoting subsequent messages to debug level. Also,
demote the "Disconnected message" to debug level unconditionally.

Link: https://lore.kernel.org/lkml/3277085.44csPzL39Z@natalenko.name/
Signed-off-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>

authored by

Oleksandr Natalenko and committed by
Jiri Kosina
411a20db 764ad6b0

+10 -3
+10 -3
drivers/hid/hid-logitech-hidpp.c
··· 203 203 struct hidpp_scroll_counter vertical_wheel_counter; 204 204 205 205 u8 wireless_feature_index; 206 + 207 + bool connected_once; 206 208 }; 207 209 208 210 /* HID++ 1.0 error codes */ ··· 990 988 hidpp->protocol_minor = response.rap.params[1]; 991 989 992 990 print_version: 993 - hid_info(hidpp->hid_dev, "HID++ %u.%u device connected.\n", 994 - hidpp->protocol_major, hidpp->protocol_minor); 991 + if (!hidpp->connected_once) { 992 + hid_info(hidpp->hid_dev, "HID++ %u.%u device connected.\n", 993 + hidpp->protocol_major, hidpp->protocol_minor); 994 + hidpp->connected_once = true; 995 + } else 996 + hid_dbg(hidpp->hid_dev, "HID++ %u.%u device connected.\n", 997 + hidpp->protocol_major, hidpp->protocol_minor); 995 998 return 0; 996 999 } 997 1000 ··· 4191 4184 /* Get device version to check if it is connected */ 4192 4185 ret = hidpp_root_get_protocol_version(hidpp); 4193 4186 if (ret) { 4194 - hid_info(hidpp->hid_dev, "Disconnected\n"); 4187 + hid_dbg(hidpp->hid_dev, "Disconnected\n"); 4195 4188 if (hidpp->battery.ps) { 4196 4189 hidpp->battery.online = false; 4197 4190 hidpp->battery.status = POWER_SUPPLY_STATUS_UNKNOWN;