Hi,
I have a usb microsoft fingerprint reader, use the uru4000 drivers.
I recompiled libfprint from sources, using version 0.0.6.
I dont know why, but the second time I use the img_capture,
uru4000.c::get_irq returns -ENOENT. To solve this issue, I have to
reconnect the device, or reset it via usb_reset.
I dont know if this is the right way to solve it, but here is my patch (
sorry for posting here, but the bugtracker seems down):
--- drivers.orig/uru4000.c 2008-03-20 08:37:53.000000000 -0500
+++ drivers/uru4000.c 2009-05-17 09:09:48.000000000 -0500
@@ -280,6 +280,7 @@
uint16_t type;
int r;
int infinite_timeout = 0;
+ int has_reset = 0;
if (timeout == 0) {
infinite_timeout = 1;
@@ -294,9 +295,20 @@
retry:
r = usb_interrupt_read(dev->udev, EP_INTR, buf, IRQ_LENGTH, timeout);
+
if (r == -ETIMEDOUT && infinite_timeout)
goto retry;
+ if (r == -ENOENT && !has_reset) {
+ has_reset = 1;
+ r = usb_reset(dev->udev);
+
+ if (r < 0)
+ return r;
+
+ goto retry;
+ }
+
if (r < 0) {
if (r != -ETIMEDOUT)
fp_err("interrupt read failed, error %d", r);
--
"make it work, make it right, make it fast"
_______________________________________________
fprint mailing list
[email protected]
http://lists.reactivated.net/mailman/listinfo/fprint