ASoC: wcd937x: Fix spurious interrupts for wcd937x
Enabling watchdog interrupt during bind causes spurious interrupts. Disable interrupts during bind and enable during path setup to fix this. Also enable and disable interrupt for ear pa for wcd938x. Change-Id: I4a9526d7b0a63f5325cec6dfe7a4e302ae76fc40 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
此提交包含在:
@@ -960,8 +960,20 @@ static int wcd938x_codec_enable_ear_pa(struct snd_soc_dapm_widget *w,
|
||||
wcd938x->update_wcd_event(wcd938x->handle,
|
||||
WCD_BOLERO_EVT_RX_MUTE,
|
||||
(WCD_RX1 << 0x10));
|
||||
if (wcd938x->ear_rx_path & EAR_RX_PATH_AUX)
|
||||
wcd_enable_irq(&wcd938x->irq_info,
|
||||
WCD938X_IRQ_AUX_PDM_WD_INT);
|
||||
else
|
||||
wcd_enable_irq(&wcd938x->irq_info,
|
||||
WCD938X_IRQ_HPHL_PDM_WD_INT);
|
||||
break;
|
||||
case SND_SOC_DAPM_PRE_PMD:
|
||||
if (wcd938x->ear_rx_path & EAR_RX_PATH_AUX)
|
||||
wcd_disable_irq(&wcd938x->irq_info,
|
||||
WCD938X_IRQ_AUX_PDM_WD_INT);
|
||||
else
|
||||
wcd_disable_irq(&wcd938x->irq_info,
|
||||
WCD938X_IRQ_HPHL_PDM_WD_INT);
|
||||
if (wcd938x->update_wcd_event)
|
||||
wcd938x->update_wcd_event(wcd938x->handle,
|
||||
WCD_BOLERO_EVT_RX_MUTE,
|
||||
|
新增問題並參考
封鎖使用者