Commit a71e2ac1 authored by Chris Brandt's avatar Chris Brandt Committed by Wolfram Sang
Browse files

i2c: riic: Clear NACK in tend isr

The NACKF flag should be cleared in INTRIICNAKI interrupt processing as
description in HW manual.

This issue shows up quickly when PREEMPT_RT is applied and a device is
probed that is not plugged in (like a touchscreen controller). The result
is endless interrupts that halt system boot.

Fixes: 310c18a4

 ("i2c: riic: add driver")
Reported-by: default avatarChien Nguyen <>
Signed-off-by: default avatarChris Brandt <>
Signed-off-by: default avatarWolfram Sang <>
parent 127068ab
......@@ -202,6 +202,7 @@ static irqreturn_t riic_tend_isr(int irq, void *data)
if (readb(riic->base + RIIC_ICSR2) & ICSR2_NACKF) {
/* We got a NACKIE */
readb(riic->base + RIIC_ICDRR); /* dummy read */
riic_clear_set_bit(riic, ICSR2_NACKF, 0, RIIC_ICSR2);
riic->err = -ENXIO;
} else if (riic->bytes_left) {
return IRQ_NONE;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment