summaryrefslogtreecommitdiff
path: root/drivers/soundwire/swr-wcd-ctrl.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/soundwire/swr-wcd-ctrl.c')
-rw-r--r--drivers/soundwire/swr-wcd-ctrl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/soundwire/swr-wcd-ctrl.c b/drivers/soundwire/swr-wcd-ctrl.c
index a8458b9b6e3a..ce2cc512caa9 100644
--- a/drivers/soundwire/swr-wcd-ctrl.c
+++ b/drivers/soundwire/swr-wcd-ctrl.c
@@ -653,6 +653,10 @@ static u8 get_inactive_bank_num(struct swr_mstr_ctrl *swrm)
static void enable_bank_switch(struct swr_mstr_ctrl *swrm, u8 bank,
u8 row, u8 col)
{
+ /* apply div2 setting for inactive bank before bank switch */
+ swrm_cmd_fifo_wr_cmd(swrm, 0x01, 0xF, 0x00,
+ SWRS_SCP_HOST_CLK_DIV2_CTL_BANK(bank));
+
swrm_cmd_fifo_wr_cmd(swrm, ((row << 3) | col), 0xF, 0xF,
SWRS_SCP_FRAME_CTRL_BANK(bank));
}
@@ -891,9 +895,6 @@ static void swrm_apply_port_config(struct swr_master *master)
__func__, bank, master->num_port);
- swrm_cmd_fifo_wr_cmd(swrm, 0x01, 0xF, 0x00,
- SWRS_SCP_HOST_CLK_DIV2_CTL_BANK(bank));
-
swrm_copy_data_port_config(master, bank);
}