summaryrefslogtreecommitdiff
path: root/common/mag_cal.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/mag_cal.c')
-rw-r--r--common/mag_cal.c52
1 files changed, 21 insertions, 31 deletions
diff --git a/common/mag_cal.c b/common/mag_cal.c
index 13beb93af2..a9ce95798c 100644
--- a/common/mag_cal.c
+++ b/common/mag_cal.c
@@ -1,4 +1,4 @@
-/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+/* Copyright 2015 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -14,17 +14,17 @@
#include "util.h"
/* Data from sensor is in 16th of uT, 0.0625 uT/LSB */
-#define MAG_CAL_RAW_UT 16
+#define MAG_CAL_RAW_UT 16
-#define MAX_EIGEN_RATIO FLOAT_TO_FP(25.0f)
-#define MAX_EIGEN_MAG FLOAT_TO_FP(80.0f * MAG_CAL_RAW_UT)
-#define MIN_EIGEN_MAG FLOAT_TO_FP(10.0f * MAG_CAL_RAW_UT)
+#define MAX_EIGEN_RATIO FLOAT_TO_FP(25.0f)
+#define MAX_EIGEN_MAG FLOAT_TO_FP(80.0f * MAG_CAL_RAW_UT)
+#define MIN_EIGEN_MAG FLOAT_TO_FP(10.0f * MAG_CAL_RAW_UT)
-#define MAX_FIT_MAG MAX_EIGEN_MAG
-#define MIN_FIT_MAG MIN_EIGEN_MAG
+#define MAX_FIT_MAG MAX_EIGEN_MAG
+#define MIN_FIT_MAG MIN_EIGEN_MAG
-#define CPRINTF(format, args...) cprintf(CC_ACCEL, format, ## args)
-#define PRINTF_FLOAT(x) ((int)((x) * 100.0f))
+#define CPRINTF(format, args...) cprintf(CC_ACCEL, format, ##args)
+#define PRINTF_FLOAT(x) ((int)((x)*100.0f))
/**
* Compute the covariance element: (avg(ab) - avg(a)*avg(b))
@@ -51,34 +51,25 @@ static int moc_eigen_test(struct mag_cal_t *moc)
mat33_fp_t eigenvecs;
fp_t evmax, evmin, evmag;
fp_t inv = fp_div_dbz(FLOAT_TO_FP(1.0f),
- INT_TO_FP((int) moc->kasa_fit.nsamples));
+ INT_TO_FP((int)moc->kasa_fit.nsamples));
int eigen_pass;
/* covariance matrix */
- S[0][0] = covariance_element(moc->kasa_fit.acc_xx,
- moc->kasa_fit.acc_x,
- moc->kasa_fit.acc_x,
- inv);
+ S[0][0] = covariance_element(moc->kasa_fit.acc_xx, moc->kasa_fit.acc_x,
+ moc->kasa_fit.acc_x, inv);
S[0][1] = S[1][0] = covariance_element(moc->kasa_fit.acc_xy,
moc->kasa_fit.acc_x,
- moc->kasa_fit.acc_y,
- inv);
+ moc->kasa_fit.acc_y, inv);
S[0][2] = S[2][0] = covariance_element(moc->kasa_fit.acc_xz,
moc->kasa_fit.acc_x,
- moc->kasa_fit.acc_z,
- inv);
- S[1][1] = covariance_element(moc->kasa_fit.acc_yy,
- moc->kasa_fit.acc_y,
- moc->kasa_fit.acc_y,
- inv);
+ moc->kasa_fit.acc_z, inv);
+ S[1][1] = covariance_element(moc->kasa_fit.acc_yy, moc->kasa_fit.acc_y,
+ moc->kasa_fit.acc_y, inv);
S[1][2] = S[2][1] = covariance_element(moc->kasa_fit.acc_yz,
moc->kasa_fit.acc_y,
- moc->kasa_fit.acc_z,
- inv);
- S[2][2] = covariance_element(moc->kasa_fit.acc_zz,
- moc->kasa_fit.acc_z,
- moc->kasa_fit.acc_z,
- inv);
+ moc->kasa_fit.acc_z, inv);
+ S[2][2] = covariance_element(moc->kasa_fit.acc_zz, moc->kasa_fit.acc_z,
+ moc->kasa_fit.acc_z, inv);
mat33_fp_get_eigenbasis(S, eigenvals, eigenvecs);
@@ -90,9 +81,8 @@ static int moc_eigen_test(struct mag_cal_t *moc)
evmag = fp_sqrtf(eigenvals[X] + eigenvals[Y] + eigenvals[Z]);
- eigen_pass = (fp_mul(evmin, MAX_EIGEN_RATIO) > evmax)
- && (evmag > MIN_EIGEN_MAG)
- && (evmag < MAX_EIGEN_MAG);
+ eigen_pass = (fp_mul(evmin, MAX_EIGEN_RATIO) > evmax) &&
+ (evmag > MIN_EIGEN_MAG) && (evmag < MAX_EIGEN_MAG);
#if 0
CPRINTF("mag eigenvalues: (%.02d %.02d %.02d), ",