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

Reply via email to