Browse Source

Merge "asoc: mbhc: disable unnecessary irq for pitti"

qctecmdr 11 months ago
parent
commit
9729e275b2
2 changed files with 23 additions and 0 deletions
  1. 22 0
      asoc/codecs/wcd9378/wcd9378-mbhc.c
  2. 1 0
      asoc/codecs/wcd9378/wcd9378.c

+ 22 - 0
asoc/codecs/wcd9378/wcd9378-mbhc.c

@@ -1036,6 +1036,8 @@ int wcd9378_mbhc_post_ssr_init(struct wcd9378_mbhc *mbhc,
 {
 	int ret = 0;
 	struct wcd_mbhc *wcd_mbhc = NULL;
+	struct wcd9378_priv *wcd9378 =
+			dev_get_drvdata(component->dev);
 
 	if (!mbhc || !component)
 		return -EINVAL;
@@ -1057,6 +1059,15 @@ int wcd9378_mbhc_post_ssr_init(struct wcd9378_mbhc *mbhc,
 		goto done;
 	}
 
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_MBHC_ELECT_INS_REM_DET);
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_MBHC_ELECT_INS_REM_LEG_DET);
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_EAR_SCD_INT);
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_AUX_SCD_INT);
+
 done:
 	return ret;
 }
@@ -1077,6 +1088,8 @@ int wcd9378_mbhc_init(struct wcd9378_mbhc **mbhc,
 	struct wcd_mbhc *wcd_mbhc = NULL;
 	int ret = 0;
 	struct wcd9378_pdata *pdata;
+	struct wcd9378_priv *wcd9378 =
+			dev_get_drvdata(component->dev);
 
 	if (!component) {
 		pr_err("%s: component is NULL\n", __func__);
@@ -1117,6 +1130,15 @@ int wcd9378_mbhc_init(struct wcd9378_mbhc **mbhc,
 		goto err;
 	}
 
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_MBHC_ELECT_INS_REM_DET);
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_MBHC_ELECT_INS_REM_LEG_DET);
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_EAR_SCD_INT);
+	wcd_disable_irq(&wcd9378->irq_info,
+				WCD9378_IRQ_AUX_SCD_INT);
+
 	(*mbhc) = wcd9378_mbhc;
 	snd_soc_add_component_controls(component, impedance_detect_controls,
 				   ARRAY_SIZE(impedance_detect_controls));

+ 1 - 0
asoc/codecs/wcd9378/wcd9378.c

@@ -226,6 +226,7 @@ static const struct regmap_irq wcd9378_regmap_irqs[WCD9378_NUM_IRQS] = {
 	REGMAP_IRQ_REG(WCD9378_IRQ_MBHC_MOISTURE_INT, 2, 0x02),
 	REGMAP_IRQ_REG(WCD9378_IRQ_HPHL_SURGE_DET_INT, 2, 0x04),
 	REGMAP_IRQ_REG(WCD9378_IRQ_HPHR_SURGE_DET_INT, 2, 0x08),
+	REGMAP_IRQ_REG(WCD9378_IRQ_SAPU_PROT_MODE_CHG, 2, 0x40),
 };
 
 static int wcd9378_handle_post_irq(void *data)