diff mbox series

[RFC,V3,10/21] mmc: sdhci: UHS-II support, dump UHS-II registers

Message ID 20200710111034.29456-1-benchuanggli@gmail.com
State New
Headers show
Series None | expand

Commit Message

Ben Chuang July 10, 2020, 11:10 a.m. UTC
From: AKASHI Takahiro <takahiro.akashi@linaro.org>


Dump UHS-II specific registers, if available, in sdhci_dumpregs()
for informative/debugging use.

Signed-off-by: Ben Chuang <ben.chuang@genesyslogic.com.tw>

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>

---
 drivers/mmc/host/sdhci.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

-- 
2.27.0

Comments

Adrian Hunter Aug. 21, 2020, 2:04 p.m. UTC | #1
On 10/07/20 2:10 pm, Ben Chuang wrote:
> From: AKASHI Takahiro <takahiro.akashi@linaro.org>

> 

> Dump UHS-II specific registers, if available, in sdhci_dumpregs()

> for informative/debugging use.

> 

> Signed-off-by: Ben Chuang <ben.chuang@genesyslogic.com.tw>

> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>

> ---

>  drivers/mmc/host/sdhci.c | 24 ++++++++++++++++++++++++

>  1 file changed, 24 insertions(+)

> 

> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c

> index 37b1158c1c0c..c2f6923d296c 100644

> --- a/drivers/mmc/host/sdhci.c

> +++ b/drivers/mmc/host/sdhci.c

> @@ -111,6 +111,30 @@ void sdhci_dumpregs(struct sdhci_host *host)

>  		}

>  	}

>  

> +	if (IS_ENABLED(CONFIG_MMC_SDHCI_UHS2) &&

> +	    host->mmc && host->mmc->flags & MMC_UHS2_SUPPORT) {

> +		SDHCI_DUMP("==================== UHS2 ==================\n");

> +		SDHCI_DUMP("Blk Size:  0x%08x | Blk Cnt:  0x%08x\n",

> +			   sdhci_readw(host, SDHCI_UHS2_BLOCK_SIZE),

> +			   sdhci_readl(host, SDHCI_UHS2_BLOCK_COUNT));

> +		SDHCI_DUMP("Cmd:       0x%08x | Trn mode: 0x%08x\n",

> +			   sdhci_readw(host, SDHCI_UHS2_COMMAND),

> +			   sdhci_readw(host, SDHCI_UHS2_TRANS_MODE));

> +		SDHCI_DUMP("Int Stat:  0x%08x | Dev Sel : 0x%08x\n",

> +			   sdhci_readw(host, SDHCI_UHS2_DEV_INT_STATUS),

> +			   sdhci_readb(host, SDHCI_UHS2_DEV_SELECT));

> +		SDHCI_DUMP("Dev Int Code:  0x%08x\n",

> +			   sdhci_readb(host, SDHCI_UHS2_DEV_INT_CODE));

> +		SDHCI_DUMP("Reset:     0x%08x | Timer:    0x%08x\n",

> +			   sdhci_readw(host, SDHCI_UHS2_SW_RESET),

> +			   sdhci_readw(host, SDHCI_UHS2_TIMER_CTRL));

> +		SDHCI_DUMP("ErrInt:    0x%08x | ErrIntEn: 0x%08x\n",

> +			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_STATUS),

> +			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_STATUS_EN));

> +		SDHCI_DUMP("ErrSigEn:  0x%08x\n",

> +			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_SIG_EN));

> +	}

> +


Let's make this a host op instead ie.

	if (host->ops->dump_uhs2_regs)
		host->ops->dump_uhs2_regs(host);

>  	if (host->ops->dump_vendor_regs)

>  		host->ops->dump_vendor_regs(host);

>  

>
AKASHI Takahiro Sept. 15, 2020, 6:49 a.m. UTC | #2
On Fri, Aug 21, 2020 at 05:04:54PM +0300, Adrian Hunter wrote:
> On 10/07/20 2:10 pm, Ben Chuang wrote:
> > From: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > 
> > Dump UHS-II specific registers, if available, in sdhci_dumpregs()
> > for informative/debugging use.
> > 
> > Signed-off-by: Ben Chuang <ben.chuang@genesyslogic.com.tw>
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > ---
> >  drivers/mmc/host/sdhci.c | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> > index 37b1158c1c0c..c2f6923d296c 100644
> > --- a/drivers/mmc/host/sdhci.c
> > +++ b/drivers/mmc/host/sdhci.c
> > @@ -111,6 +111,30 @@ void sdhci_dumpregs(struct sdhci_host *host)
> >  		}
> >  	}
> >  
> > +	if (IS_ENABLED(CONFIG_MMC_SDHCI_UHS2) &&
> > +	    host->mmc && host->mmc->flags & MMC_UHS2_SUPPORT) {
> > +		SDHCI_DUMP("==================== UHS2 ==================\n");
> > +		SDHCI_DUMP("Blk Size:  0x%08x | Blk Cnt:  0x%08x\n",
> > +			   sdhci_readw(host, SDHCI_UHS2_BLOCK_SIZE),
> > +			   sdhci_readl(host, SDHCI_UHS2_BLOCK_COUNT));
> > +		SDHCI_DUMP("Cmd:       0x%08x | Trn mode: 0x%08x\n",
> > +			   sdhci_readw(host, SDHCI_UHS2_COMMAND),
> > +			   sdhci_readw(host, SDHCI_UHS2_TRANS_MODE));
> > +		SDHCI_DUMP("Int Stat:  0x%08x | Dev Sel : 0x%08x\n",
> > +			   sdhci_readw(host, SDHCI_UHS2_DEV_INT_STATUS),
> > +			   sdhci_readb(host, SDHCI_UHS2_DEV_SELECT));
> > +		SDHCI_DUMP("Dev Int Code:  0x%08x\n",
> > +			   sdhci_readb(host, SDHCI_UHS2_DEV_INT_CODE));
> > +		SDHCI_DUMP("Reset:     0x%08x | Timer:    0x%08x\n",
> > +			   sdhci_readw(host, SDHCI_UHS2_SW_RESET),
> > +			   sdhci_readw(host, SDHCI_UHS2_TIMER_CTRL));
> > +		SDHCI_DUMP("ErrInt:    0x%08x | ErrIntEn: 0x%08x\n",
> > +			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_STATUS),
> > +			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_STATUS_EN));
> > +		SDHCI_DUMP("ErrSigEn:  0x%08x\n",
> > +			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_SIG_EN));
> > +	}
> > +
> 
> Let's make this a host op instead ie.
> 
> 	if (host->ops->dump_uhs2_regs)
> 		host->ops->dump_uhs2_regs(host);

Sure.

-Takahiro Akashi

> >  	if (host->ops->dump_vendor_regs)
> >  		host->ops->dump_vendor_regs(host);
> >  
> > 
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 37b1158c1c0c..c2f6923d296c 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -111,6 +111,30 @@  void sdhci_dumpregs(struct sdhci_host *host)
 		}
 	}
 
+	if (IS_ENABLED(CONFIG_MMC_SDHCI_UHS2) &&
+	    host->mmc && host->mmc->flags & MMC_UHS2_SUPPORT) {
+		SDHCI_DUMP("==================== UHS2 ==================\n");
+		SDHCI_DUMP("Blk Size:  0x%08x | Blk Cnt:  0x%08x\n",
+			   sdhci_readw(host, SDHCI_UHS2_BLOCK_SIZE),
+			   sdhci_readl(host, SDHCI_UHS2_BLOCK_COUNT));
+		SDHCI_DUMP("Cmd:       0x%08x | Trn mode: 0x%08x\n",
+			   sdhci_readw(host, SDHCI_UHS2_COMMAND),
+			   sdhci_readw(host, SDHCI_UHS2_TRANS_MODE));
+		SDHCI_DUMP("Int Stat:  0x%08x | Dev Sel : 0x%08x\n",
+			   sdhci_readw(host, SDHCI_UHS2_DEV_INT_STATUS),
+			   sdhci_readb(host, SDHCI_UHS2_DEV_SELECT));
+		SDHCI_DUMP("Dev Int Code:  0x%08x\n",
+			   sdhci_readb(host, SDHCI_UHS2_DEV_INT_CODE));
+		SDHCI_DUMP("Reset:     0x%08x | Timer:    0x%08x\n",
+			   sdhci_readw(host, SDHCI_UHS2_SW_RESET),
+			   sdhci_readw(host, SDHCI_UHS2_TIMER_CTRL));
+		SDHCI_DUMP("ErrInt:    0x%08x | ErrIntEn: 0x%08x\n",
+			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_STATUS),
+			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_STATUS_EN));
+		SDHCI_DUMP("ErrSigEn:  0x%08x\n",
+			   sdhci_readl(host, SDHCI_UHS2_ERR_INT_SIG_EN));
+	}
+
 	if (host->ops->dump_vendor_regs)
 		host->ops->dump_vendor_regs(host);