diff --git a/include/common.h b/include/common.h index 699d971..46efc8b 100644 --- a/include/common.h +++ b/include/common.h @@ -33,13 +33,21 @@ #include #include -#ifdef DEBUG -#define debug(fmt,args...) printf (fmt ,##args) -#define debugX(level,fmt,args...) if (DEBUG>=level) printf(fmt,##args); +#define pr_info(fmt, arg...) printf(fmt, ##arg) +#define pr_notice(fmt, arg...) printf(fmt, ##arg) +#define pr_err(fmt, arg...) printf(fmt, ##arg) +#define pr_warning(fmt, arg...) printf(fmt, ##arg) +#define pr_crit(fmt, arg...) printf(fmt, ##arg) +#define pr_alert(fmt, arg...) printf(fmt, ##arg) +#define pr_emerg(fmt, arg...) printf(fmt, ##arg) + +#ifdef DEBUG +#define pr_debug(fmt, arg...) printf(UBOOT_DEBUG, fmt, ##arg) #else -#define debug(fmt,args...) -#define debugX(level,fmt,args...) -#endif /* DEBUG */ +#define pr_debug(fmt, arg...) do {} while(0) +#endif + +#define debug(fmt, arg...) pr_debug(fmt, ##arg) #define BUG() do { \ printf("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \ diff --git a/include/driver.h b/include/driver.h index d4e7c13..45097a3 100644 --- a/include/driver.h +++ b/include/driver.h @@ -263,5 +263,35 @@ return 0; } +/* debugging and troubleshooting/diagnostic helpers. */ +extern const char *dev_id(const struct device_d *dev); + +#define dev_printf(dev, format, arg...) \ + printf("%s@%s: " format , dev->name , \ + dev_id(dev) , ## arg) + +#define dev_emerg(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_alert(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_crit(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_err(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_warn(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_notice(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#define dev_info(dev, format, arg...) \ + dev_printf(dev , format , ## arg) + +#if defined(DEBUG) +#define dev_dbg(dev, format, arg...) \ + dev_printf(dev , format , ## arg) +#else +#define dev_dbg(dev, format, arg...) \ + ({ if (0) dev_printf(dev, format, ##arg); 0; }) +#endif + #endif /* DRIVER_H */ diff --git a/include/linux/uboot-wrapper.h b/include/linux/uboot-wrapper.h index 52aaa04..9722d51 100644 --- a/include/linux/uboot-wrapper.h +++ b/include/linux/uboot-wrapper.h @@ -19,7 +19,6 @@ #define KERN_DEBUG "" /* debug-level messages */ #define printk printf -#define dev_dbg(x...) #define __init @@ -27,6 +26,4 @@ #define MODULE_DESCRIPTION(x) #define MODULE_LICENSE(x) -#define pr_info printf - #endif /* __INCLUDE_LINUX_U_BOOT_WRAPPER_H */ diff --git a/lib/driver.c b/lib/driver.c index eea2c74..5aa643d 100644 --- a/lib/driver.c +++ b/lib/driver.c @@ -314,6 +314,18 @@ return 0; } +const char *dev_id(const struct device_d *dev) +{ + static char buf[sizeof(unsigned long) * 2]; + + if (strlen(dev->id)) + return dev->id; + + sprintf(buf, "0x%08x", dev->map_base); + + return buf; +} + #ifdef CONFIG_CMD_DEVINFO static int do_devinfo ( cmd_tbl_t *cmdtp, int argc, char *argv[])