From patchwork Sun Aug 18 05:56:11 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 2846161 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 671A09F242 for ; Sun, 18 Aug 2013 05:57:17 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7C2B22026C for ; Sun, 18 Aug 2013 05:57:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 867CE20265 for ; Sun, 18 Aug 2013 05:57:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751433Ab3HRF44 (ORCPT ); Sun, 18 Aug 2013 01:56:56 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:39481 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751155Ab3HRF4y (ORCPT ); Sun, 18 Aug 2013 01:56:54 -0400 Received: from dlelxv90.itg.ti.com ([172.17.2.17]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id r7I5uDaE023597; Sun, 18 Aug 2013 00:56:13 -0500 Received: from DLEE71.ent.ti.com (dlee71.ent.ti.com [157.170.170.114]) by dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id r7I5uDrS003406; Sun, 18 Aug 2013 00:56:13 -0500 Received: from dlelxv22.itg.ti.com (172.17.1.197) by DLEE71.ent.ti.com (157.170.170.114) with Microsoft SMTP Server id 14.2.342.3; Sun, 18 Aug 2013 00:56:12 -0500 Received: from [172.24.0.80] (h0-80.vpn.ti.com [172.24.0.80]) by dlelxv22.itg.ti.com (8.13.8/8.13.8) with ESMTP id r7I5uCgm010289; Sun, 18 Aug 2013 00:56:12 -0500 Message-ID: <521061FB.2030504@ti.com> Date: Sun, 18 Aug 2013 00:56:11 -0500 From: Joel Fernandes User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130623 Thunderbird/17.0.7 MIME-Version: 1.0 To: Joe Perches CC: Herbert Xu , "David S. Miller" , Mark Greer , Tony Lindgren , Santosh Shilimkar , Rajendra Nayak , Lokesh Vutla , Linux OMAP List , Linux ARM Kernel List , Linux Kernel Mailing List , Linux Crypto Mailing List Subject: Re: [PATCH v2 02/14] crypto: omap-aes: Add useful debug macros References: <1376793755-30478-1-git-send-email-joelf@ti.com> <1376793755-30478-3-git-send-email-joelf@ti.com> <1376799747.2027.11.camel@joe-AO722> In-Reply-To: <1376799747.2027.11.camel@joe-AO722> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 08/17/2013 11:22 PM, Joe Perches wrote: > On Sat, 2013-08-17 at 21:42 -0500, Joel Fernandes wrote: >> 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(..); > > That's where you use a statement expression macro > > #define omap_aes_read(dd, offset) \ > ({ \ > pr_debug("omap_aes_read("omap_aes_read(" #offset ")\n"); \ > __raw_readl((dd)->iobase + offset); \ > }) > That made things a lot simpler, thanks. Re-spinning just this patch as below: --->8--- From: Joel Fernandes Subject: [PATCH] crypto: omap-aes: Add useful debug macros 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. Using statement expression macros in read path as, Suggested-by: Joe Perches Signed-off-by: Joel Fernandes --- drivers/crypto/omap-aes.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c index ee15b0f..e26d4d4 100644 --- a/drivers/crypto/omap-aes.c +++ b/drivers/crypto/omap-aes.c @@ -13,7 +13,9 @@ * */ -#define pr_fmt(fmt) "%s: " fmt, __func__ +#define pr_fmt(fmt) "%20s: " fmt, __func__ +#define prn(num) pr_debug(#num "=%d\n", num) +#define prx(num) pr_debug(#num "=%x\n", num) #include #include @@ -172,16 +174,36 @@ struct omap_aes_dev { static LIST_HEAD(dev_list); static DEFINE_SPINLOCK(list_lock); +#ifdef DEBUG +#define omap_aes_read(dd, offset) \ +({ \ + int _read_ret; \ + _read_ret = __raw_readl(dd->io_base + offset); \ + pr_debug("omap_aes_read(" #offset "=%#x)= %#x\n", \ + offset, _read_ret); \ + _read_ret; \ +}) +#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=%#x\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)