usb: typec: tipd: Add short-circuit for no irqs
If no interrupts are set in IntEventX directly skip to the end of the interrupt handler and return IRQ_NONE instead of IRQ_HANDLED. This possibly allows to detect spurious interrupts if the i2c bus is fast enough. Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Sven Peter <sven@svenpeter.dev> Link: https://lore.kernel.org/r/20210928155502.71372-4-sven@svenpeter.dev Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
0fbb79b7fd
Коммит
c7260e29dd
|
@ -479,6 +479,9 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data)
|
|||
}
|
||||
trace_tps6598x_irq(event1, event2);
|
||||
|
||||
if (!(event1 | event2))
|
||||
goto err_unlock;
|
||||
|
||||
if (!tps6598x_read_status(tps, &status))
|
||||
goto err_clear_ints;
|
||||
|
||||
|
@ -501,7 +504,9 @@ err_clear_ints:
|
|||
err_unlock:
|
||||
mutex_unlock(&tps->lock);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
if (event1 | event2)
|
||||
return IRQ_HANDLED;
|
||||
return IRQ_NONE;
|
||||
}
|
||||
|
||||
static int tps6598x_check_mode(struct tps6598x *tps)
|
||||
|
|
Загрузка…
Ссылка в новой задаче