Message ID | 1652857340-6040-6-git-send-email-quic_c_sbhanu@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | mmc: add error statistics for eMMC and SD card | expand |
On 18/05/22 10:02, Shaik Sajida Bhanu wrote: > Add changes to capture eMMC and SD card errors. > This is useful for debug and testing. > > Signed-off-by: Liangliang Lu <quic_luliang@quicinc.com> > Signed-off-by: Sayali Lokhande <quic_sayalil@quicinc.com> > Signed-off-by: Bao D. Nguyen <quic_nguyenb@quicinc.com> > Signed-off-by: Ram Prakash Gupta <quic_rampraka@quicinc.com> > Signed-off-by: Shaik Sajida Bhanu <quic_c_sbhanu@quicinc.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > drivers/mmc/host/cqhci-core.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/cqhci-core.c b/drivers/mmc/host/cqhci-core.c > index 31f8412..7f25cca 100644 > --- a/drivers/mmc/host/cqhci-core.c > +++ b/drivers/mmc/host/cqhci-core.c > @@ -822,8 +822,15 @@ irqreturn_t cqhci_irq(struct mmc_host *mmc, u32 intmask, int cmd_error, > pr_debug("%s: cqhci: IRQ status: 0x%08x\n", mmc_hostname(mmc), status); > > if ((status & (CQHCI_IS_RED | CQHCI_IS_GCE | CQHCI_IS_ICCE)) || > - cmd_error || data_error) > + cmd_error || data_error) { > + if (status & CQHCI_IS_RED) > + mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_RED); > + if (status & CQHCI_IS_GCE) > + mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_GCE); > + if (status & CQHCI_IS_ICCE) > + mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_ICCE); > cqhci_error_irq(mmc, status, cmd_error, data_error); > + } > > if (status & CQHCI_IS_TCC) { > /* read TCN and complete the request */
diff --git a/drivers/mmc/host/cqhci-core.c b/drivers/mmc/host/cqhci-core.c index 31f8412..7f25cca 100644 --- a/drivers/mmc/host/cqhci-core.c +++ b/drivers/mmc/host/cqhci-core.c @@ -822,8 +822,15 @@ irqreturn_t cqhci_irq(struct mmc_host *mmc, u32 intmask, int cmd_error, pr_debug("%s: cqhci: IRQ status: 0x%08x\n", mmc_hostname(mmc), status); if ((status & (CQHCI_IS_RED | CQHCI_IS_GCE | CQHCI_IS_ICCE)) || - cmd_error || data_error) + cmd_error || data_error) { + if (status & CQHCI_IS_RED) + mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_RED); + if (status & CQHCI_IS_GCE) + mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_GCE); + if (status & CQHCI_IS_ICCE) + mmc_debugfs_err_stats_inc(mmc, MMC_ERR_CMDQ_ICCE); cqhci_error_irq(mmc, status, cmd_error, data_error); + } if (status & CQHCI_IS_TCC) { /* read TCN and complete the request */