mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2025-11-15 07:38:12 +00:00
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:
committed by
Benjamin Berg
parent
7b68344394
commit
8f21aa1b26
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user