Browse Source

Merge "asoc: Audio bringup changes for bengal"

qctecmdr 5 years ago
parent
commit
ea67d09c28
4 changed files with 15 additions and 5 deletions
  1. 3 3
      asoc/bengal-port-config.h
  2. 10 1
      asoc/codecs/bolero/va-macro.c
  3. 1 0
      asoc/codecs/wcd937x/wcd937x.c
  4. 1 1
      soc/swr-mstr-ctrl.c

+ 3 - 3
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[] = {

+ 10 - 1
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;
 }
 

+ 1 - 0
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;

+ 1 - 1
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);