While we have puthexc_ll() for PBL use, for quick debugging or for debug prints with PBL_CONSOLE enabled, print_hex_dump_bytes() can come in handy. Build it for optional use in PBL as well. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- lib/Makefile | 2 +- lib/hexdump.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/Makefile b/lib/Makefile index 2308117fbdab..4717b8aec364 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -61,7 +61,7 @@ obj-y += wchar.o obj-y += libfile.o obj-y += bitmap.o obj-y += gcd.o -obj-y += hexdump.o +obj-pbl-y += hexdump.o obj-$(CONFIG_FONTS) += fonts/ obj-$(CONFIG_BAREBOX_LOGO) += logo/ obj-y += reed_solomon/ diff --git a/lib/hexdump.c b/lib/hexdump.c index 033e1d28d171..a71474a55348 100644 --- a/lib/hexdump.c +++ b/lib/hexdump.c @@ -10,6 +10,7 @@ #include <linux/log2.h> #include <linux/printk.h> #include <asm/unaligned.h> +#include <pbl.h> const char hex_asc[] = "0123456789abcdef"; EXPORT_SYMBOL(hex_asc); @@ -243,9 +244,13 @@ void dev_print_hex_dump(struct device_d *dev, const char *level, const u8 *ptr = buf; int i, linelen, remaining = len; unsigned char linebuf[32 * 3 + 2 + 32 + 1]; - char *name; + char *name = ""; - name = basprintf("%s%s", dev ? dev_name(dev) : "", dev ? ": " : ""); + if (IN_PBL) + dev = NULL; + + if (dev) + name = basprintf("%s: ", dev_name(dev)); if (rowsize != 16 && rowsize != 32) rowsize = 16; @@ -273,6 +278,7 @@ void dev_print_hex_dump(struct device_d *dev, const char *level, } } - free(name); + if (dev) + free(name); } EXPORT_SYMBOL(dev_print_hex_dump); -- 2.30.2