openwrtv3/target/linux/omap24xx/patches-3.1/252-cbus-retu-tahvo-ack-fix.patch
Michael Büsch 4793be2df9 omap24xx: Some retu/tahvo IRQ fixes
SVN-Revision: 29233
2011-11-17 18:06:19 +00:00

65 lines
1.7 KiB
Diff

Index: linux-3.1.1/drivers/cbus/retu.c
===================================================================
--- linux-3.1.1.orig/drivers/cbus/retu.c 2011-11-17 18:47:59.453004678 +0100
+++ linux-3.1.1/drivers/cbus/retu.c 2011-11-17 18:49:03.180787673 +0100
@@ -54,8 +54,6 @@ struct retu {
int irq;
int ack;
- bool ack_pending;
-
int mask;
bool mask_pending;
@@ -238,7 +236,6 @@ static void retu_irq_ack(struct irq_data
int irq = data->irq;
retu->ack |= (1 << (irq - retu->irq_base));
- retu->ack_pending = true;
}
static void retu_bus_lock(struct irq_data *data)
@@ -257,9 +254,9 @@ static void retu_bus_sync_unlock(struct
retu->mask_pending = false;
}
- if (retu->ack_pending) {
+ if (retu->ack) {
__retu_write_reg(retu, RETU_REG_IDR, retu->ack);
- retu->ack_pending = false;
+ retu->ack = 0;
}
mutex_unlock(&retu->mutex);
Index: linux-3.1.1/drivers/cbus/tahvo.c
===================================================================
--- linux-3.1.1.orig/drivers/cbus/tahvo.c 2011-11-17 18:47:59.437004733 +0100
+++ linux-3.1.1/drivers/cbus/tahvo.c 2011-11-17 18:51:03.708374259 +0100
@@ -52,7 +52,6 @@ struct tahvo {
int mask;
unsigned int mask_pending:1;
- unsigned int ack_pending:1;
unsigned int is_betty:1;
};
@@ -177,9 +176,9 @@ static void tahvo_irq_bus_sync_unlock(st
tahvo->mask_pending = false;
}
- if (tahvo->ack_pending) {
+ if (tahvo->ack) {
__tahvo_write_reg(tahvo, TAHVO_REG_IDR, tahvo->ack);
- tahvo->ack_pending = false;
+ tahvo->ack = 0;
}
mutex_unlock(&tahvo->mutex);
@@ -209,7 +208,6 @@ static void tahvo_irq_ack(struct irq_dat
int irq = data->irq;
tahvo->ack |= (1 << (irq - tahvo->irq_base));
- tahvo->ack_pending = true;
}
static struct irq_chip tahvo_irq_chip = {