sh: update INTC to clear IRQ sense valid flag
Clear the valid flag is in the INTC code. Without this fix bit 7 of the sense register is mistakenly set. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
24ee7d79c5
commit
8a5a778665
|
@ -173,7 +173,8 @@ int intc_set_priority(unsigned int irq, unsigned int prio)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#define VALID(x) (x | 0x80)
|
||||
#define SENSE_VALID_FLAG 0x80
|
||||
#define VALID(x) (x | SENSE_VALID_FLAG)
|
||||
|
||||
static unsigned char intc_irq_sense_table[IRQ_TYPE_SENSE_MASK + 1] = {
|
||||
[IRQ_TYPE_EDGE_FALLING] = VALID(0),
|
||||
|
@ -201,7 +202,8 @@ static int intc_set_type(struct irq_data *data, unsigned int type)
|
|||
ihp = intc_find_irq(d->sense, d->nr_sense, irq);
|
||||
if (ihp) {
|
||||
addr = INTC_REG(d, _INTC_ADDR_E(ihp->handle), 0);
|
||||
intc_reg_fns[_INTC_FN(ihp->handle)](addr, ihp->handle, value);
|
||||
intc_reg_fns[_INTC_FN(ihp->handle)](addr, ihp->handle,
|
||||
value & ~SENSE_VALID_FLAG);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user