asoc: mbhc: ignore mbhc event report during ssr
When ssr is in progress, during some race conditions mbhc events are getting reported when codec is still coming up. Ignore such events without reporting. Change-Id: I3d3f78f97c2b855fc36a480f38c166bda2d979f0 Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
此提交包含在:

提交者
Gerrit - the friendly Code Review server

父節點
ec7e65b420
當前提交
3dd07e6937
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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++) {
|
||||
|
新增問題並參考
封鎖使用者