summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Yung-Chieh Lo <yjlou@chromium.org>2014-01-06 14:46:11 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-01-07 02:52:54 +0000
commit9ccbedda19de14fbba47d5e4e97579f5b8573184 (patch)
tree9d248df469d9959e9f05d2fc4aff6c4f30b6225b
parent143763421c4f85a6d7e60bee0f7330dac6f2aeba (diff)
downloadchrome-ec-9ccbedda19de14fbba47d5e4e97579f5b8573184.tar.gz
nyan: add 'max_size' parameter to read_mapped_string()
We changed the behavior of indata.size==0 case in cros_ec kernel driver. This breaks the nyan battery driver. Change the ectool as well. BUG=chrome-os-partner:24851 BRANCH=nyan TEST=verified on nyan rev B % ectool battery Battery info: OEM name: SANYO Model number: AP13J3K Chemistry : LION Serial number: 174E Design capacity: 4030 mAh Last full charge: 4030 mAh Design output voltage 11250 mV Cycle count 0 Present voltage 12934 mV Present current 0 mA Remaining capacity 3966 mAh Flags 0x03 AC_PRESENT BATT_PRESENT Change-Id: Id63d933802ed85d7f5d8f1c53e6389b083f41a8a Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/181667 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--util/ectool.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/util/ectool.c b/util/ectool.c
index 3c42045cda..dedb617cf9 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -245,11 +245,11 @@ static uint32_t read_mapped_mem32(uint8_t offset)
return val;
}
-static int read_mapped_string(uint8_t offset, char *buffer)
+static int read_mapped_string(uint8_t offset, char *buffer, int max_size)
{
int ret;
- ret = ec_readmem(offset, 0, buffer);
+ ret = ec_readmem(offset, max_size, buffer);
if (ret <= 0) {
fprintf(stderr, "failure in %s(): %d\n", __func__, ret);
exit(1);
@@ -2769,22 +2769,26 @@ int cmd_battery(int argc, char *argv[])
printf("Battery info:\n");
- rv = read_mapped_string(EC_MEMMAP_BATT_MFGR, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_MFGR, batt_text,
+ sizeof(batt_text));
if (rv < 0 || !is_string_printable(batt_text))
goto cmd_error;
printf(" OEM name: %s\n", batt_text);
- rv = read_mapped_string(EC_MEMMAP_BATT_MODEL, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_MODEL, batt_text,
+ sizeof(batt_text));
if (rv < 0 || !is_string_printable(batt_text))
goto cmd_error;
printf(" Model number: %s\n", batt_text);
- rv = read_mapped_string(EC_MEMMAP_BATT_TYPE, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_TYPE, batt_text,
+ sizeof(batt_text));
if (rv < 0 || !is_string_printable(batt_text))
goto cmd_error;
printf(" Chemistry : %s\n", batt_text);
- rv = read_mapped_string(EC_MEMMAP_BATT_SERIAL, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_SERIAL, batt_text,
+ sizeof(batt_text));
printf(" Serial number: %s\n", batt_text);
val = read_mapped_mem32(EC_MEMMAP_BATT_DCAP);