Selaa lähdekoodia

Merge "asoc: mbhc: ignore mbhc event report during ssr"

Linux Build Service Account 6 vuotta sitten
vanhempi
sitoutus
5ee446ca78
3 muutettua tiedostoa jossa 8 lisäystä ja 0 poistoa
  1. 6 0
      asoc/codecs/wcd-mbhc-v2.c
  2. 1 0
      asoc/codecs/wcd-mbhc-v2.h
  3. 1 0
      asoc/codecs/wcd934x/wcd934x.c

+ 6 - 0
asoc/codecs/wcd-mbhc-v2.c

@@ -776,6 +776,11 @@ void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc,
 	bool anc_mic_found = false;
 	enum snd_jack_types jack_type;
 
+	if (mbhc->deinit_in_progress) {
+		pr_info("%s: mbhc deinit in progess: ignore report\n");
+		return;
+	}
+
 	pr_debug("%s: enter current_plug(%d) new_plug(%d)\n",
 		 __func__, mbhc->current_plug, plug_type);
 
@@ -1882,6 +1887,7 @@ int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_codec *codec,
 		goto err_hphr_ocp_irq;
 	}
 
+	mbhc->deinit_in_progress = false;
 	pr_debug("%s: leave ret %d\n", __func__, ret);
 	return ret;
 

+ 1 - 0
asoc/codecs/wcd-mbhc-v2.h

@@ -582,6 +582,7 @@ struct wcd_mbhc {
 	struct completion btn_press_compl;
 	struct mutex hphl_pa_lock;
 	struct mutex hphr_pa_lock;
+	bool deinit_in_progress;
 
 	/* Holds mbhc detection method - ADC/Legacy */
 	unsigned int mbhc_detection_logic;

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

@@ -9980,6 +9980,7 @@ static int tavil_device_down(struct wcd9xxx *wcd9xxx)
 	for (count = 0; count < NUM_CODEC_DAIS; count++)
 		priv->dai[count].bus_down_in_recovery = true;
 
+	priv->mbhc->wcd_mbhc.deinit_in_progress = true;
 	if (delayed_work_pending(&priv->spk_anc_dwork.dwork))
 		cancel_delayed_work(&priv->spk_anc_dwork.dwork);
 	for (decimator = 0; decimator < WCD934X_NUM_DECIMATORS; decimator++) {