diff mbox

ASoC: nau8825: set clear_irq when imm IRQ happened

Message ID 1512007997-31704-1-git-send-email-KCHSU0@nuvoton.com (mailing list archive)
State Accepted
Commit e3fee43a968fd39dcc56be3757fcdfe250964125
Headers show

Commit Message

AS50 KCHSU0 Nov. 30, 2017, 2:13 a.m. UTC
Although the crosstalk is disabled, it is better to set clear_irq
properly when the impedance measurement interrupt happens.
It can avoid that the driver clears other IRQs by accident
if the active_irq has another IRQ events.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
---
 sound/soc/codecs/nau8825.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Wu-Cheng Li (李務誠) Nov. 30, 2017, 2:30 a.m. UTC | #1
Can you combine this patch with "ASoC: nau8825: disable crosstalk by
default"? This should be a part of that patch.

On Thu, Nov 30, 2017 at 10:13 AM, John Hsu <KCHSU0@nuvoton.com> wrote:
> Although the crosstalk is disabled, it is better to set clear_irq
> properly when the impedance measurement interrupt happens.
> It can avoid that the driver clears other IRQs by accident
> if the active_irq has another IRQ events.
>
> Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
> ---
>  sound/soc/codecs/nau8825.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/sound/soc/codecs/nau8825.c b/sound/soc/codecs/nau8825.c
> index d3c1a02..603cd72 100644
> --- a/sound/soc/codecs/nau8825.c
> +++ b/sound/soc/codecs/nau8825.c
> @@ -1733,10 +1733,9 @@ static irqreturn_t nau8825_interrupt(int irq, void *data)
>                         nau8825->xtalk_event_mask = event_mask;
>                 }
>         } else if (active_irq & NAU8825_IMPEDANCE_MEAS_IRQ) {
> -               if (nau8825->xtalk_enable) {
> +               if (nau8825->xtalk_enable)
>                         schedule_work(&nau8825->xtalk_work);
> -                       clear_irq = NAU8825_IMPEDANCE_MEAS_IRQ;
> -               }
> +               clear_irq = NAU8825_IMPEDANCE_MEAS_IRQ;
>         } else if ((active_irq & NAU8825_JACK_INSERTION_IRQ_MASK) ==
>                 NAU8825_JACK_INSERTION_DETECTED) {
>                 /* One more step to check GPIO status directly. Thus, the
> --
> 2.6.4
>
Wu-Cheng Li (李務誠) Nov. 30, 2017, 7:14 a.m. UTC | #2
Never mind. Actually "ASoC: nau8825: disable crosstalk by default" was
already approved.

Reviewed-by: Wu-Cheng Li <wuchengli@chromium.org>
Tested-by: Wu-Cheng Li <wuchengli@chromium.org>
On Thu, Nov 30, 2017 at 10:30 AM, Wu-Cheng Li (李務誠)
<wuchengli@google.com> wrote:
> Can you combine this patch with "ASoC: nau8825: disable crosstalk by
> default"? This should be a part of that patch.
>
> On Thu, Nov 30, 2017 at 10:13 AM, John Hsu <KCHSU0@nuvoton.com> wrote:
>> Although the crosstalk is disabled, it is better to set clear_irq
>> properly when the impedance measurement interrupt happens.
>> It can avoid that the driver clears other IRQs by accident
>> if the active_irq has another IRQ events.
>>
>> Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
>> ---
>>  sound/soc/codecs/nau8825.c | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/sound/soc/codecs/nau8825.c b/sound/soc/codecs/nau8825.c
>> index d3c1a02..603cd72 100644
>> --- a/sound/soc/codecs/nau8825.c
>> +++ b/sound/soc/codecs/nau8825.c
>> @@ -1733,10 +1733,9 @@ static irqreturn_t nau8825_interrupt(int irq, void *data)
>>                         nau8825->xtalk_event_mask = event_mask;
>>                 }
>>         } else if (active_irq & NAU8825_IMPEDANCE_MEAS_IRQ) {
>> -               if (nau8825->xtalk_enable) {
>> +               if (nau8825->xtalk_enable)
>>                         schedule_work(&nau8825->xtalk_work);
>> -                       clear_irq = NAU8825_IMPEDANCE_MEAS_IRQ;
>> -               }
>> +               clear_irq = NAU8825_IMPEDANCE_MEAS_IRQ;
>>         } else if ((active_irq & NAU8825_JACK_INSERTION_IRQ_MASK) ==
>>                 NAU8825_JACK_INSERTION_DETECTED) {
>>                 /* One more step to check GPIO status directly. Thus, the
>> --
>> 2.6.4
>>
diff mbox

Patch

diff --git a/sound/soc/codecs/nau8825.c b/sound/soc/codecs/nau8825.c
index d3c1a02..603cd72 100644
--- a/sound/soc/codecs/nau8825.c
+++ b/sound/soc/codecs/nau8825.c
@@ -1733,10 +1733,9 @@  static irqreturn_t nau8825_interrupt(int irq, void *data)
 			nau8825->xtalk_event_mask = event_mask;
 		}
 	} else if (active_irq & NAU8825_IMPEDANCE_MEAS_IRQ) {
-		if (nau8825->xtalk_enable) {
+		if (nau8825->xtalk_enable)
 			schedule_work(&nau8825->xtalk_work);
-			clear_irq = NAU8825_IMPEDANCE_MEAS_IRQ;
-		}
+		clear_irq = NAU8825_IMPEDANCE_MEAS_IRQ;
 	} else if ((active_irq & NAU8825_JACK_INSERTION_IRQ_MASK) ==
 		NAU8825_JACK_INSERTION_DETECTED) {
 		/* One more step to check GPIO status directly. Thus, the