1
0

asoc: mbhc: avoid unregister extcon device when ssr happens

MBHC extcon device is unregistered when adsp ssr happens and causes
kernel panic. Avoid unregistering MBHC extcon device in mbhc_deinit.

Change-Id: I69fa057a480ebadaf324ca1f61bf399c176e3b2d
Signed-off-by: Meng Wang <mengw@codeaurora.org>
Este cometimento está contido em:
Meng Wang
2021-05-12 10:32:51 +08:00
cometido por Gerrit - the friendly Code Review server
ascendente 6b298688f8
cometimento b16ebebc97

Ver ficheiro

@@ -2049,7 +2049,7 @@ int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_component *component,
mbhc->intr_ids->hph_right_ocp);
goto err_hphr_ocp_irq;
}
if (!mbhc->extdev)
if (!mbhc->extdev) {
mbhc->extdev =
devm_extcon_dev_allocate(component->dev,
mbhc_ext_dev_supported_table);
@@ -2062,7 +2062,7 @@ int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_component *component,
pr_err("%s:audio registration failed\n", __func__);
goto err_ext_dev;
}
}
mbhc->deinit_in_progress = false;
pr_debug("%s: leave ret %d\n", __func__, ret);
return ret;
@@ -2100,9 +2100,6 @@ void wcd_mbhc_deinit(struct wcd_mbhc *mbhc)
{
struct snd_soc_component *component = mbhc->component;
if (mbhc->extdev)
devm_extcon_dev_unregister(component->dev, mbhc->extdev);
mbhc->mbhc_cb->free_irq(component, mbhc->intr_ids->mbhc_sw_intr, mbhc);
mbhc->mbhc_cb->free_irq(component, mbhc->intr_ids->mbhc_btn_press_intr,
mbhc);