diff options
Diffstat (limited to 'common/als.c')
-rw-r--r-- | common/als.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/common/als.c b/common/als.c index e67eb03777..0ae06566aa 100644 --- a/common/als.c +++ b/common/als.c @@ -25,10 +25,15 @@ void als_task(void) { int i, val; uint16_t *mapped = (uint16_t *)host_get_memmap(EC_MEMMAP_ALS); + uint16_t als_data; while (1) { - for (i = 0; i < EC_ALS_ENTRIES && i < ALS_COUNT; i++) - mapped[i] = als_read(i, &val) == EC_SUCCESS ? val : 0; + for (i = 0; i < EC_ALS_ENTRIES && i < ALS_COUNT; i++) { + als_data = als_read(i, &val) == EC_SUCCESS ? val : 0; + host_lock_memmap(); + mapped[i] = als_data; + host_unlock_memmap(); + } task_wait_event(SECOND); } |