uru4000: Fix state change from IRQ handler
The IRQ handler will re-register itself automatically. However, if this happens after the callback is called, then the check whether the IRQ handler is running fails. Re-start the IRQ handler before calling the callback. This way the state changes happening from the callback will see the correct IRQ handler registration state. See: #205
This commit is contained in:
parent
7b68344394
commit
8f21aa1b26
1 changed files with 2 additions and 2 deletions
|
@ -332,6 +332,8 @@ irq_handler (FpiUsbTransfer *transfer,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
start_irq_handler (imgdev);
|
||||||
|
|
||||||
type = GUINT16_FROM_BE (*((uint16_t *) data));
|
type = GUINT16_FROM_BE (*((uint16_t *) data));
|
||||||
fp_dbg ("recv irq type %04x", type);
|
fp_dbg ("recv irq type %04x", type);
|
||||||
|
|
||||||
|
@ -344,8 +346,6 @@ irq_handler (FpiUsbTransfer *transfer,
|
||||||
urudev->irq_cb (imgdev, NULL, type, urudev->irq_cb_data);
|
urudev->irq_cb (imgdev, NULL, type, urudev->irq_cb_data);
|
||||||
else
|
else
|
||||||
fp_dbg ("ignoring interrupt");
|
fp_dbg ("ignoring interrupt");
|
||||||
|
|
||||||
start_irq_handler (imgdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue