All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 8/8] dm: define dev_*() log functions in DM header
Date: Sat, 16 Sep 2017 14:10:46 +0900	[thread overview]
Message-ID: <1505538646-19191-9-git-send-email-yamada.masahiro@socionext.com> (raw)
In-Reply-To: <1505538646-19191-1-git-send-email-yamada.masahiro@socionext.com>

Many drivers use dev_err, dev_info, etc. for logging.  Currently,
we are relying on <linux/compat.h>, but I guess the best home is
<dm/device.h>, taking into account that Linux defines them in
<linux/device.h>.

For now, I am keeping the ones in <linux/compat.h> because lots of
Linux-originated code uses dev_*() just for the purpose of syncing,
but the first argument is not struct udevice, so we need to ignore
it.  Once this issue is ironed out, it would be possible to prefix
log messages with a device name that emitted it, like Linux.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2:
  - newly added

 include/dm/device.h    | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/compat.h | 17 ++++++++++++
 2 files changed, 89 insertions(+)

diff --git a/include/dm/device.h b/include/dm/device.h
index 4866f7c0028b..cce60b7ed3fd 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -18,6 +18,7 @@
 #include <linux/compat.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
+#include <linux/printk.h>
 
 struct driver_info;
 
@@ -879,4 +880,75 @@ static inline void devm_kfree(struct udevice *dev, void *ptr)
 
 #endif /* ! CONFIG_DEVRES */
 
+/*
+ * REVISIT:
+ * remove the following after resolving conflicts with <linux/compat.h>
+ */
+#ifdef dev_dbg
+#undef dev_dbg
+#endif
+#ifdef dev_vdbg
+#undef dev_vdbg
+#endif
+#ifdef dev_info
+#undef dev_info
+#endif
+#ifdef dev_err
+#undef dev_err
+#endif
+#ifdef dev_warn
+#undef dev_warn
+#endif
+
+/*
+ * REVISIT:
+ * print device name like Linux
+ */
+#define dev_printk(dev, fmt, ...)				\
+({								\
+	printk(fmt, ##__VA_ARGS__);				\
+})
+
+#define __dev_printk(level, dev, fmt, ...)			\
+({								\
+	if (level < CONFIG_LOGLEVEL)				\
+		dev_printk(dev, fmt, ##__VA_ARGS__);		\
+})
+
+#define dev_emerge(dev, fmt, ...) \
+	__dev_printk(0, dev, fmt, ##__VA_ARGS__)
+#define dev_alert(dev, fmt, ...) \
+	__dev_printk(1, dev, fmt, ##__VA_ARGS__)
+#define dev_crit(dev, fmt, ...) \
+	__dev_printk(2, dev, fmt, ##__VA_ARGS__)
+#define dev_err(dev, fmt, ...) \
+	__dev_printk(3, dev, fmt, ##__VA_ARGS__)
+#define dev_warn(dev, fmt, ...) \
+	__dev_printk(4, dev, fmt, ##__VA_ARGS__)
+#define dev_notice(dev, fmt, ...) \
+	__dev_printk(5, dev, fmt, ##__VA_ARGS__)
+#define dev_info(dev, fmt, ...) \
+	__dev_printk(6, dev, fmt, ##__VA_ARGS__)
+
+#ifdef DEBUG
+#define dev_dbg(dev, fmt, ...) \
+	__dev_printk(7, dev, fmt, ##__VA_ARGS__)
+#else
+#define dev_dbg(dev, fmt, ...)					\
+({								\
+	if (0)							\
+		__dev_printk(7, dev, fmt, ##__VA_ARGS__);	\
+})
+#endif
+
+#ifdef VERBOSE_DEBUG
+#define dev_vdbg	dev_dbg
+#else
+#define dev_vdbg(dev, fmt, ...)					\
+({								\
+	if (0)							\
+		__dev_printk(7, dev, fmt, ##__VA_ARGS__);	\
+})
+#endif
+
 #endif
diff --git a/include/linux/compat.h b/include/linux/compat.h
index 1b3f089687e4..8711fe2b48c4 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -15,6 +15,23 @@ struct p_current{
 
 extern struct p_current *current;
 
+/* avoid conflict with <dm/device.h> */
+#ifdef dev_dbg
+#undef dev_dbg
+#endif
+#ifdef dev_vdbg
+#undef dev_vdbg
+#endif
+#ifdef dev_info
+#undef dev_info
+#endif
+#ifdef dev_err
+#undef dev_err
+#endif
+#ifdef dev_warn
+#undef dev_warn
+#endif
+
 #define dev_dbg(dev, fmt, args...)		\
 	debug(fmt, ##args)
 #define dev_vdbg(dev, fmt, args...)		\
-- 
2.7.4

  parent reply	other threads:[~2017-09-16  5:10 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-16  5:10 [U-Boot] [PATCH v2 0/8] Sync and consolidate Linux-derived printk, BUILD_BUG, BUG, WARN, etc Masahiro Yamada
2017-09-16  5:10 ` [U-Boot] [PATCH v2 1/8] stdio.h: move printf() stuff from <common.h> to <stdio.h> Masahiro Yamada
2017-10-05 21:51   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 2/8] printk: collect printk stuff into <linux/printk.h> with loglevel support Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 3/8] treewide: replace with error() with pr_err() Masahiro Yamada
2017-09-25  2:15   ` Simon Glass
2017-09-28  6:11   ` Masahiro Yamada
2017-09-28 12:43     ` Tom Rini
2017-09-28 12:56       ` Masahiro Yamada
2017-09-28 13:11         ` Tom Rini
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 4/8] common.h: remove error() Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot,v2,4/8] " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 5/8] vsprintf.h: include <linux/types.h> Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot,v2,5/8] " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 6/8] bug.h: sync BUILD_BUG stuff with Linux 4.13 Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` [U-Boot] [PATCH v2 7/8] bug.h: move runtime BUG/WARN macros into <linux/bug.h> Masahiro Yamada
2017-10-05 21:52   ` [U-Boot] [U-Boot, v2, " Tom Rini
2017-09-16  5:10 ` Masahiro Yamada [this message]
2017-09-25  2:15   ` [U-Boot] [PATCH v2 8/8] dm: define dev_*() log functions in DM header Simon Glass
2017-09-26  3:00     ` Masahiro Yamada
2017-10-04  5:15 ` [U-Boot] [PATCH v2 0/8] Sync and consolidate Linux-derived printk, BUILD_BUG, BUG, WARN, etc Masahiro Yamada
2017-10-05  3:06   ` Tom Rini
2017-10-05  3:20     ` Masahiro Yamada
2017-10-05 11:58       ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1505538646-19191-9-git-send-email-yamada.masahiro@socionext.com \
    --to=yamada.masahiro@socionext.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.