lib: Fix overwriting action after deactivating callback
If one of the callbacks called from fpi_imgdev_deactivate_complete() was reactivating the device, then we would be overwriting whichever "action" got set in the callback, leading to fpi_imgdev_activate_complete() failing as it doesn't handle the "none" action. Reset the action before calling the callbacks.
This commit is contained in:
parent
0e44eb4c1c
commit
19732341d6
1 changed files with 7 additions and 4 deletions
|
@ -485,9 +485,15 @@ void fpi_imgdev_activate_complete(struct fp_img_dev *imgdev, int status)
|
||||||
*/
|
*/
|
||||||
void fpi_imgdev_deactivate_complete(struct fp_img_dev *imgdev)
|
void fpi_imgdev_deactivate_complete(struct fp_img_dev *imgdev)
|
||||||
{
|
{
|
||||||
|
enum fp_imgdev_action action;
|
||||||
|
|
||||||
G_DEBUG_HERE();
|
G_DEBUG_HERE();
|
||||||
|
|
||||||
switch (imgdev->action) {
|
action = imgdev->action;
|
||||||
|
imgdev->action = IMG_ACTION_NONE;
|
||||||
|
imgdev->action_state = 0;
|
||||||
|
|
||||||
|
switch (action) {
|
||||||
case IMG_ACTION_ENROLL:
|
case IMG_ACTION_ENROLL:
|
||||||
fpi_drvcb_enroll_stopped(FP_DEV(imgdev));
|
fpi_drvcb_enroll_stopped(FP_DEV(imgdev));
|
||||||
break;
|
break;
|
||||||
|
@ -504,9 +510,6 @@ void fpi_imgdev_deactivate_complete(struct fp_img_dev *imgdev)
|
||||||
fp_err("unhandled action %d", imgdev->action);
|
fp_err("unhandled action %d", imgdev->action);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
imgdev->action = IMG_ACTION_NONE;
|
|
||||||
imgdev->action_state = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int fpi_imgdev_get_img_width(struct fp_img_dev *imgdev)
|
int fpi_imgdev_get_img_width(struct fp_img_dev *imgdev)
|
||||||
|
|
Loading…
Reference in a new issue