[v2,1/3] HID: logitech-hidpp: Add more debug statements
Commit Message
This should help us figure out some hairy problems with some devices.
Signed-off-by: Bastien Nocera <hadess@hadess.net>
---
Fixed kernel test bot warning:
drivers/hid/hid-logitech-hidpp.c: In function 'hidpp_send_fap_command_sync':
>> drivers/hid/hid-logitech-hidpp.c:343:25: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=]
343 | "Invalid number of parameters passed to command (%d != %ld)\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/hid/hid-logitech-hidpp.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
Comments
On Feb 06 2023, Bastien Nocera wrote:
> This should help us figure out some hairy problems with some devices.
>
> Signed-off-by: Bastien Nocera <hadess@hadess.net>
FWIW, I am currently testing this patch and will probably push it today.
Cheers,
Benjamin
> ---
>
> Fixed kernel test bot warning:
> drivers/hid/hid-logitech-hidpp.c: In function 'hidpp_send_fap_command_sync':
> >> drivers/hid/hid-logitech-hidpp.c:343:25: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=]
> 343 | "Invalid number of parameters passed to command (%d != %ld)\n",
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> drivers/hid/hid-logitech-hidpp.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
> index f44ba7be3cc5..1952d8d3b6b2 100644
> --- a/drivers/hid/hid-logitech-hidpp.c
> +++ b/drivers/hid/hid-logitech-hidpp.c
> @@ -338,8 +338,13 @@ static int hidpp_send_fap_command_sync(struct hidpp_device *hidpp,
> struct hidpp_report *message;
> int ret;
>
> - if (param_count > sizeof(message->fap.params))
> + if (param_count > sizeof(message->fap.params)) {
> + hid_dbg(hidpp->hid_dev,
> + "Invalid number of parameters passed to command (%d != %llu)\n",
> + param_count,
> + (unsigned long long) sizeof(message->fap.params));
> return -EINVAL;
> + }
>
> message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL);
> if (!message)
> @@ -3440,11 +3445,17 @@ static int hi_res_scroll_enable(struct hidpp_device *hidpp)
> ret = hidpp10_enable_scrolling_acceleration(hidpp);
> multiplier = 8;
> }
> - if (ret)
> + if (ret) {
> + hid_dbg(hidpp->hid_dev,
> + "Could not enable hi-res scrolling: %d\n", ret);
> return ret;
> + }
>
> - if (multiplier == 0)
> + if (multiplier == 0) {
> + hid_dbg(hidpp->hid_dev,
> + "Invalid multiplier 0 from device, setting it to 1\n");
> multiplier = 1;
> + }
>
> hidpp->vertical_wheel_counter.wheel_multiplier = multiplier;
> hid_dbg(hidpp->hid_dev, "wheel multiplier = %d\n", multiplier);
> --
> 2.39.1
>
On Mon, 06 Feb 2023 23:12:54 +0100, Bastien Nocera wrote:
> This should help us figure out some hairy problems with some devices.
>
>
Applied to hid/hid.git (for-6.3/logitech), thanks!
[1/3] HID: logitech-hidpp: Add more debug statements
https://git.kernel.org/hid/hid/c/db5167cfaa0a
Cheers,
@@ -338,8 +338,13 @@ static int hidpp_send_fap_command_sync(struct hidpp_device *hidpp,
struct hidpp_report *message;
int ret;
- if (param_count > sizeof(message->fap.params))
+ if (param_count > sizeof(message->fap.params)) {
+ hid_dbg(hidpp->hid_dev,
+ "Invalid number of parameters passed to command (%d != %llu)\n",
+ param_count,
+ (unsigned long long) sizeof(message->fap.params));
return -EINVAL;
+ }
message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL);
if (!message)
@@ -3440,11 +3445,17 @@ static int hi_res_scroll_enable(struct hidpp_device *hidpp)
ret = hidpp10_enable_scrolling_acceleration(hidpp);
multiplier = 8;
}
- if (ret)
+ if (ret) {
+ hid_dbg(hidpp->hid_dev,
+ "Could not enable hi-res scrolling: %d\n", ret);
return ret;
+ }
- if (multiplier == 0)
+ if (multiplier == 0) {
+ hid_dbg(hidpp->hid_dev,
+ "Invalid multiplier 0 from device, setting it to 1\n");
multiplier = 1;
+ }
hidpp->vertical_wheel_counter.wheel_multiplier = multiplier;
hid_dbg(hidpp->hid_dev, "wheel multiplier = %d\n", multiplier);