summaryrefslogtreecommitdiff
path: root/common/motion_sense.c
diff options
context:
space:
mode:
authorAlec Berg <alecaberg@chromium.org>2015-09-17 11:42:43 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-09-17 19:00:53 -0700
commit5717b3150c8a8d43e07ce2dc8065c3515d3651f7 (patch)
treeb908d7a6bed31be5e5c06661bab52356b4d2b5da /common/motion_sense.c
parente686e95e9e2f50380862a9f95c0bba02d237b646 (diff)
downloadchrome-ec-5717b3150c8a8d43e07ce2dc8065c3515d3651f7.tar.gz
motion: add config option to use the old accelerometer ref frame
Add config option to use the old accelerometer reference frame, which is used on samus and products using 3.14 or earlier kernel. This fixes samus so that the lid angle calculation is correct again. This also moves the accel_orientation structure out of the board directory and into common code, since it purely is a function of the reference frame being used. BUG=chrome-os-partner:43494 BRANCH=none TEST=test on samus, verify lid angle calculation is correct once again. also, enable the motion_lid test and verify that it passes. Change-Id: I948a74a71964b54c68be66e828a030ddd0418947 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/300510 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Diffstat (limited to 'common/motion_sense.c')
-rw-r--r--common/motion_sense.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/common/motion_sense.c b/common/motion_sense.c
index bea0bef1cf..9add2d1712 100644
--- a/common/motion_sense.c
+++ b/common/motion_sense.c
@@ -41,6 +41,10 @@ static int accel_disp;
#define SENSOR_ACTIVE(_sensor) (sensor_active & (_sensor)->active_mask)
+#if defined(CONFIG_LPC) || defined(TEST_MOTION_LID)
+#define UPDATE_HOST_MEM_MAP
+#endif
+
/*
* Mutex to protect sensor values between host command task and
* motion sense task:
@@ -388,7 +392,7 @@ static inline void set_present(uint8_t *lpc_status)
*lpc_status |= EC_MEMMAP_ACC_STATUS_PRESENCE_BIT;
}
-#ifdef CONFIG_LPC
+#ifdef UPDATE_HOST_MEM_MAP
/* Update/Write LPC data */
static inline void update_sense_data(uint8_t *lpc_status,
uint16_t *lpc_data, int *psample_id)
@@ -526,7 +530,7 @@ void motion_sense_task(void)
#ifdef CONFIG_ACCEL_FIFO
timestamp_t ts_last_int;
#endif
-#ifdef CONFIG_LPC
+#ifdef UPDATE_HOST_MEM_MAP
int sample_id = 0;
uint8_t *lpc_status;
uint16_t *lpc_data;
@@ -591,7 +595,7 @@ void motion_sense_task(void)
CPRINTF("]\n");
}
#endif
-#ifdef CONFIG_LPC
+#ifdef UPDATE_HOST_MEM_MAP
update_sense_data(lpc_status, lpc_data, &sample_id);
#endif