On Thu, 20 Aug 2020 at 16:12, Eddie James <eajames@xxxxxxxxxxxxx> wrote:
Mask the IRQ status to only the bits that the driver checks. ThisThis would defeat the check for irq_remaining. I don't think we want to do this.
prevents excessive driver warnings when operating in slave mode
when additional bits are set that the driver doesn't handle.
Signed-off-by: Eddie James <eajames@xxxxxxxxxxxxx>
---
drivers/i2c/busses/i2c-aspeed.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c
index 31268074c422..abf40f2af8b4 100644
--- a/drivers/i2c/busses/i2c-aspeed.c
+++ b/drivers/i2c/busses/i2c-aspeed.c
@@ -604,6 +604,7 @@ static irqreturn_t aspeed_i2c_bus_irq(int irq, void *dev_id)
writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE,
bus->base + ASPEED_I2C_INTR_STS_REG);
readl(bus->base + ASPEED_I2C_INTR_STS_REG);
+ irq_received &= 0xf000ffff;
irq_remaining = irq_received;
Can you explain why these bits are being set in slave mode?