diff options
author | Robert Lee <lerobert@google.com> | 2022-09-08 05:50:05 +0000 |
---|---|---|
committer | Robert Lee <lerobert@google.com> | 2022-09-22 03:31:44 +0000 |
commit | 5872bab537238c1cbf537c1023123f5375542c03 (patch) | |
tree | f910648d06c19035a27990f6f618c87133a70239 | |
parent | b44789df8039e217fa9fe960e14b4aba2bc9aae0 (diff) | |
download | amplifiers-5872bab537238c1cbf537c1023123f5375542c03.tar.gz |
cs35l41: add more debug info when failed to set mailboxandroid-t-qpr1-beta-3_r0.5android-t-qpr1-beta-3.1_r0.1android-13.0.0_r0.60android-13.0.0_r0.55android-13.0.0_r0.50android-gs-pantah-5.10-t-qpr1-beta-3android-gs-pantah-5.10-android13-qpr1-beta-3android-gs-pantah-5.10-android13-qpr1
Bug: 231382694
Test: builds
Change-Id: Ia59bdbca00e7167a08fddcb61d4cb551bb1a9fe0
Signed-off-by: Robert Lee <lerobert@google.com>
-rw-r--r-- | cs35l41/cs35l41.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cs35l41/cs35l41.c b/cs35l41/cs35l41.c index c29230b..8c570e0 100644 --- a/cs35l41/cs35l41.c +++ b/cs35l41/cs35l41.c @@ -953,6 +953,30 @@ static bool cs35l41_is_csplmboxsts_correct(enum cs35l41_cspl_mboxcmd cmd, } } +static void cs35l41_dump_debug_info(struct cs35l41_private *cs35l41) +{ + /* Vendor suggest to dump those registers for debugging + from b/237030499#comment12 */ + static const unsigned int dump_regs[] = { + CS35L41_PLL_CLK_CTRL, /* 0x2c04 */ + CS35L41_DSP_CLK_CTRL, /* 0x2c08 */ + CS35L41_SP_RATE_CTRL, /* 0x4804 */ + CS35L41_SP_FORMAT, /* 0x4808 */ + CS35L41_SP_RX_WL, /* 0x4840 */ + CS35L41_IRQ1_RAW_STATUS1, /* 0x10090 */ + CS35L41_IRQ1_RAW_STATUS2, /* 0x10094 */ + CS35L41_IRQ1_RAW_STATUS3, /* 0x10098 */ + CS35L41_IRQ1_RAW_STATUS4, /* 0x1009c */ + }; + unsigned int reg_value; + int i; + + for (i = 0;i < ARRAY_SIZE(dump_regs); i++) { + regmap_read(cs35l41->regmap, dump_regs[i], ®_value); + dev_warn(cs35l41->dev, "Reg(%#x)=%#x\n", dump_regs[i], reg_value); + } +} + static int cs35l41_set_csplmboxcmd(struct cs35l41_private *cs35l41, enum cs35l41_cspl_mboxcmd cmd) { @@ -1018,6 +1042,7 @@ static int cs35l41_set_csplmboxcmd(struct cs35l41_private *cs35l41, dev_err(cs35l41->dev, "Failed to set mailbox(cmd: %u, sts: %u)\n", cmd, sts); ret = -ENOMSG; + cs35l41_dump_debug_info(cs35l41); } return ret; |