From 98ad405d59b1199647562f4443d536d5ebf49b4e Mon Sep 17 00:00:00 2001
From: Ryan Pavlik <ryan.pavlik@collabora.com>
Date: Tue, 24 Mar 2020 17:43:17 -0500
Subject: [PATCH] d/psmv: Use all 6 calibration measurements to compute accel
 bias.

---
 src/xrt/drivers/psmv/psmv_driver.c | 36 +++++++++++++++---------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/xrt/drivers/psmv/psmv_driver.c b/src/xrt/drivers/psmv/psmv_driver.c
index 98aed37ab..e101a5ace 100644
--- a/src/xrt/drivers/psmv/psmv_driver.c
+++ b/src/xrt/drivers/psmv/psmv_driver.c
@@ -1,8 +1,8 @@
-// Copyright 2019, Collabora, Ltd.
+// Copyright 2019-2020, Collabora, Ltd.
 // SPDX-License-Identifier: BSL-1.0
 /*!
  * @file
- * @brief  PSVR prober code.
+ * @brief  PlayStation Move motion controller prober and driver code.
  * @author Jakob Bornecrantz <jakob@collabora.com>
  * @author Ryan Pavlik <ryan.pavlik@collabora.com>
  * @ingroup drv_psmv
@@ -1305,17 +1305,17 @@ psmv_get_calibration_zcm1(struct psmv_device *psmv)
 	    (zcm1->accel_max_z.z - zcm1->accel_min_z.z) / 2.0;
 
 	psmv->calibration.accel.bias.x =
-	    (zcm1->accel_min_y.x + zcm1->accel_max_y.x + zcm1->accel_min_z.x +
-	     zcm1->accel_max_z.x) /
-	    4.0;
+	    (zcm1->accel_min_x.x + zcm1->accel_max_x.x + zcm1->accel_min_y.x +
+	     zcm1->accel_max_y.x + zcm1->accel_min_z.x + zcm1->accel_max_z.x) /
+	    6.0;
 	psmv->calibration.accel.bias.y =
-	    (zcm1->accel_min_x.y + zcm1->accel_max_x.y + zcm1->accel_min_z.y +
-	     zcm1->accel_max_z.y) /
-	    4.0;
+	    (zcm1->accel_min_x.y + zcm1->accel_max_x.y + zcm1->accel_min_y.y +
+	     zcm1->accel_max_y.y + zcm1->accel_min_z.y + zcm1->accel_max_z.y) /
+	    6.0;
 	psmv->calibration.accel.bias.z =
 	    (zcm1->accel_min_x.z + zcm1->accel_max_x.z + zcm1->accel_min_y.z +
-	     zcm1->accel_max_y.z) /
-	    4.0;
+	     zcm1->accel_max_y.z + zcm1->accel_min_z.z + zcm1->accel_max_z.z) /
+	    6.0;
 
 
 	/*
@@ -1531,17 +1531,17 @@ psmv_get_calibration_zcm2(struct psmv_device *psmv)
 	    (zcm2->accel_max_z.z - zcm2->accel_min_z.z) / 2.0;
 
 	psmv->calibration.accel.bias.x =
-	    (zcm2->accel_min_y.x + zcm2->accel_max_y.x + zcm2->accel_min_z.x +
-	     zcm2->accel_max_z.x) /
-	    4.0;
+	    (zcm2->accel_min_x.x + zcm2->accel_max_x.x + zcm2->accel_min_y.x +
+	     zcm2->accel_max_y.x + zcm2->accel_min_z.x + zcm2->accel_max_z.x) /
+	    6.0;
 	psmv->calibration.accel.bias.y =
-	    (zcm2->accel_min_x.y + zcm2->accel_max_x.y + zcm2->accel_min_z.y +
-	     zcm2->accel_max_z.y) /
-	    4.0;
+	    (zcm2->accel_min_x.y + zcm2->accel_max_x.y + zcm2->accel_min_y.y +
+	     zcm2->accel_max_y.y + zcm2->accel_min_z.y + zcm2->accel_max_z.y) /
+	    6.0;
 	psmv->calibration.accel.bias.z =
 	    (zcm2->accel_min_x.z + zcm2->accel_max_x.z + zcm2->accel_min_y.z +
-	     zcm2->accel_max_y.z) /
-	    4.0;
+	     zcm2->accel_max_y.z + zcm2->accel_min_z.z + zcm2->accel_max_z.z) /
+	    6.0;
 
 
 	/*