Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59c8e41e authored by Rohit Bandi's avatar Rohit Bandi Committed by Gerrit - the friendly Code Review server
Browse files

HID: qvr: Adding numerator and denominator to sensor data



Adding numerator and denominator to sensor data
for increasing scalability of driver.

Change-Id: Iba90d890b70feae41a273fd51d1a76ab61c5211b
Signed-off-by: default avatarRohit Bandi <rohitbandi@codeaurora.org>
parent 9889bcd5
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ struct qvr_buf_index {
	uint8_t padding[60];
};

// struct must be 64 bit aligned
struct qvr_sensor_t {
	uint64_t gts;
	uint64_t ats;
@@ -70,13 +71,19 @@ struct qvr_sensor_t {
	s32 gx;
	s32 gy;
	s32 gz;
	u32 gNumerator;
	u32 gDenominator;
	s32 ax;
	s32 ay;
	s32 az;
	u32 aNumerator;
	u32 aDenominator;
	s32 mx;
	s32 my;
	s32 mz;
	uint8_t padding[4];
	u32 mNumerator;
	u32 mDenominator;
	uint8_t padding[44];
};

struct qvr_calib_data {
@@ -280,9 +287,9 @@ static int qvr_send_package_wrap(u8 *message, int msize, struct hid_device *hid)
	if (!sensor->ts_offset)
		sensor->ts_offset = imuData.gts0;
	index_buf = (struct qvr_buf_index *)((uintptr_t)sensor->vaddr +
		(sensor->vsize / 2) + (8 * sizeof(*sensor_buf)));
	sensor_buf = (struct qvr_sensor_t *)((uintptr_t)sensor->vaddr +
		(sensor->vsize / 2));
	sensor_buf = (struct qvr_sensor_t *)((uintptr_t)sensor->vaddr +
		(sensor->vsize / 2) + sizeof(struct qvr_buf_index));

	data = (struct qvr_sensor_t *)&(sensor_buf[buf_index]);
	if (sensor->ts_offset > imuData.gts0)
@@ -315,6 +322,12 @@ static int qvr_send_package_wrap(u8 *message, int msize, struct hid_device *hid)
	data->mx = imuData.my0;
	data->my = imuData.mx0;
	data->mz = imuData.mz0;
	data->aNumerator = imuData.aNumerator;
	data->aDenominator = imuData.aDenominator;
	data->gNumerator = imuData.gNumerator;
	data->gDenominator = imuData.gDenominator;
	data->mNumerator = imuData.mNumerator;
	data->mDenominator = imuData.mDenominator;

	trace_qvr_recv_sensor("gyro", data->gts, data->gx, data->gy, data->gz);
	trace_qvr_recv_sensor("accel", data->ats, data->ax, data->ay, data->az);