aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/sensorhub/ssp_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensorhub/ssp_data.c')
-rw-r--r--drivers/sensorhub/ssp_data.c51
1 files changed, 30 insertions, 21 deletions
diff --git a/drivers/sensorhub/ssp_data.c b/drivers/sensorhub/ssp_data.c
index 9ccbca0..3995d71 100644
--- a/drivers/sensorhub/ssp_data.c
+++ b/drivers/sensorhub/ssp_data.c
@@ -163,36 +163,48 @@ static void get_factoty_data(struct ssp_data *data, int iSensorData,
char *pchRcvDataFrame, int *iDataIdx)
{
int iIdx, iTotalLenth = 0;
+ unsigned int uTemp = 0;
- if (iSensorData == ACCELEROMETER_FACTORY) {
- data->uFactorydataReady = (1 << ACCELEROMETER_FACTORY);
+ switch (iSensorData) {
+ case ACCELEROMETER_FACTORY:
+ uTemp = (1 << ACCELEROMETER_FACTORY);
iTotalLenth = ACCEL_FACTORY_DATA_LENGTH;
- } else if (iSensorData == GYROSCOPE_FACTORY) {
- data->uFactorydataReady = (1 << GYROSCOPE_FACTORY);
+ break;
+ case GYROSCOPE_FACTORY:
+ uTemp = (1 << GYROSCOPE_FACTORY);
iTotalLenth = GYRO_FACTORY_DATA_LENGTH;
- } else if (iSensorData == GEOMAGNETIC_FACTORY) {
- data->uFactorydataReady = (1 << GEOMAGNETIC_FACTORY);
+ break;
+ case GEOMAGNETIC_FACTORY:
+ uTemp = (1 << GEOMAGNETIC_FACTORY);
iTotalLenth = MAGNETIC_FACTORY_DATA_LENGTH;
- } else if (iSensorData == PRESSURE_FACTORY) {
- data->uFactorydataReady = (1 << PRESSURE_FACTORY);
+ break;
+ case PRESSURE_FACTORY:
+ uTemp = (1 << PRESSURE_FACTORY);
iTotalLenth = PRESSURE_FACTORY_DATA_LENGTH;
- } else if (iSensorData == MCU_FACTORY) {
- data->uFactorydataReady = (1 << MCU_FACTORY);
+ break;
+ case MCU_FACTORY:
+ uTemp = (1 << MCU_FACTORY);
iTotalLenth = MCU_FACTORY_DATA_LENGTH;
- ssp_dbg("[SSP]: %s - Mcu test data\n", __func__);
- } else if (iSensorData == GYROSCOPE_TEMP_FACTORY) {
- data->uFactorydataReady = (1 << GYROSCOPE_TEMP_FACTORY);
+ break;
+ case GYROSCOPE_TEMP_FACTORY:
+ uTemp = (1 << GYROSCOPE_TEMP_FACTORY);
iTotalLenth = GYRO_TEMP_FACTORY_DATA_LENGTH;
- } else if (iSensorData == GYROSCOPE_DPS_FACTORY) {
- data->uFactorydataReady = (1 << GYROSCOPE_DPS_FACTORY);
+ break;
+ case GYROSCOPE_DPS_FACTORY:
+ uTemp = (1 << GYROSCOPE_DPS_FACTORY);
iTotalLenth = GYRO_DPS_FACTORY_DATA_LENGTH;
- } else if (iSensorData == MCU_SLEEP_FACTORY) {
- data->uFactorydataReady = (1 << MCU_SLEEP_FACTORY);
+ break;
+ case MCU_SLEEP_FACTORY:
+ uTemp = (1 << MCU_SLEEP_FACTORY);
iTotalLenth = MCU_SLEEP_FACTORY_DATA_LENGTH;
+ break;
}
+ ssp_dbg("[SSP]: %s - Factory test data %d\n", __func__, iSensorData);
for (iIdx = 0; iIdx < iTotalLenth; iIdx++)
data->uFactorydata[iIdx] = (u8)pchRcvDataFrame[(*iDataIdx)++];
+
+ data->uFactorydataReady = uTemp;
}
int parse_dataframe(struct ssp_data *data, char *pchRcvDataFrame, int iLength)
@@ -240,11 +252,8 @@ int parse_dataframe(struct ssp_data *data, char *pchRcvDataFrame, int iLength)
#ifdef CONFIG_SENSORS_SSP_SENSORHUB
} else if (pchRcvDataFrame[iDataIdx] ==
MSG2AP_INST_LIBRARY_DATA) {
- int ret = ssp_handle_sensorhub_data(data,
+ ssp_handle_sensorhub_data(data,
pchRcvDataFrame, iDataIdx, iLength);
- if (ret < 0)
- pr_err("%s: handle sensorhub data(%d) err(%d)",
- __func__, iDataIdx, ret);
break;
#endif
} else