diff --git a/asoc/bengal-port-config.h b/asoc/bengal-port-config.h index 4ac7e10c0d..a20a6d5448 100644 --- a/asoc/bengal-port-config.h +++ b/asoc/bengal-port-config.h @@ -31,9 +31,9 @@ static struct port_params rx_frame_params_dsd[SWR_MSTR_PORT_LEN] = { /* TX UC1: TX1: 1ch, TX2: 2chs, TX3: 1ch(MBHC) */ static struct port_params tx_frame_params_default[SWR_MSTR_PORT_LEN] = { - {1, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}, /* TX1 */ - {1, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1}, /* TX2 */ - {3, 2, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}, /* TX3 */ + {3, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}, /* TX1 */ + {3, 2, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}, /* TX2 */ + {3, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}, /* TX3 */ }; static struct swr_mstr_port_map sm_port_map[] = { diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c index 14bf965ab6..e2e13e4123 100644 --- a/asoc/codecs/bolero/va-macro.c +++ b/asoc/codecs/bolero/va-macro.c @@ -119,8 +119,8 @@ struct va_macro_swr_ctrl_platform_data { int (*read)(void *handle, int reg); int (*write)(void *handle, int reg, int val); int (*bulk_write)(void *handle, u32 *reg, u32 *val, size_t len); - int (*core_vote)(void *handle, bool enable); int (*clk)(void *handle, bool enable); + int (*core_vote)(void *handle, bool enable); int (*handle_irq)(void *handle, irqreturn_t (*swrm_irq_handler)(int irq, void *data), @@ -2541,6 +2541,15 @@ static int va_macro_init(struct snd_soc_component *component) } va_priv->component = component; + if (va_priv->version == BOLERO_VERSION_2_1) { + snd_soc_component_update_bits(component, + BOLERO_CDC_VA_TOP_CSR_SWR_MIC_CTL0, 0xEE, 0xCC); + snd_soc_component_update_bits(component, + BOLERO_CDC_VA_TOP_CSR_SWR_MIC_CTL1, 0xEE, 0xCC); + snd_soc_component_update_bits(component, + BOLERO_CDC_VA_TOP_CSR_SWR_MIC_CTL2, 0xEE, 0xCC); + } + return 0; } diff --git a/asoc/codecs/wcd937x/wcd937x.c b/asoc/codecs/wcd937x/wcd937x.c index 21325aeb2c..78dcdb1c51 100644 --- a/asoc/codecs/wcd937x/wcd937x.c +++ b/asoc/codecs/wcd937x/wcd937x.c @@ -2462,6 +2462,7 @@ static int wcd937x_soc_codec_probe(struct snd_soc_component *component) return -EINVAL; wcd937x->component = component; + snd_soc_component_init_regmap(component, wcd937x->regmap); variant = (snd_soc_component_read32( component, WCD937X_DIGITAL_EFUSE_REG_0) & 0x1E) >> 1; wcd937x->variant = variant; diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 242a51201b..6eacf22b69 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -2538,6 +2538,7 @@ static int swrm_probe(struct platform_device *pdev) swr_master_add_boarddevices(&swrm->master); mutex_lock(&swrm->mlock); swrm_clk_request(swrm, true); + swrm->version = swr_master_read(swrm, SWRM_COMP_HW_VERSION); ret = swrm_master_init(swrm); if (ret < 0) { dev_err(&pdev->dev, @@ -2546,7 +2547,6 @@ static int swrm_probe(struct platform_device *pdev) mutex_unlock(&swrm->mlock); goto err_mstr_fail; } - swrm->version = swr_master_read(swrm, SWRM_COMP_HW_VERSION); mutex_unlock(&swrm->mlock); INIT_WORK(&swrm->wakeup_work, swrm_wakeup_work);