Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97491ba3 authored by Vasily Khoruzhick's avatar Vasily Khoruzhick Committed by Ben Dooks
Browse files

i2c-pxa2xx: Don't clear isr bits too early



isr is passed later into i2c_pxa_irq_txempty and
i2c_pxa_irq_rxfull and they may use some other bits
than irq sources.

Signed-off-by: default avatarVasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent a0774f45
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -966,8 +966,7 @@ static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
	struct pxa_i2c *i2c = dev_id;
	u32 isr = readl(_ISR(i2c));

	isr &= VALID_INT_SOURCE;
	if (!isr)
	if (!(isr & VALID_INT_SOURCE))
		return IRQ_NONE;

	if (i2c_debug > 2 && 0) {
@@ -984,7 +983,7 @@ static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
	/*
	 * Always clear all pending IRQs.
	 */
	writel(isr, _ISR(i2c));
	writel(isr & VALID_INT_SOURCE, _ISR(i2c));

	if (isr & ISR_SAD)
		i2c_pxa_slave_start(i2c, isr);