ec/google/chromeec: Update google_chromeec_get_board_version prototype

The helper function to get the board version from EC returns 0 on
failure. But 0 is also a valid board version. Update the helper function
to return -1 on failure and update the use-cases.

BUG=b:114001972,b:114677884,b:114677887

Change-Id: I93e8dbce2ff26e76504b132055985f53cbf07d31
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Tested-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/28576
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jett Rink <jettrink@google.com>
This commit is contained in:
Karthikeyan Ramasubramanian
2018-09-17 16:19:34 -06:00
committed by Martin Roth
parent 2beadeec35
commit c80ff8437d
13 changed files with 72 additions and 22 deletions

View File

@@ -637,7 +637,7 @@ int google_chromeec_cbi_get_dram_part_num(char *buf, size_t bufsize)
}
#ifndef __SMM__
u16 google_chromeec_get_board_version(void)
int google_chromeec_get_board_version(uint32_t *version)
{
struct chromeec_command cmd;
struct ec_response_board_version board_v;
@@ -649,10 +649,11 @@ u16 google_chromeec_get_board_version(void)
cmd.cmd_data_out = &board_v;
cmd.cmd_dev_index = 0;
if (google_chromeec_command(&cmd) != 0)
return 0;
if (google_chromeec_command(&cmd))
return -1;
return board_v.board_version;
*version = board_v.board_version;
return 0;
}
u32 google_chromeec_get_sku_id(void)

View File

@@ -46,7 +46,16 @@ uint64_t google_chromeec_get_device_current_events(void);
int google_chromeec_check_feature(int feature);
uint8_t google_chromeec_calc_checksum(const uint8_t *data, int size);
u16 google_chromeec_get_board_version(void);
/**
* google_chromeec_get_board_version() - Get the board version
* @version: Out parameter to retrieve the board Version
*
* Return: 0 on success or -1 on failure/error.
*
* This function is used to get the board version information from EC.
*/
int google_chromeec_get_board_version(uint32_t *version);
u32 google_chromeec_get_sku_id(void);
int google_chromeec_set_sku_id(u32 skuid);
uint64_t google_chromeec_get_events_b(void);

View File

@@ -18,10 +18,12 @@
uint32_t board_id(void)
{
MAYBE_STATIC int id = -1;
MAYBE_STATIC uint32_t id = BOARD_ID_INIT;
if (id < 0)
id = google_chromeec_get_board_version();
if (id == BOARD_ID_INIT) {
if (google_chromeec_get_board_version(&id))
id = BOARD_ID_UNKNOWN;
}
return id;
}