1
0
mirror of https://github.com/DigitalDevices/dddvb.git synced 2023-10-10 13:37:43 +02:00

another fix for irq handler v2

This commit is contained in:
Ralph Metzler 2016-04-15 22:51:50 +02:00
parent 4591bab46b
commit 30ca8e9962

View File

@ -3148,12 +3148,12 @@ static void ddb_ports_release(struct ddb *dev)
/****************************************************************************/ /****************************************************************************/
#define IRQ_HANDLE(_nr) \ #define IRQ_HANDLE(_nr) \
do { if ((s & (1UL << _nr)) && dev->handler[0][_nr]) \ do { if ((s & (1UL << (_nr & 0x1f))) && dev->handler[0][_nr]) \
dev->handler[0][_nr](dev->handler_data[0][_nr]); } \ dev->handler[0][_nr](dev->handler_data[0][_nr]); } \
while (0) while (0)
#define IRQ_HANDLE_BYTE(_n) \ #define IRQ_HANDLE_BYTE(_n) \
if (s & (0x000000ff << _n)) { \ if (s & (0x000000ff << (_n & 0x1f))) { \
IRQ_HANDLE(0 + _n); \ IRQ_HANDLE(0 + _n); \
IRQ_HANDLE(1 + _n); \ IRQ_HANDLE(1 + _n); \
IRQ_HANDLE(2 + _n); \ IRQ_HANDLE(2 + _n); \
@ -3286,6 +3286,7 @@ static irqreturn_t irq_handle_v2_n(struct ddb *dev, u32 n)
ddbwritel(dev, s, reg); ddbwritel(dev, s, reg);
if ((s & 0x000000ff)) { if ((s & 0x000000ff)) {
IRQ_HANDLE(0 + off);
IRQ_HANDLE(1 + off); IRQ_HANDLE(1 + off);
IRQ_HANDLE(2 + off); IRQ_HANDLE(2 + off);
IRQ_HANDLE(3 + off); IRQ_HANDLE(3 + off);