diff options
author | Vic Yang <victoryang@chromium.org> | 2014-06-12 11:50:09 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-06-13 03:12:41 +0000 |
commit | 054d4772d00809db79b8f6b6e8fcba5d2da49512 (patch) | |
tree | de3f3d01fc20127a20a519681d959fe4de6a792f | |
parent | dcd905802b20e2c32c3baae4693d06013f003732 (diff) | |
download | chrome-ec-054d4772d00809db79b8f6b6e8fcba5d2da49512.tar.gz |
Keyborg: disable fast scan at compile time instead of run time
This slightly reduces binary size and increases scan rate when running
without fast scan.
BUG=None
TEST=Build and boot w/ and w/o fast scan.
BRANCH=None
Change-Id: I66683dce9c8f5e74f86764d8a4f33f4e1a161e08
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/203633
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | board/keyborg/touch_scan.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/board/keyborg/touch_scan.c b/board/keyborg/touch_scan.c index da71b605a5..21505bd0bf 100644 --- a/board/keyborg/touch_scan.c +++ b/board/keyborg/touch_scan.c @@ -24,9 +24,13 @@ static uint8_t buf[2][ROW_COUNT * 2]; +#ifdef CONFIG_KEYBORG_FAST_SCAN #define SCAN_BUF_SIZE (DIV_ROUND_UP(COL_COUNT * 2, 32) + 2) #define GET_SCAN_NEEDED(x) (scan_needed[(x) / 32 + 1] & (1 << ((x) & 31))) static uint32_t scan_needed[SCAN_BUF_SIZE]; +#else +#define GET_SCAN_NEEDED(x) 1 +#endif #define SPAN_LENGTH (2 * COL_SPAN + 1) #define SPAN_MASK ((1 << SPAN_LENGTH) - 1) @@ -138,6 +142,7 @@ static void enable_col(int idx, int enabled) } } +#ifdef CONFIG_KEYBORG_FAST_SCAN static inline void set_scan_needed(int col) { uint8_t word = (col - COL_SPAN + 32) / 32; @@ -148,7 +153,6 @@ static inline void set_scan_needed(int col) scan_needed[word + 1] |= SPAN_MASK >> (32 - bit); } -#ifdef CONFIG_KEYBORG_FAST_SCAN int fast_scan(uint32_t *data) { int col; @@ -185,6 +189,9 @@ int fast_scan(uint32_t *data) } STM32_PMSE_MRCR = 0; + /* Discharge the panel */ + discharge(); + return EC_SUCCESS; fast_scan_err: enable_col(chip_col, 0); @@ -193,15 +200,7 @@ fast_scan_err: return EC_ERROR_UNKNOWN; } #else -int fast_scan(uint32_t *data) -{ - int col; - - for (col = 0; col < COL_COUNT * 2; ++col) - set_scan_needed(col); - - return EC_SUCCESS; -} +#define fast_scan(x) EC_SUCCESS #endif void scan_column(uint8_t *data) @@ -235,9 +234,6 @@ void touch_scan_slave_start(void) if (fast_scan(scan_needed) != EC_SUCCESS) goto slave_err; - /* Discharge the panel */ - discharge(); - for (col = 0; col < COL_COUNT * 2; ++col) { if (col < COL_COUNT) { enable_col(col, 1); @@ -311,9 +307,6 @@ int touch_scan_full_matrix(void) if (fast_scan(scan_needed) != EC_SUCCESS) goto master_err; - /* Discharge the panel */ - discharge(); - for (col = 0; col < COL_COUNT * 2; ++col) { if (col >= COL_COUNT) { enable_col(col - COL_COUNT, 1); |