|
|
@@ -156,8 +156,9 @@ static int ltq_eiu_settype(struct irq_data *d, unsigned int type)
|
|
|
if (edge)
|
|
|
irq_set_handler(d->hwirq, handle_edge_irq);
|
|
|
|
|
|
- ltq_eiu_w32(ltq_eiu_r32(LTQ_EIU_EXIN_C) |
|
|
|
- (val << (i * 4)), LTQ_EIU_EXIN_C);
|
|
|
+ ltq_eiu_w32((ltq_eiu_r32(LTQ_EIU_EXIN_C) &
|
|
|
+ (~(7 << (i * 4)))) | (val << (i * 4)),
|
|
|
+ LTQ_EIU_EXIN_C);
|
|
|
}
|
|
|
}
|
|
|
|