diff --git a/asoc/codecs/wsa883x/wsa883x.c b/asoc/codecs/wsa883x/wsa883x.c index a7406e6e56..1ad6d06dd2 100644 --- a/asoc/codecs/wsa883x/wsa883x.c +++ b/asoc/codecs/wsa883x/wsa883x.c @@ -1160,6 +1160,11 @@ static int wsa883x_spkr_event(struct snd_soc_dapm_widget *w, 0x07, wsa883x->comp_offset); wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_UVLO); + wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_SAF2WAR); + wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_WAR2SAF); + wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_DISABLE); + wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_OCP); + wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLK_WD); snd_soc_component_update_bits(component, WSA883X_VBAT_ADC_FLT_CTL, 0x0E, 0x06); @@ -1184,6 +1189,11 @@ static int wsa883x_spkr_event(struct snd_soc_dapm_widget *w, 0x01, 0x00); snd_soc_component_update_bits(component, WSA883X_PDM_WD_CTL, 0x01, 0x00); + wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLK_WD); + wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_OCP); + wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_DISABLE); + wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_WAR2SAF); + wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_SAF2WAR); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_UVLO); clear_bit(SPKR_STATUS, &wsa883x->status_mask); clear_bit(SPKR_ADIE_LB, &wsa883x->status_mask);