[fprint] elan patch + poc 0x903 and 0x0C03

TeEmZe timo at teemze.de
Fri Jan 19 13:33:54 UTC 2018


Hi,

Sadly I won't be able to get the data until next week, as I currently don't have access to the Laptop. I'll notify you as soon as I manage to get the data.

Regards,

Timo

-----Original Message-----
From: Hans de Goede [mailto:hdegoede at redhat.com] 
Sent: Thursday, 18 January 2018 16:14
To: Sebastien Bechet <sebastien.bechet at osinix.com>; Igor Filatov <ia.filatov at gmail.com>
Cc: TeEmZe <timo at teemze.de>; konachan.700 at gmail.com; fprint at lists.freedesktop.org
Subject: Re: [fprint] elan patch + poc 0x903 and 0x0C03

Hi,

On 18-01-18 16:03, Sebastien Bechet wrote:
> Thank you Igor. Hans, you can try again with last version.

Not tested, but looking at the code, it will loop in the calibration, my 2 devices both need a:

if (result == 0x03) break;

Directly after the:

printf("Calibration Status: 0x%x\n", result);

Line, currently the code only checks for result == 0x03 for the result of the get_cmd_status command, while it should check (for my devices) the result of the get_cmd_calibration command.

Regards,

Hans



> 
> I also tried to remove reset+fuseload then calibration not working 
> anymore for 0x0903. It seems it is a part for calibration (same pdf 
> file for reset _and_ calibration or .... reset _then_ calibration?).
> 
> https://github.com/sbechet/elanfp
> 
> Konata and timo, can you give us width, height, firmware version and 
> calibration status using elanfp.c please?


> 
> 
> 
> Le jeudi 18 janvier 2018 à 14:02 +0000, Igor Filatov a écrit :
>>> square and seems to contain the image 3 times
>> Could be because convert is hardcoded at 96x96.
>>
>> On Thu, 18 Jan 2018, 12:04 Hans de Goede, <hdegoede at redhat.com>
>> wrote:
>>> Hi,
>>>
>>> On 18-01-18 10:48, Sébastien Béchet wrote:
>>>> On 17-01-18 19:21, Igor Filatov wrote:
>>>>> We didn't have the spec before so I had no idea how different
>>> devices worked. Especially given that some commands which worked 
>>> fine for me produced errors one other devices. Now that we have the 
>>> docs I'll work on adapting the driver. Naturally, any info you have 
>>> is welcome and so is any help with testing.
>>>>
>>>> I have done the [synthesis](https://github.com/sbechet/elanfp/blo
>>> b/master/README.md) about all informations we have a prepare 
>>> questions for KT.
>>>
>>> My 0x0c16 id reader has firmware version 1.56, resolution 96x96
>>>
>>> I also have bought a stand-alone USB reader for when I would find 
>>> time to work on this, this has an usb-id of: 0x0c26.
>>>
>>> After aking these changes:
>>>
>>> --- elanfp.c~   2018-01-18 10:58:59.919912347 +0100
>>> +++ elanfp.c    2018-01-18 11:01:50.346280668 +0100
>>> @@ -71,7 +71,8 @@
>>>                    (desc.idVendor == 0x04f3) && (desc.idProduct ==
>>> 0x0903) ||
>>>                    (desc.idVendor == 0x04f3) && (desc.idProduct ==
>>> 0x0907) ||
>>>                    (desc.idVendor == 0x04f3) && (desc.idProduct ==
>>> 0x0c03) ||
>>> -                (desc.idVendor == 0x04f3) && (desc.idProduct ==
>>> 0x0c16) ) {
>>> +                (desc.idVendor == 0x04f3) && (desc.idProduct ==
>>> 0x0c16) ||
>>> +                (desc.idVendor == 0x04f3) && (desc.idProduct ==
>>> 0x0c26) ) {
>>>                    r0 = 0;
>>>                    printf("Device with vid %x pid %x found.\n", 
>>> desc.idVendor, desc.idProduct);
>>>                    break;
>>> @@ -156,7 +157,7 @@
>>>            printf("CMD Get Image Size sent\n");
>>>        }
>>>        r0 = libusb_bulk_transfer(handle, BULK_EP3_IN, img_buf, 4, 
>>> &transferred, 0);
>>> -    printf("Width x height = %dx%d\n", img_buf[0], img_buf[2]);
>>> +    printf("Width x height = %dx%d\n", (unsigned char)img_buf[0],
>>> (unsigned char)img_buf[2]);
>>>
>>>        /* calibration */
>>>
>>> @@ -180,6 +181,7 @@
>>>            }
>>>            r0 = libusb_bulk_transfer(handle, BULK_EP3_IN, &result, 
>>> 1, &transferred, 0);
>>>            printf("Calibration Status: 0x%x\n", result);
>>> +        if (result == 0x03) break;
>>>
>>>            r0 = libusb_bulk_transfer(handle, BULK_EP1_OUT, 
>>> get_cmd_status, 2, &transferred, 0);
>>>            if((r0 == 0) && (transferred == 2)) {
>>>
>>> This one works with the POC too, although for some reason the 
>>> generated out.png is square and seems to contain the image 3 times?
>>>
>>> This one has firmware version 1.64, resolution 64x144 and as shown 
>>> in the necessary changes this one does report a calibration status 
>>> of 0x03 when it is done with the calibration, I think we should add 
>>> an extra column for this to the hardware report table.
>>>
>>> Regards,
>>>
>>> Hans



More information about the fprint mailing list