diff options
author | Shawn McCarney <shawnmm@us.ibm.com> | 2017-05-15 09:11:32 -0500 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2017-06-28 10:05:28 -0400 |
commit | 2f3dd9e14af82d8c7bcc0f154d6fc06fa96d279a (patch) | |
tree | b74dddf3ee05db9af97a0e75c0027404421f9926 /src/occ_405/sensor/sensor.c | |
parent | 8a97adf89847fa21d4ed3117d2a4150baf527bfe (diff) | |
download | talos-occ-2f3dd9e14af82d8c7bcc0f154d6fc06fa96d279a.tar.gz talos-occ-2f3dd9e14af82d8c7bcc0f154d6fc06fa96d279a.zip |
OCC: Non-GPU Sensors to main memory: Phase 3
A subset of OCC sensors are now copied to main memory. Includes sensors
using both the full and counter sensor readings structures.
Also made the following changes to the sensor system:
* Added timestamp field to sensor_t
Change-Id: Ibd3044a1be09160c2d6bdb06ac3c291f874f714b
RTC: 153674
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42016
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/occ_405/sensor/sensor.c')
-rwxr-xr-x | src/occ_405/sensor/sensor.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/occ_405/sensor/sensor.c b/src/occ_405/sensor/sensor.c index 9aedc9f..73c2a5e 100755 --- a/src/occ_405/sensor/sensor.c +++ b/src/occ_405/sensor/sensor.c @@ -25,13 +25,14 @@ -#include <sensor.h> // sensor structure and other defines +#include <sensor.h> // sensor structure and other defines #include <occ_common.h> // For size_t needed by memset -#include <string.h> // For memset -#include "ssx_io.h" // For sprintf -#include <occ_service_codes.h> // OCC reason codes +#include <string.h> // For memset +#include "ssx_io.h" // For sprintf +#include <occ_service_codes.h> // OCC reason codes #include <sensor_service_codes.h> // sensor module ids -#include <trac.h> // Trace macros +#include <trac.h> // Trace macros +#include <rtls.h> // For G_current_tick #define UINT16_MIN 0 @@ -149,6 +150,7 @@ void sensor_reset( sensor_t * io_sensor_ptr) { if( io_sensor_ptr != NULL) { + io_sensor_ptr->timestamp = 0x0; io_sensor_ptr->accumulator = 0x0; io_sensor_ptr->sample = 0x0; @@ -266,6 +268,9 @@ void sensor_update( sensor_t * io_sensor_ptr, const uint16_t i_sensor_value) sensor_reset(io_sensor_ptr); } + // update timestamp + io_sensor_ptr->timestamp = G_current_tick; + // update sample value io_sensor_ptr->sample = i_sensor_value; @@ -280,6 +285,7 @@ void sensor_update( sensor_t * io_sensor_ptr, const uint16_t i_sensor_value) // add sample value to accumulator io_sensor_ptr->accumulator += i_sensor_value; + // increment update tag io_sensor_ptr->update_tag += 1; } |