From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753159AbcAGAGe (ORCPT ); Wed, 6 Jan 2016 19:06:34 -0500 Received: from mail-pa0-f47.google.com ([209.85.220.47]:34969 "EHLO mail-pa0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752971AbcAGAG3 (ORCPT ); Wed, 6 Jan 2016 19:06:29 -0500 Date: Wed, 6 Jan 2016 16:06:26 -0800 From: Brian Norris To: Robert Jarzmik Cc: Ezequiel Garcia , David Woodhouse , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3] mtd: nand: pxa3xx_nand: add register access debug Message-ID: <20160107000626.GS109450@google.com> References: <1439323034-8820-1-git-send-email-robert.jarzmik@free.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1439323034-8820-1-git-send-email-robert.jarzmik@free.fr> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 11, 2015 at 09:57:12PM +0200, Robert Jarzmik wrote: > Add verbose debug for register accesses. This enables easier debugging > by following where and how hardware is stimulated, and how it answers. > > Signed-off-by: Robert Jarzmik > --- > drivers/mtd/nand/pxa3xx_nand.c | 22 +++++++++++++++++----- > 1 file changed, 17 insertions(+), 5 deletions(-) > > diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c > index 1259cc558ce9..ed44bddcc43f 100644 > --- a/drivers/mtd/nand/pxa3xx_nand.c > +++ b/drivers/mtd/nand/pxa3xx_nand.c > @@ -127,11 +127,23 @@ > #define EXT_CMD_TYPE_MONO 0 /* Monolithic read/write */ > > /* macros for registers read/write */ > -#define nand_writel(info, off, val) \ > - writel_relaxed((val), (info)->mmio_base + (off)) > - > -#define nand_readl(info, off) \ > - readl_relaxed((info)->mmio_base + (off)) > +#define nand_writel(info, off, val) \ > + do { \ > + dev_vdbg(&info->pdev->dev, \ > + "%s():%d nand_writel(0x%x, %s)\n", \ > + __func__, __LINE__, (val), #off); \ The stringification of 'off' works for now, but I think that'd be a bit restrictive in the future, if we ever want to (e.g.) do arithmetic to compute the offset, like: nand_writel(info, SOME_REGISTER_MACRO + idx * 4, foo); You might be better off just printing the hex value of the offset. Regards, Brian > + writel_relaxed((val), (info)->mmio_base + (off)); \ > + } while (0) > + > +#define nand_readl(info, off) \ > + ({ \ > + unsigned int _v; \ > + _v = readl_relaxed((info)->mmio_base + (off)); \ > + dev_vdbg(&info->pdev->dev, \ > + "%s():%d nand_readl(%s): 0x%x\n", \ > + __func__, __LINE__, #off, _v); \ > + _v; \ > + }) > > /* error code and state */ > enum { > -- > 2.1.4 >