Comment on attachment 82310
0001-lib-Add-VFS5011-driver.patch

Review of attachment 82310:
-----------------------------------------------------------------

::: libfprint/drivers/vfs5011.c
@@ +33,5 @@
> +     }
> +     fp_dbg(s);
> +#endif
> +}
> +

Please drop all debugging stuff from driver. Only debug logs via fp_dbg
are allowed.

@@ +321,5 @@
> +static void median_filter(int *data, int size, int filtersize)
> +{
> +     int i;
> +     int *result = (int *)malloc(size*sizeof(int));
> +     int *sortbuf = (int *)malloc(filtersize*sizeof(int));

Please use g_malloc or g_malloc0 here.

@@ +329,5 @@
> +             if (i1 < 0)
> +                     i1 = 0;
> +             if (i2 >= size)
> +                     i2 = size-1;
> +             memmove(sortbuf, data+i1, (i2-i1+1)*sizeof(int));

g_memmove()

@@ +330,5 @@
> +                     i1 = 0;
> +             if (i2 >= size)
> +                     i2 = size-1;
> +             memmove(sortbuf, data+i1, (i2-i1+1)*sizeof(int));
> +             qsort(sortbuf, i2-i1+1, sizeof(int), cmpint);

I wonder if there's glib wrapper for that one...

@@ +364,5 @@
> +     };
> +     int i;
> +     float y = 0.0;
> +     int line_ind = 0;
> +     int *offsets = (int *)malloc(input_lines * sizeof(int));

g_malloc()

@@ +372,5 @@
> +
> +     if (debugpath != NULL) {
> +             sprintf(name, "%s/offsets%d.dat", debugpath, (int)time(NULL));
> +             debugfile = fopen(name, "wb");
> +     }

Drop debug stuff except logs

@@ +945,5 @@
> +                     array_n_elements(vfs5011_initialization);
> +             data->init_sequence.actions = vfs5011_initialization;
> +             data->init_sequence.device = dev;
> +             data->init_sequence.receive_buf =
> +                     malloc(VFS5011_RECEIVE_BUF_SIZE);

g_malloc()

@@ +989,5 @@
> +     int r = libusb_reset_device(dev->udev);
> +     if (r != 0) {
> +             fp_err("Failed to reset the device");
> +             return r;
> +     }

Is it necessary? Btw, doc says that handle may be invalid after reset,
and you're reusing same handle later.

@@ +1000,5 @@
> +
> +     struct fpi_ssm *ssm;
> +     ssm = fpi_ssm_new(dev->dev, open_loop, DEV_OPEN_NUM_STATES);
> +     ssm->priv = dev;
> +     fpi_ssm_start(ssm, open_loop_complete);

And no one waits for this ssm (and async USB reqs) to complete here.
It's a race condition I've described earlier. Please move device
initialization into dev_activate().

@@ +1035,5 @@
> +}
> +
> +static void dev_deactivate(struct fp_img_dev *dev)
> +{
> +     fpi_imgdev_deactivate_complete(dev);

How do you ensure that _all_ transfers are completed now?
fpi_imgdev_deactivate_complete should be called only after deactivation
has been completed. For this driver "cancel" button in fprint_demo won't
work.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/790183

Title:
  [138a:0011] Fingerprint reader Validity Sensors  not recognized

To manage notifications about this bug go to:
https://bugs.launchpad.net/libfprint/+bug/790183/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to