Loading asoc/codecs/wsa883x/wsa883x.c +20 −9 Original line number Diff line number Diff line Loading @@ -1125,6 +1125,11 @@ static int wsa883x_spkr_event(struct snd_soc_dapm_widget *w, usleep_range(250, 300); wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PA_ON_ERR); 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); /* Force remove group */ swr_remove_from_group(wsa883x->swr_slave, wsa883x->swr_slave->dev_num); Loading Loading @@ -1158,6 +1163,11 @@ static int wsa883x_spkr_event(struct snd_soc_dapm_widget *w, 0x10, 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); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PA_ON_ERR); clear_bit(SPKR_STATUS, &wsa883x->status_mask); Loading Loading @@ -1650,6 +1660,7 @@ static int wsa883x_swr_probe(struct swr_device *pdev) } swr_set_dev_data(pdev, wsa883x); wsa883x->swr_slave = pdev; wsa883x->dev = &pdev->dev; pin_state_current = msm_cdc_pinctrl_get_state(wsa883x->wsa_rst_np); wsa883x_gpio_ctrl(wsa883x, true); /* Loading Loading @@ -1697,48 +1708,48 @@ static int wsa883x_swr_probe(struct swr_device *pdev) wsa883x->swr_slave->slave_irq = wsa883x->virq; wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_SAF2WAR, "WSA SAF2WAR", wsa883x_saf2war_handle_irq, NULL); "WSA SAF2WAR", wsa883x_saf2war_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_SAF2WAR); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_WAR2SAF, "WSA WAR2SAF", wsa883x_war2saf_handle_irq, NULL); "WSA WAR2SAF", wsa883x_war2saf_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_WAR2SAF); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_DISABLE, "WSA OTP", wsa883x_otp_handle_irq, NULL); "WSA OTP", wsa883x_otp_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_DISABLE); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_OCP, "WSA OCP", wsa883x_ocp_handle_irq, NULL); "WSA OCP", wsa883x_ocp_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_OCP); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLIP, "WSA CLIP", wsa883x_clip_handle_irq, NULL); "WSA CLIP", wsa883x_clip_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLIP); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PDM_WD, "WSA PDM WD", wsa883x_pdm_wd_handle_irq, NULL); "WSA PDM WD", wsa883x_pdm_wd_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PDM_WD); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLK_WD, "WSA CLK WD", wsa883x_clk_wd_handle_irq, NULL); "WSA CLK WD", wsa883x_clk_wd_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLK_WD); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_INTR_PIN, "WSA EXT INT", wsa883x_ext_int_handle_irq, NULL); "WSA EXT INT", wsa883x_ext_int_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_INTR_PIN); /* Under Voltage Lock out (UVLO) interrupt handle */ wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_UVLO, "WSA UVLO", wsa883x_uvlo_handle_irq, NULL); "WSA UVLO", wsa883x_uvlo_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_UVLO); Loading Loading
asoc/codecs/wsa883x/wsa883x.c +20 −9 Original line number Diff line number Diff line Loading @@ -1125,6 +1125,11 @@ static int wsa883x_spkr_event(struct snd_soc_dapm_widget *w, usleep_range(250, 300); wcd_enable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PA_ON_ERR); 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); /* Force remove group */ swr_remove_from_group(wsa883x->swr_slave, wsa883x->swr_slave->dev_num); Loading Loading @@ -1158,6 +1163,11 @@ static int wsa883x_spkr_event(struct snd_soc_dapm_widget *w, 0x10, 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); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PA_ON_ERR); clear_bit(SPKR_STATUS, &wsa883x->status_mask); Loading Loading @@ -1650,6 +1660,7 @@ static int wsa883x_swr_probe(struct swr_device *pdev) } swr_set_dev_data(pdev, wsa883x); wsa883x->swr_slave = pdev; wsa883x->dev = &pdev->dev; pin_state_current = msm_cdc_pinctrl_get_state(wsa883x->wsa_rst_np); wsa883x_gpio_ctrl(wsa883x, true); /* Loading Loading @@ -1697,48 +1708,48 @@ static int wsa883x_swr_probe(struct swr_device *pdev) wsa883x->swr_slave->slave_irq = wsa883x->virq; wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_SAF2WAR, "WSA SAF2WAR", wsa883x_saf2war_handle_irq, NULL); "WSA SAF2WAR", wsa883x_saf2war_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_SAF2WAR); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_WAR2SAF, "WSA WAR2SAF", wsa883x_war2saf_handle_irq, NULL); "WSA WAR2SAF", wsa883x_war2saf_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_WAR2SAF); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_DISABLE, "WSA OTP", wsa883x_otp_handle_irq, NULL); "WSA OTP", wsa883x_otp_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_DISABLE); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_OCP, "WSA OCP", wsa883x_ocp_handle_irq, NULL); "WSA OCP", wsa883x_ocp_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_OCP); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLIP, "WSA CLIP", wsa883x_clip_handle_irq, NULL); "WSA CLIP", wsa883x_clip_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLIP); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PDM_WD, "WSA PDM WD", wsa883x_pdm_wd_handle_irq, NULL); "WSA PDM WD", wsa883x_pdm_wd_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_PDM_WD); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLK_WD, "WSA CLK WD", wsa883x_clk_wd_handle_irq, NULL); "WSA CLK WD", wsa883x_clk_wd_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_CLK_WD); wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_INTR_PIN, "WSA EXT INT", wsa883x_ext_int_handle_irq, NULL); "WSA EXT INT", wsa883x_ext_int_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_INTR_PIN); /* Under Voltage Lock out (UVLO) interrupt handle */ wcd_request_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_UVLO, "WSA UVLO", wsa883x_uvlo_handle_irq, NULL); "WSA UVLO", wsa883x_uvlo_handle_irq, wsa883x); wcd_disable_irq(&wsa883x->irq_info, WSA883X_IRQ_INT_UVLO); Loading