2023-07-03 06:17:12

by Riwen Lu

[permalink] [raw]
Subject: [PATCH v1] HID: i2c-hid: use print_hex_dump_debug to print report descriptor

From: Riwen Lu <[email protected]>

The format '%*ph' print up to 64 bytes long as a hex string with ' '
sepatator. Usually the size of report descriptor is larger than 64
bytes, so consider using print_hex_dump_debug to print out all of it for
better debugging.

Signed-off-by: Riwen Lu <[email protected]>
---
drivers/hid/i2c-hid/i2c-hid-core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index efbba0465eef..8e97fc01c852 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -772,7 +772,9 @@ static int i2c_hid_parse(struct hid_device *hid)
}
}

- i2c_hid_dbg(ihid, "Report Descriptor: %*ph\n", rsize, rdesc);
+ i2c_hid_dbg(ihid, "Report Descriptor\n");
+ print_hex_dump_debug(" ", DUMP_PREFIX_OFFSET, 16, 1,
+ rdesc, rsize, false);

ret = hid_parse_report(hid, rdesc, rsize);
if (!use_override)
--
2.25.1



2023-08-14 09:57:19

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH v1] HID: i2c-hid: use print_hex_dump_debug to print report descriptor

On Mon, 3 Jul 2023, Riwen Lu wrote:

> From: Riwen Lu <[email protected]>
>
> The format '%*ph' print up to 64 bytes long as a hex string with ' '
> sepatator. Usually the size of report descriptor is larger than 64
> bytes, so consider using print_hex_dump_debug to print out all of it for
> better debugging.
>
> Signed-off-by: Riwen Lu <[email protected]>
> ---
> drivers/hid/i2c-hid/i2c-hid-core.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
> index efbba0465eef..8e97fc01c852 100644
> --- a/drivers/hid/i2c-hid/i2c-hid-core.c
> +++ b/drivers/hid/i2c-hid/i2c-hid-core.c
> @@ -772,7 +772,9 @@ static int i2c_hid_parse(struct hid_device *hid)
> }
> }
>
> - i2c_hid_dbg(ihid, "Report Descriptor: %*ph\n", rsize, rdesc);
> + i2c_hid_dbg(ihid, "Report Descriptor\n");
> + print_hex_dump_debug(" ", DUMP_PREFIX_OFFSET, 16, 1,
> + rdesc, rsize, false);

But that would dump it unconditionally, while i2c_hid_dbg() is
conditional.

--
Jiri Kosina
SUSE Labs