On 9/30/21 11:20 PM, Vinod Koul wrote: > HI Srini, > > On 07-09-21, 11:56, Srinivas Kandagatla wrote: >> +#ifdef CONFIG_DEBUG_FS >> +static int swrm_reg_show(struct seq_file *s_file, void *data) >> +{ >> + struct qcom_swrm_ctrl *swrm = s_file->private; >> + int reg, reg_val; >> + >> + for (reg = 0; reg <= SWR_MSTR_MAX_REG_ADDR; reg += 4) { >> + swrm->reg_read(swrm, reg, ®_val); > > Why not use regmap_read here, that would avoid reading from the bus when > we already have the values... It's an indirect read based on regmap. ctrl->reg_read = qcom_swrm_ahb_reg_read; ctrl->reg_write = qcom_swrm_ahb_reg_write; static int qcom_swrm_ahb_reg_read(struct qcom_swrm_ctrl *ctrl, int reg, u32 *val) { struct regmap *wcd_regmap = ctrl->regmap; int ret; /* pg register + offset */ ret = regmap_bulk_write(wcd_regmap, SWRM_AHB_BRIDGE_RD_ADDR_0, (u8 *)®, 4); if (ret < 0) return SDW_CMD_FAIL; ret = regmap_bulk_read(wcd_regmap, SWRM_AHB_BRIDGE_RD_DATA_0, val, 4); if (ret < 0) return SDW_CMD_FAIL; return SDW_CMD_OK; } > Second make sure later when pm_runtime support is added, this take a > reference .. Yes indeed, the SoundWire regmap doesn't change the pm_runtime status.