From c8dfd0c5eec992065535129295bb9eaa7597e9fc Mon Sep 17 00:00:00 2001 From: Robert Collins Date: Thu, 10 Aug 2017 09:05:32 -0700 Subject: trace: sensors: Add ATRACE macros for sensor events Adding ATRACE macros will enable tracking motion sensor events for end-to-end latency. AV-388 Change-Id: I774dff325d92b954aaecb660f81899f277566cf2 Signed-off-by: Robert Collins Reviewed-on: https://git-master.nvidia.com/r/1536969 Reviewed-by: svccoveritychecker GVS: Gerrit_Virtual_Submit Reviewed-by: Akhilesh Khumbum --- include/trace/events/atrace.h | 2 +- include/trace/events/nvs_sensors.h | 53 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 include/trace/events/nvs_sensors.h (limited to 'include/trace') diff --git a/include/trace/events/atrace.h b/include/trace/events/atrace.h index 7fe8b30d9..486809336 100644 --- a/include/trace/events/atrace.h +++ b/include/trace/events/atrace.h @@ -3,7 +3,7 @@ * * atrace specific events * - * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/include/trace/events/nvs_sensors.h b/include/trace/events/nvs_sensors.h new file mode 100644 index 000000000..13de3ea53 --- /dev/null +++ b/include/trace/events/nvs_sensors.h @@ -0,0 +1,53 @@ +/* + * include/trace/events/nvs_sensors.h + * + * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#ifndef _LINUX_TRACE_EVENTS_NVS_SENSORS_H +#define _LINUX_TRACE_EVENTS_NVS_SENSORS_H + +#include +#define TRACE_SENSOR_ID (100) + +/* + * (keep sync with sensor HAL trace.h) + * COOKIE defintion for sensor HAL ATRACE events + * + * 3322222222221111111111000 0 000000 - Bit + * 1098765432109876543210987 6 543210 Position + * +-------------------------+-+------+ + * | TIMESTAMP |P| STYPE| + * +-------------------------+-+------+ + * + * Where: + * TIMESTAMP = Sensor event timestamp + * P = Private sensor bit indicator (1=private, 0=not private) + * STYPE = Sensor TYPE + */ +#define COOKIE_TOTAL_BITS 32 +#define COOKIE_SENSOR_TYPE_BITS 6 +#define COOKIE_SENSOR_PRIVATE_BITS 1 +#define COOKIE_TIMESTAMP_BITS (COOKIE_TOTAL_BITS - COOKIE_SENSOR_PRIVATE_BITS - COOKIE_SENSOR_TYPE_BITS) + +#define COOKIE_SENSOR_TYPE_SHIFT 0 +#define COOKIE_SENSOR_PRIVATE_SHIFT COOKIE_SENSOR_TYPE_BITS +#define COOKIE_TIMESTAMP_SHIFT (COOKIE_SENSOR_PRIVATE_BITS + COOKIE_SENSOR_TYPE_BITS) + +#define COOKIE_SENSOR_TYPE_MASK (((1 << COOKIE_SENSOR_TYPE_BITS) - 1) << COOKIE_SENSOR_TYPE_SHIFT) +#define COOKIE_SENSOR_PRIVATE_MASK (((1 << COOKIE_SENSOR_PRIVATE_BITS) - 1) << COOKIE_SENSOR_PRIVATE_SHIFT) +#define COOKIE_TIMESTAMP_MASK (((1 << COOKIE_TIMESTAMP_BITS) - 1) << COOKIE_TIMESTAMP_SHIFT) + +#define SENSOR_TYPE_PRIVATE_BIT_POS 16 +#define TIMESTAMP_SCALE_SHIFT 16 // divide by 65536 + +#define COOKIE(sensor_type,timestamp) \ + (((sensor_type >> (COOKIE_TOTAL_BITS - SENSOR_TYPE_PRIVATE_BIT_POS - COOKIE_SENSOR_PRIVATE_SHIFT)) & COOKIE_SENSOR_PRIVATE_MASK) | \ + ((sensor_type << COOKIE_SENSOR_TYPE_SHIFT) & COOKIE_SENSOR_TYPE_MASK) | \ + (((timestamp >> TIMESTAMP_SCALE_SHIFT) << COOKIE_TIMESTAMP_SHIFT) & COOKIE_TIMESTAMP_MASK)) + +#endif /* _LINUX_TRACE_EVENTS_NVS_SENSORS_H */ -- cgit v1.2.2