Regression in goodix driver since 46669e9f
Since commit 46669e9f, there is a regression in the goodix driver that stores all fingerprints with all zero template ids.
The root cause seems to be that the 'enroll create' state is skipped due to the change. A simple proof-of-concept fix is to switch to FP_ENROLL_CREATE
from fp_enroll_enum_cb
, instead of FP_ENROLL_CAPTURE
, in this line.
Such a fix should address all the reported issues about 'can only enroll one finger' and maybe also many about 'corrupted database'.
Note: when enrolling more than one finger with all zero template ids, the buffer returned during listing all templates looks very weird: every list entry contains all finger templates, but the parsing code only reads the first one. This leads to having e.g. three times the same template in the result list when you have enrolled three fingers etc. That might be an issue with the fingerprint reader firmware which does not show up during expected usage.
When I will be back in the office having access to my work notebook having a goodix device, I can provide more details if necessary.