<div dir="ltr">Hi Mark,<div><br></div><div>There are no high-level docs, unfortunately. There's some valuable info in comments in drv.c, sync.c, async.c, img.c etc. but it only covers specific parts, not how they should interact.</div><div><br></div><div>There are 6 drivers for press-type sensors: aes3500.c, aes4000.c, fdu2000.c, upektc.c, uru4000.c, vcom5s.c. But there isn't much difference between press and swipe drivers. FP_SCAN_TYPE_* is used to determine which messages to show ("please touch the sensor" vs. "please swipe..."), and I think that's it. Besides that, all drivers essentially do the same thing: obtain the fingerprint image and submit it. You can use any driver as a reference.</div><div><br></div><div><div><br></div></div><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 9, 2018 at 7:50 PM Mark Harfouche <<a href="mailto:mark.harfouche@gmail.com" target="_blank">mark.harfouche@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="m_8177662341642847222m_6183061558386683585m_-8744784386542286602markdown-here-wrapper"><p style="margin:0px 0px 1.2em!important">Hello all,</p>
<p style="margin:0px 0px 1.2em!important">I would like to develop a driver for the Validity 0091 sensor available on the Dell XPS13/15 9X60.</p>
<p style="margin:0px 0px 1.2em!important">I would say I have the driver reverse engineered to 95% (There might be a few things I still don’t understand from the internal state machine).<br><a href="https://github.com/hmaarrfk/Validity91" target="_blank">https://github.com/hmaarrfk/Validity91</a><br>WIP: <a href="https://github.com/freedesktop/libfprint" target="_blank">https://github.com/freedesktop/libfprint</a></p>
<p style="margin:0px 0px 1.2em!important">I found the libfprint source, can compile it, and started creating my own driver.</p>
<p style="margin:0px 0px 1.2em!important">However, I am confused about the internal workings of libfprint and the functions I need to define.<br>I tried to follow examples that were included, but it seemed that they were mostly “swipe”‘ sensors, and not capacitive style sensor.<br>Is there any good documentation about the state machines I need to implement with regards to the functions</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre-wrap;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important"> .open = dev_open,
.close = dev_close,
.activate = dev_activate,
.deactivate = dev_deactivate,
.change_state = dev_change_state,
</code></pre><p style="margin:0px 0px 1.2em!important">Thanks,</p>
<p style="margin:0px 0px 1.2em!important">Mark</p>
<div title="MDH:PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PkhlbGxvIGFsbCw8YnI+PGJy
PjwvZGl2Pkkgd291bGQgbGlrZSB0byBkZXZlbG9wIGEgZHJpdmVyIGZvciB0aGUgVmFsaWRpdHkg
MDA5MSBzZW5zb3IgYXZhaWxhYmxlIG9uIHRoZSBEZWxsIFhQUzEzLzE1IDlYNjAuPGJyPjxicj48
L2Rpdj5JIHdvdWxkIHNheSBJIGhhdmUgdGhlIGRyaXZlciByZXZlcnNlIGVuZ2luZWVyZWQgdG8g
OTUlIChUaGVyZSBtaWdodCBiZSBhIGZldyB0aGluZ3MgSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5k
IGZyb20gdGhlIGludGVybmFsIHN0YXRlIG1hY2hpbmUpLjxicj5odHRwczovL2dpdGh1Yi5jb20v
aG1hYXJyZmsvVmFsaWRpdHk5MTxicj48L2Rpdj48ZGl2PldJUDogaHR0cHM6Ly9naXRodWIuY29t
L2ZyZWVkZXNrdG9wL2xpYmZwcmludDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj5JIGZvdW5kIHRo
ZSBsaWJmcHJpbnQgc291cmNlLCBjYW4gY29tcGlsZSBpdCwgYW5kIHN0YXJ0ZWQgY3JlYXRpbmcg
bXkgb3duIGRyaXZlci48YnI+PC9kaXY+PGJyPkhvd2V2ZXIsIEkgYW0gY29uZnVzZWQgYWJvdXQg
dGhlIGludGVybmFsIHdvcmtpbmdzIG9mIGxpYmZwcmludCBhbmQgdGhlIGZ1bmN0aW9ucyBJIG5l
ZWQgdG8gZGVmaW5lLjxicj48L2Rpdj5JIHRyaWVkIHRvIGZvbGxvdyBleGFtcGxlcyB0aGF0IHdl
cmUgaW5jbHVkZWQsIGJ1dCBpdCBzZWVtZWQgdGhhdCB0aGV5IHdlcmUgbW9zdGx5ICJzd2lwZSIn
IHNlbnNvcnMsIGFuZCBub3QgY2FwYWNpdGl2ZSBzdHlsZSBzZW5zb3IuPGJyPjwvZGl2PklzIHRo
ZXJlIGFueSBnb29kIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIHN0YXRlIG1hY2hpbmVzIEkgbmVl
ZCB0byBpbXBsZW1lbnQgd2l0aCByZWdhcmRzIHRvIHRoZSBmdW5jdGlvbnM8YnI+PGJyPmBgYDxi
cj4mbmJzcDsmbmJzcDsmbmJzcDsgLm9wZW4gPSBkZXZfb3Blbiw8YnI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7IC5jbG9zZSA9IGRldl9jbG9zZSw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5hY3RpdmF0ZSA9
IGRldl9hY3RpdmF0ZSw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5kZWFjdGl2YXRlID0gZGV2X2Rl
YWN0aXZhdGUsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyAuY2hhbmdlX3N0YXRlID0gZGV2X2NoYW5n
ZV9zdGF0ZSw8YnI+YGBgPGJyPjxicj48L2Rpdj5UaGFua3MsPGJyPjxicj48L2Rpdj5NYXJrPGJy
Pg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div>
_______________________________________________<br>
fprint mailing list<br>
<a href="mailto:fprint@lists.freedesktop.org" target="_blank">fprint@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/fprint" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/fprint</a><br>
</blockquote></div></div></div>