ccd_config: Fix setting test lab mode

Somewhere this lost a call to ccd_save_config().  Put that back.

Also, make it so 'ccd testlab' prints the current state.

BUG=b:65407184
BRANCH=cr50
TEST=manual with CR50_DEV=1 image
	ccd oops
	ccd testlab -> disabled

	ccd testlab enable
	ppresence (or tap power button)
	ppresence
	ppresence
	ccd testlab -> enabled

	reboot
	ccd testlab -> enabled

	ccd lock
	ccd -> state=locked
	ccd testlab open
	ccd -> state=opened

	ccd testlab disable
	ppresence (or tap power button)
	ppresence
	ppresence
	ccd testlab -> disabled

	reboot
	ccd testlab -> disabled
	ccd testlab open -> acces denied

Change-Id: Iffdd84e8e0df3222b8762638b8a613f146c15f13
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/653765
Reviewed-by: Mary Ruthven <mruthven@chromium.org>
This commit is contained in:
Randall Spangler
2017-09-06 13:17:19 -07:00
committed by chrome-bot
parent a59ea3c4db
commit 109c676eeb

View File

@@ -608,12 +608,15 @@ static void ccd_testlab_toggle(void)
{
int v = !ccd_get_flag(CCD_FLAG_TEST_LAB);
CPRINTS("Test lab mode %sbled", v ? "ena" : "dis");
/* Use raw_set_flag() because the test lab flag is internal */
mutex_lock(&ccd_config_mutex);
raw_set_flag(CCD_FLAG_TEST_LAB, v);
mutex_unlock(&ccd_config_mutex);
if (ccd_save_config() == EC_SUCCESS)
CPRINTS("CCD test lab mode %sbled", v ? "ena" : "dis");
else
CPRINTS("Error setting CCD test lab mode!");
}
/******************************************************************************/
@@ -947,8 +950,11 @@ static int command_ccd_testlab(int argc, char **argv)
if (force_disabled)
return EC_ERROR_ACCESS_DENIED;
if (argc < 2)
return EC_ERROR_PARAM_COUNT;
if (argc < 2) {
ccprintf("CCD test lab mode %sbled",
ccd_get_flag(CCD_FLAG_TEST_LAB) ? "ena" : "dis");
return EC_SUCCESS;
}
if (!strcasecmp(argv[1], "open")) {
if (!ccd_get_flag(CCD_FLAG_TEST_LAB))