diff options
author | Loic Poulain <loic.poulain@linaro.org> | 2020-12-02 17:37:47 +0100 |
---|---|---|
committer | Loic Poulain <loic.poulain@linaro.org> | 2021-01-11 11:12:55 +0100 |
commit | 3dd53508efaf9002605bbf87150830572c0a1992 (patch) | |
tree | bc4809301a0e3f8ddd4ed61ef0398795fd48dc39 | |
parent | 399ce0c42cb073dd78c5ef01e755c2707325a243 (diff) |
mhi: core: Add MHI register dump helper
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
-rw-r--r-- | drivers/bus/mhi/core/internal.h | 7 | ||||
-rw-r--r-- | drivers/bus/mhi/core/main.c | 28 |
2 files changed, 35 insertions, 0 deletions
diff --git a/drivers/bus/mhi/core/internal.h b/drivers/bus/mhi/core/internal.h index 8fd70ebab874..1a17c9a5a740 100644 --- a/drivers/bus/mhi/core/internal.h +++ b/drivers/bus/mhi/core/internal.h @@ -714,5 +714,12 @@ void mhi_unmap_single_no_bb(struct mhi_controller *mhi_cntrl, struct mhi_buf_info *buf_info); void mhi_unmap_single_use_bb(struct mhi_controller *mhi_cntrl, struct mhi_buf_info *buf_info); +void mhi_dumpregs(struct mhi_controller *mhi_cntrl); + +#define mhi_cntrlname(mhi_cntrl) \ + (mhi_cntrl)->mhi_dev ? dev_name(&(mhi_cntrl)->mhi_dev->dev) : "(null)" + +#define MHI_DUMP(f, x...) \ + pr_err("%s: " f, mhi_cntrlname(mhi_cntrl), ## x) #endif /* _MHI_INT_H */ diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c index 7250b78e5b4c..effe94f18db8 100644 --- a/drivers/bus/mhi/core/main.c +++ b/drivers/bus/mhi/core/main.c @@ -1572,3 +1572,31 @@ int mhi_poll(struct mhi_device *mhi_dev, u32 budget) return ret; } EXPORT_SYMBOL_GPL(mhi_poll); + +void mhi_dumpregs(struct mhi_controller *mhi_cntrl) +{ + void __iomem *base = mhi_cntrl->regs; + u32 val; + + MHI_DUMP("====== MHI REGISTER DUMP ======\n"); + mhi_read_reg(mhi_cntrl, base, MHIREGLEN, &val); + MHI_DUMP("MHIREGLEN: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, MHIVER, &val); + MHI_DUMP("MHIVER: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, MHICFG, &val); + MHI_DUMP("MHICFG: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, CHDBOFF, &val); + MHI_DUMP("CHDBOFF: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, ERDBOFF, &val); + MHI_DUMP("ERDBOFF: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, BHIOFF, &val); + MHI_DUMP("BHIOFF: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, BHIEOFF, &val); + MHI_DUMP("BHIEOFF: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, DEBUGOFF, &val); + MHI_DUMP("DEBUGOFF: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, MHICTRL, &val); + MHI_DUMP("MHICTRL: 0x%08x\n", val); + mhi_read_reg(mhi_cntrl, base, MHISTATUS, &val); + MHI_DUMP("MHISTATUS: 0x%08x\n", val); +} |