From: Vladimir Serbinenko Date: Tue, 23 Feb 2016 10:26:35 +0000 (+0100) Subject: cros fix X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=06c92907c198a580a14412c7c2fa5c87906fd2ac;p=thirdparty%2Fgrub.git cros fix --- diff --git a/grub-core/term/arm/cros.c b/grub-core/term/arm/cros.c index 7eb239907..04c0ac345 100644 --- a/grub-core/term/arm/cros.c +++ b/grub-core/term/arm/cros.c @@ -26,13 +26,13 @@ #include #include #include -#include +#include struct grub_ps2_state ps2_state; -struct cros_ec_keyscan old_scan; +struct grub_cros_ec_keyscan old_scan; -static grub_uint8_t map_code[CROS_EC_KEYSCAN_COLS][CROS_EC_KEYSCAN_ROWS]; +static grub_uint8_t map_code[GRUB_CROS_EC_KEYSCAN_COLS][GRUB_CROS_EC_KEYSCAN_ROWS]; static grub_uint8_t e0_translate[16] = { @@ -47,13 +47,13 @@ static grub_uint8_t e0_translate[16] = static int grub_cros_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) { - struct cros_ec_keyscan scan; + struct grub_cros_ec_keyscan scan; int i, j; - if (cros_ec_scan_keyboard(&scan) < 0) + if (grub_cros_ec_scan_keyboard(&scan) < 0) return GRUB_TERM_NO_KEY; - for (i = 0; i < CROS_EC_KEYSCAN_COLS; i++) + for (i = 0; i < GRUB_CROS_EC_KEYSCAN_COLS; i++) if (scan.data[i] ^ old_scan.data[i]) - for (j = 0; j < CROS_EC_KEYSCAN_ROWS; j++) + for (j = 0; j < GRUB_CROS_EC_KEYSCAN_ROWS; j++) if ((scan.data[i] ^ old_scan.data[i]) & (1 << j)) { grub_uint8_t code = map_code[i][j]; @@ -93,7 +93,8 @@ cros_attach(const struct grub_fdtbus_dev *dev __attribute__ ((unused))) if (keymap) { for (i = 0; i + 3 < keymap_size; i += 4) - if (keymap[i+1] < CROS_EC_KEYSCAN_COLS && keymap[i] < CROS_EC_KEYSCAN_ROWS && keymap[i+2] == 0 && keymap[i+3] < 0x80) + if (keymap[i+1] < GRUB_CROS_EC_KEYSCAN_COLS && keymap[i] < GRUB_CROS_EC_KEYSCAN_ROWS + && keymap[i+2] == 0 && keymap[i+3] < 0x80) map_code[keymap[i+1]][keymap[i]] = keymap[i+3]; } diff --git a/grub-core/term/arm/cros_ec.c b/grub-core/term/arm/cros_ec.c index ce58e6c56..49d7b401a 100644 --- a/grub-core/term/arm/cros_ec.c +++ b/grub-core/term/arm/cros_ec.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include static grub_uint64_t grub_get_time_us (void) @@ -93,7 +93,7 @@ spi_stop (void) #define mdelay grub_millisleep #define memcpy grub_memcpy -static const uint64_t FramingTimeoutMs = 300 * 1000; +static const uint64_t FramingTimeoutUs = 300 * 1000; static const uint8_t EcFramingByte = 0xec; @@ -249,7 +249,8 @@ static int ec_command(int cmd, int cmd_version, } // If the caller wants the response, copy it out for them. - din_len = MIN(din_len, length); + if (length < din_len) + din_len = length; if (din) { memcpy(din, (uint8_t *)busbuf + CROS_EC_SPI_IN_HDR_SIZE, din_len); diff --git a/include/grub/arm/cros_ec.h b/include/grub/arm/cros_ec.h index 7c8a940e8..3859fad75 100644 --- a/include/grub/arm/cros_ec.h +++ b/include/grub/arm/cros_ec.h @@ -7,7 +7,7 @@ #define GRUB_CROS_EC_KEYSCAN_ROWS 8 struct grub_cros_ec_keyscan { - grub_uint8_t data[CROS_EC_KEYSCAN_COLS]; + grub_uint8_t data[GRUB_CROS_EC_KEYSCAN_COLS]; }; int