linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joel Fernandes <joelf@ti.com>
To: Herbert Xu <herbert@gondor.hengli.com.au>,
	"David S. Miller" <davem@davemloft.net>,
	Mark Greer <mgreer@animalcreek.com>,
	Tony Lindgren <tony@atomide.com>,
	Santosh Shilimkar <santosh.shilimkar@ti.com>,
	Rajendra Nayak <rnayak@ti.com>, Lokesh Vutla <lokeshvutla@ti.com>
Cc: Linux OMAP List <linux-omap@vger.kernel.org>,
	Linux ARM Kernel List <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	Joel Fernandes <joelf@ti.com>
Subject: [PATCH v2 02/14] crypto: omap-aes: Add useful debug macros
Date: Sat, 17 Aug 2013 21:42:23 -0500	[thread overview]
Message-ID: <1376793755-30478-3-git-send-email-joelf@ti.com> (raw)
In-Reply-To: <1376793755-30478-1-git-send-email-joelf@ti.com>

When DEBUG is enabled, these macros can be used to print variables in integer
and hex format, and clearly display which registers, offsets and values are
being read/written , including printing the names of the offsets and their values.

Note:
This patch results in a checkpatch error that cannot be fixed.
ERROR: Macros with multiple statements should be enclosed in a do - while loop
+#define omap_aes_read(dd, offset)                                      \
+       __raw_readl(dd->io_base + offset);                              \
+       pr_debug("omap_aes_read(" #offset ")\n");

Using do-while loop will break a lot of code such as:
ret = omap_aes_read(..);

On the other hand, not using a do-while loop will only result in a spurious
debug print message when DEBUG is enabled, all other issues would be caught at
compile time if any. As such, there is no code in the driver as of now that
requires a do-while loop, but there is code that will break if a do-while loop
is used in the macro so we ignore the checkpatch error in this case.

Signed-off-by: Joel Fernandes <joelf@ti.com>
---
 drivers/crypto/omap-aes.c |   22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index ee15b0f..26b802b 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -13,7 +13,8 @@
  *
  */
 
-#define pr_fmt(fmt) "%s: " fmt, __func__
+#define prn(num) pr_debug(#num "=%d\n", num)
+#define prx(num) pr_debug(#num "=%x\n", num)
 
 #include <linux/err.h>
 #include <linux/module.h>
@@ -172,16 +173,35 @@ struct omap_aes_dev {
 static LIST_HEAD(dev_list);
 static DEFINE_SPINLOCK(list_lock);
 
+#ifdef DEBUG
+/*
+ * Note: In DEBUG mode, when using conditionals, omap_aes_read _must_
+ * be surrounded by braces otherwise you may see spurious prints.
+ */
+#define omap_aes_read(dd, offset)					\
+	__raw_readl(dd->io_base + offset);				\
+	pr_debug("omap_aes_read(" #offset ")\n");
+#else
 static inline u32 omap_aes_read(struct omap_aes_dev *dd, u32 offset)
 {
 	return __raw_readl(dd->io_base + offset);
 }
+#endif
 
+#ifdef DEBUG
+#define omap_aes_write(dd, offset, value)				\
+	do {								\
+		pr_debug("omap_aes_write(" #offset "=%x) value=%d\n",	\
+			 offset, value);				\
+		__raw_writel(value, dd->io_base + offset);		\
+	} while (0)
+#else
 static inline void omap_aes_write(struct omap_aes_dev *dd, u32 offset,
 				  u32 value)
 {
 	__raw_writel(value, dd->io_base + offset);
 }
+#endif
 
 static inline void omap_aes_write_mask(struct omap_aes_dev *dd, u32 offset,
 					u32 value, u32 mask)
-- 
1.7.9.5

  parent reply	other threads:[~2013-08-18  2:42 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-18  2:42 [PATCH v2 00/14] crypto: omap-aes: Improve DMA, add PIO mode and support for AM437x Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 01/14] crypto: scatterwalk: Add support for calculating number of SG elements Joel Fernandes
2013-08-18  2:42 ` Joel Fernandes [this message]
2013-08-18  4:22   ` [PATCH v2 02/14] crypto: omap-aes: Add useful debug macros Joe Perches
2013-08-18  5:56     ` Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 03/14] crypto: omap-aes: Populate number of SG elements Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 04/14] crypto: omap-aes: Simplify DMA usage by using direct SGs Joel Fernandes
2013-08-20 12:57   ` Lokesh Vutla
2013-08-21  0:54     ` Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 05/14] crypto: omap-aes: Sync SG before DMA operation Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 06/14] crypto: omap-aes: Remove previously used intermediate buffers Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 07/14] crypto: omap-aes: Add IRQ info and helper macros Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 08/14] crypto: omap-aes: PIO mode: Add IRQ handler and walk SGs Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 09/14] crypto: omap-aes: PIO mode: platform data for OMAP4/AM437x and trigger Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 10/14] crypto: omap-aes: Switch to PIO mode during probe Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 11/14] crypto: omap-aes: Add support for cases of unaligned lengths Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 12/14] crypto: omap-aes: Convert kzalloc to devm_kzalloc Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 13/14] crypto: omap-aes: Convert request_irq to devm_request_irq Joel Fernandes
2013-08-18  2:42 ` [PATCH v2 14/14] crypto: omap-aes: Kconfig: Add build support for AM437x Joel Fernandes
2013-08-21 11:50 ` [PATCH v2 00/14] crypto: omap-aes: Improve DMA, add PIO mode and " Herbert Xu

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=1376793755-30478-3-git-send-email-joelf@ti.com \
    --to=joelf@ti.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.hengli.com.au \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=mgreer@animalcreek.com \
    --cc=rnayak@ti.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=tony@atomide.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).