fpsensor: Run maintenance when in maintenance mode
BRANCH=none BUG=b:76037094 TEST=make buildall -j Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: Ibe8649c3cf77ef4542b5fc46d7df5eee03293b56 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2364755 Commit-Queue: Craig Hesling <hesling@chromium.org> Reviewed-by: Craig Hesling <hesling@chromium.org>
This commit is contained in:
parent
fe521237b3
commit
bd67306369
|
@ -252,6 +252,9 @@ void fp_task(void)
|
|||
} else if (mode & FP_MODE_RESET_SENSOR) {
|
||||
fp_reset_and_clear_context();
|
||||
sensor_mode &= ~FP_MODE_RESET_SENSOR;
|
||||
} else if (mode & FP_MODE_SENSOR_MAINTENANCE) {
|
||||
fp_maintenance();
|
||||
sensor_mode &= ~FP_MODE_SENSOR_MAINTENANCE;
|
||||
} else {
|
||||
fp_sensor_low_power();
|
||||
}
|
||||
|
|
|
@ -76,3 +76,8 @@ int fp_finger_enroll(uint8_t *image, int *completion)
|
|||
{
|
||||
return mock_ctrl_fp_sensor.fp_finger_enroll_return;
|
||||
}
|
||||
|
||||
int fp_maintenance(void)
|
||||
{
|
||||
return mock_ctrl_fp_sensor.fp_maintenance_return;
|
||||
}
|
||||
|
|
|
@ -6355,6 +6355,8 @@ struct ec_params_fp_passthru {
|
|||
#define FP_MODE_MATCH BIT(6)
|
||||
/* Reset and re-initialize the sensor. */
|
||||
#define FP_MODE_RESET_SENSOR BIT(7)
|
||||
/* Sensor maintenance for dead pixels. */
|
||||
#define FP_MODE_SENSOR_MAINTENANCE BIT(8)
|
||||
/* special value: don't change anything just read back current mode */
|
||||
#define FP_MODE_DONT_CHANGE BIT(31)
|
||||
|
||||
|
@ -6366,6 +6368,7 @@ struct ec_params_fp_passthru {
|
|||
FP_MODE_ENROLL_IMAGE | \
|
||||
FP_MODE_MATCH | \
|
||||
FP_MODE_RESET_SENSOR | \
|
||||
FP_MODE_SENSOR_MAINTENANCE | \
|
||||
FP_MODE_DONT_CHANGE)
|
||||
|
||||
/* Capture types defined in bits [30..28] */
|
||||
|
|
|
@ -25,6 +25,7 @@ struct mock_ctrl_fp_sensor {
|
|||
int fp_enrollment_begin_return;
|
||||
int fp_enrollment_finish_return;
|
||||
int fp_finger_enroll_return;
|
||||
int fp_maintenance_return;
|
||||
};
|
||||
|
||||
#define MOCK_CTRL_DEFAULT_FP_SENSOR \
|
||||
|
@ -39,6 +40,7 @@ struct mock_ctrl_fp_sensor {
|
|||
.fp_enrollment_begin_return = 0, \
|
||||
.fp_enrollment_finish_return = 0, \
|
||||
.fp_finger_enroll_return = EC_MKBP_FP_ERR_ENROLL_OK, \
|
||||
.fp_maintenance_return = EC_SUCCESS \
|
||||
}
|
||||
|
||||
extern struct mock_ctrl_fp_sensor mock_ctrl_fp_sensor;
|
||||
|
|
|
@ -169,6 +169,23 @@ test_static int test_fp_set_sensor_mode(void)
|
|||
return EC_SUCCESS;
|
||||
}
|
||||
|
||||
test_static int test_fp_set_maintenance_mode(void)
|
||||
{
|
||||
uint32_t output_mode = 0;
|
||||
|
||||
/* GIVEN request to change to maintenance sensor mode */
|
||||
TEST_ASSERT(sensor_mode == 0);
|
||||
/* THEN succeed */
|
||||
TEST_ASSERT(fp_set_sensor_mode(FP_MODE_SENSOR_MAINTENANCE,
|
||||
&output_mode) == EC_RES_SUCCESS);
|
||||
/* THEN requested mode is returned */
|
||||
TEST_ASSERT(output_mode == FP_MODE_SENSOR_MAINTENANCE);
|
||||
/* THEN sensor_mode is updated */
|
||||
TEST_ASSERT(sensor_mode == FP_MODE_SENSOR_MAINTENANCE);
|
||||
|
||||
return EC_SUCCESS;
|
||||
}
|
||||
|
||||
void run_test(int argc, char **argv)
|
||||
{
|
||||
RUN_TEST(test_fp_enc_status_valid_flags);
|
||||
|
@ -176,5 +193,6 @@ void run_test(int argc, char **argv)
|
|||
RUN_TEST(test_set_fp_tpm_seed);
|
||||
RUN_TEST(test_set_fp_tpm_seed_again);
|
||||
RUN_TEST(test_fp_set_sensor_mode);
|
||||
RUN_TEST(test_fp_set_maintenance_mode);
|
||||
test_print_result();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue