Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BMI160 - missing FIFO frames (?)

    Highlighted
    Member

    BMI160 - missing FIFO frames (?)

    Hi

     

    I'm trying to get the FIFO to trigger an interrupt after a certain period (s) using downsampling and the watermark interrupt.

    I have found that I can get the interrupt to trigger very close to what I want using a specific equation. I'm only interested in the accelerometer data, and I have configured the FIFO to send only that. The equation I have found, after reading datasheet, is this:

    ((odr / 2^downs) * (1 + 2*3) * delay_in_s) / 4 = watermark
     
    ODR = 100
    DOWNS = 4
    delay_in_s = 5 (s)
    => watermark = 54
     

    This seems to work, but only if I flush the FIFO after each read, even if I toggle the interrupt off/on when it's triggered - as is recommended in the "Advanced usage guide" (https://community.bosch-sensortec.com/t5/Knowledge-base/BMI160-FIFO-Advanced-Usage/ta-p/8957).

    So far so good, however, when I read the available data (using https://github.com/BoschSensortec/BMI160_driver) I don't get the expected number of frames.

     

    [ 65.156567] .(3)[4101:sh][Gsensor] Set new fifo downsampling to 4.
    [ 65.157571] .(3)[4101:sh][Gsensor] Set new fifo watermark level to 54.
    [ 65.158977] .(3)[4101:sh][Gsensor] Set new trigger delay to 5s.

    ...

    [ 75.495595] .(0)[185:kworker/0:1][Gsensor] bmi160_get_fifo_data
    [ 75.496390] .(0)[185:kworker/0:1][Gsensor] reset_fifo_data_structure
    [ 75.497212] .(0)[185:kworker/0:1][Gsensor] get_fifo_byte_counter
    [ 75.498534] .(0)[185:kworker/0:1][Gsensor] Bytes to read = 219
    [ 75.506369] .(0)[185:kworker/0:1][Gsensor] Setting up sensor data buffer... for 30 frames
    [ 75.508203] .(0)[185:kworker/0:1][Gsensor] \x0a AVAILABLE FIFO LENGTH : 244
    [ 75.509280] .(0)[185:kworker/0:1][Gsensor] \x0a REQUESTED ACC DATA FRAMES : 30\x0a
    [ 75.509988] [Gsensor] \x0a AVAILABLE ACC DATA FRAMES : 0\x0a
    [ 75.511083] .(0)[185:kworker/0:1][Gsensor] SENSOR TIME DATA : 0
    [ 75.511863] .(0)[185:kworker/0:1][Gsensor] SKIPPED FRAME COUNT : 0

     

    Sometimes the AVAILABLE ACC DATA FRAMES is 0, sometimes it's 17. Can you help me understand why I'm not getting the full 30 expected frames? I am using the code from your Github repo to read FIFO - and my interrupt handler looks like this:

     

    static void bmi_fifo_watermark_handle(struct bmi160_acc_i2c_data *client_data)
    {
    int err = 0;
    u8 should_enable_fifo = 0;
    struct bmi160_fifo_frame *fifo = fifo_frame;

    /* Declare memory to store the raw FIFO buffer information */
    uint8_t *fifo_buff = kzalloc(sizeof(uint8_t) * fifo_watermark_level * 4 + 25, GFP_KERNEL);

    /* Modify the FIFO buffer instance and link to the device instance */
    struct bmi160_fifo_frame new_fifo_config;

    new_fifo_config.data = fifo_buff;
    new_fifo_config.length = fifo_watermark_level * 4 + 25;
    new_fifo_config.fifo_time_enable = 0x02;
    fifo = &new_fifo_config;

    wake_lock(&wl_bmi160_irq);

    // It's recommended by Bosch to pause interrupt during read of FIFO and later re-enable it.
    should_enable_fifo = BMI160_ACC_ToggleFifoWatermark(bmi160_acc_i2c_client, DISABLE);
    if (should_enable_fifo < 0) {
    GSE_ERR("Failed to disable FIFO interrupt.\n");
    }

    /* Read data from the sensor's FIFO and store it the FIFO buffer,"fifo_buff" */
    printf("\n USER REQUESTED FIFO LENGTH : %d\n", fifo->length);

    err = bmi160_get_fifo_data(client_data, fifo);

    if (err < 0) {
    GSE_ERR("Error getting fifo data.\n");
    return;
    }

    err = bmi_check_fifo(client_data, fifo);
    if (err < 0) {
    GSE_ERR("Error detecting data.\n");
    return;
    }

    // TODO: This shouldn't be needed... when reading the fifo all data that was read should be removed. Or?
    /* Flush FIFO */
    bmi160_set_command_register(0xB0);
    p_bmi160->write_delay(); // Pauses 2 or 450 us, depending on current power-mode

    if
    (should_enable_fifo >= 0) {
    // It's recommended by Bosch to pause FIFO during interrupt read of FIFO and later re-enable it.
    err = BMI160_ACC_ToggleFifoWatermark(bmi160_acc_i2c_client, ENABLE);
    }
    }

     

    static int bmi_check_fifo(struct bmi160_acc_i2c_data *client_data, struct bmi160_fifo_frame *fifo)
    {
    int8_t rslt = 0;
    struct i2c_client *client = bmi160_acc_i2c_client;
    /* Declare instances of the sensor data structure to store the parsed FIFO data */
    // struct bmi160_sensor_data acc_data[42]; // 300 bytes / ~7bytes per frame ~ 42 data frames
    struct bmi160_sensor_data *acc_data = kzalloc(sizeof(struct bmi160_sensor_data) * fifo_requested_frames, GFP_KERNEL);
    uint8_t acc_frames_req = fifo_requested_frames;
    uint8_t acc_index;
    int ret = 0;
    uint16_t index = 0;

    // ... unrelated code

    GSE_LOG("\n AVAILABLE FIFO LENGTH : %d\n", fifo->length);
    /* Print the raw FIFO data */

    for (index = 0; index < fifo->length; index++) {
    // GSE_LOG("\n FIFO DATA INDEX[%d] = %d\n", index, fifo->data[index]);
    }

    /* Parse the FIFO data to extract acc data from the FIFO buffer */
    GSE_LOG("\n REQUESTED ACC DATA FRAMES : %d\n ", acc_frames_req);
    rslt = bmi160_extract_accel(acc_data, &acc_frames_req, fifo);

    if (rslt == BMI160_OK) {
    GSE_LOG("\n AVAILABLE ACC DATA FRAMES : %d\n ", acc_frames_req);
    /* Print the parsed acc data from the FIFO buffer */
    for (acc_index = 0; acc_index < acc_frames_req; acc_index++) {
    GSE_LOG("FRAME[%d] ==> x: %d, y: %d, z: %d\n", acc_index, acc_data[acc_index].x, acc_data[acc_index].y, acc_data[acc_index].z);
    }

    /* Print the special FIFO frame data like sensortime */
    GSE_LOG("SENSOR TIME DATA : %d \n", fifo->sensor_time);
    GSE_LOG("SKIPPED FRAME COUNT : %d\n", fifo->skipped_frame_count);
    } else {
    GSE_LOG("\n Accel data extraction failed\n");
    }
    return ret;
    }

    Other than that, the code in all of the FIFO related functions are the same as your Github, with the exception of a few log messages that are less verbose (for example printing the accelerometer data for all axis...)

    4 REPLIES 4
    Highlighted
    Member

    Re: BMI160 - missing FIFO frames (?)

    Other times it can look like this:

     

    [ 26.312100] .(6)[184:kworker/6:1][Gsensor] \x0a USER REQUESTED FIFO LENGTH : 241
    [ 26.313243] .(6)[184:kworker/6:1][Gsensor] bmi160_get_fifo_data
    [ 26.314058] .(6)[184:kworker/6:1][Gsensor] reset_fifo_data_structure
    [ 26.314899] .(6)[184:kworker/6:1][Gsensor] get_fifo_byte_counter
    [ 26.315920] .(6)[184:kworker/6:1][Gsensor] Bytes to read = 219
    [ 26.323763] .(6)[184:kworker/6:1][Gsensor] Setting up sensor data buffer... for 30 frames
    [ 26.325724] .(6)[184:kworker/6:1][Gsensor] \x0a AVAILABLE FIFO LENGTH : 244
    [ 26.326839] .(6)[184:kworker/6:1][Gsensor] \x0a REQUESTED ACC DATA FRAMES : 30\x0a
    [ 26.327491] [Gsensor] \x0a AVAILABLE ACC DATA FRAMES : 20\x0a
    [ 26.328591] .(6)[184:kworker/6:1][Gsensor] FRAME[0] ==> x: -672, y: 569, z: 8933
    [ 26.329622] .(6)[184:kworker/6:1][Gsensor] FRAME[1] ==> x: -698, y: 576, z: 8939
    [ 26.330593] .(6)[184:kworker/6:1][Gsensor] FRAME[2] ==> x: -692, y: 585, z: 8929
    [ 26.331545] .(6)[184:kworker/6:1][Gsensor] FRAME[3] ==> x: -693, y: 567, z: 8923
    [ 26.332496] .(6)[184:kworker/6:1][Gsensor] FRAME[4] ==> x: -688, y: 575, z: 8937
    [ 26.333508] .(6)[184:kworker/6:1][Gsensor] FRAME[5] ==> x: -692, y: 568, z: 8950
    [ 26.334460] .(6)[184:kworker/6:1][Gsensor] FRAME[6] ==> x: -690, y: 569, z: 8941
    [ 26.335434] .(6)[184:kworker/6:1][Gsensor] FRAME[7] ==> x: -666, y: 568, z: 8934
    [ 26.336376] .(6)[184:kworker/6:1][Gsensor] FRAME[8] ==> x: -694, y: 574, z: 8944
    [ 26.337347] .(6)[184:kworker/6:1][Gsensor] FRAME[9] ==> x: -699, y: 568, z: 8955
    [ 26.338316] .(6)[184:kworker/6:1][Gsensor] FRAME[10] ==> x: -679, y: 566, z: 8939
    [ 26.339300] .(6)[184:kworker/6:1][Gsensor] FRAME[11] ==> x: -690, y: 560, z: 8940
    [ 26.340272] .(6)[184:kworker/6:1][Gsensor] FRAME[12] ==> x: -698, y: 581, z: 8936
    [ 26.341227] .(6)[184:kworker/6:1][Gsensor] FRAME[13] ==> x: -683, y: 566, z: 8932
    [ 26.342232] .(6)[184:kworker/6:1][Gsensor] FRAME[14] ==> x: -690, y: 573, z: 8937
    [ 26.343204] .(6)[184:kworker/6:1][Gsensor] FRAME[15] ==> x: -695, y: 587, z: 8936
    [ 26.344164] .(6)[184:kworker/6:1][Gsensor] FRAME[16] ==> x: -673, y: 567, z: 8948
    [ 26.345142] .(6)[184:kworker/6:1][Gsensor] FRAME[17] ==> x: -693, y: 569, z: 8948
    [ 26.346118] .(6)[184:kworker/6:1][Gsensor] FRAME[18] ==> x: -697, y: 587, z: 8945
    [ 26.347086] .(6)[184:kworker/6:1][Gsensor] FRAME[19] ==> x: -684, y: 0, z: 0
    [ 26.348015] .(6)[184:kworker/6:1][Gsensor] SENSOR TIME DATA : 0
    [ 26.348787] .(6)[184:kworker/6:1][Gsensor] SKIPPED FRAME COUNT : 0

     

    It's like it fires before it reaches the expected watermark.

    Highlighted
    Member

    Re: BMI160 - missing FIFO frames (?)

    This is an error on my part - I forgot to set these values in the struct.

     
    /* set fifo header enabled status */
    new_fifo_config.fifo_header_enable = BMI160_FIFO_HEAD_ENABLE;
    /* set accel/gyr/aux. data enabled status */
    new_fifo_config.fifo_data_enable = BMI160_FIFO_A_ENABLE;
    /* set fifo sensor time enabled status */
    new_fifo_config.fifo_time_enable = BMI160_FIFO_TIME_ENABLE;
    Member

    Re: BMI160 - missing FIFO frames (?)

    This fix wasn't all that is needed though. I am still experiencing a few problems with the data in the FIFO. For certain combinations of downsampling and watermark levels the FIFO isn't filled up to the expected level... or even the level that the FIFO is reporting it's filled to.

    The following log shows my issue, about halfway through the data (index 205) all bytes in the FIFO are 0's. "Bytes to read" is what is returned by the get_fifo_byte_counter function.

    My configuration is downsampling is 4, the watermark is set 109. (Expected interrupt period is about 10 seconds)

    [ 22.952685] .(6)[148:kworker/6:1][Gsensor] \x0a USER REQUESTED FIFO LENGTH : 461
    [ 22.954591] .(6)[148:kworker/6:1][Gsensor] Bytes to read = 436
    [ 22.960813] .(6)[148:kworker/6:1][Gsensor] \x0a AVAILABLE FIFO LENGTH : 461
    [ 22.961902] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[0] = 72
    [ 22.962958] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[1] = 3
    [ 22.964012] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[2] = 132
    [ 22.965051] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[3] = 208
    [ 22.966101] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[4] = 254
    [ 22.967190] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[5] = 143
    [ 22.968251] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[6] = 2
    [ 22.969269] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[7] = 86
    [ 22.970313] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[8] = 33
    [ 22.971391] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[9] = 132
    [ 22.972435] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[10] = 202
    [ 22.973520] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[11] = 254
    [ 22.974614] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[12] = 138
    [ 22.975668] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[13] = 2
    [ 22.976694] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[14] = 69
    [ 22.977734] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[15] = 33
    [ 22.978802] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[16] = 132
    [ 22.979899] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[17] = 162
    [ 22.980946] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[18] = 254
    [ 22.981996] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[19] = 166
    [ 22.983075] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[20] = 2
    [ 22.984124] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[21] = 82
    [ 22.985160] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[22] = 33
    [ 22.986200] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[23] = 132
    [ 22.987300] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[24] = 217
    [ 22.988354] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[25] = 254
    [ 22.989403] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[26] = 131
    [ 22.990487] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[27] = 2
    [ 22.991542] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[28] = 67
    [ 22.992605] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[29] = 33
    [ 22.993643] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[30] = 132
    [ 22.994724] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[31] = 201
    [ 22.995774] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[32] = 254
    [ 22.996823] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[33] = 155
    [ 22.997875] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[34] = 2
    [ 22.998945] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[35] = 61
    [ 22.999989] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[36] = 33
    [ 23.001074] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[37] = 132
    [ 23.002173] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[38] = 185
    [ 23.003260] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[39] = 254
    [ 23.004360] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[40] = 158
    [ 23.005414] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[41] = 2
    [ 23.006445] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[42] = 43
    [ 23.007532] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[43] = 33
    [ 23.008572] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[44] = 132
    [ 23.009661] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[45] = 210
    [ 23.010731] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[46] = 254
    [ 23.011818] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[47] = 131
    [ 23.012868] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[48] = 2
    [ 23.013896] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[49] = 67
    [ 23.014974] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[50] = 33
    [ 23.016016] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[51] = 132
    [ 23.017064] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[52] = 192
    [ 23.018116] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[53] = 254
    [ 23.019197] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[54] = 158
    [ 23.020249] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[55] = 2
    [ 23.021316] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[56] = 67
    [ 23.022357] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[57] = 33
    [ 23.023447] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[58] = 132
    [ 23.024502] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[59] = 177
    [ 23.025551] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[60] = 254
    [ 23.026630] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[61] = 149
    [ 23.028028] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[62] = 2
    [ 23.029062] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[63] = 81
    [ 23.030100] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[64] = 33
    [ 23.031186] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[65] = 132
    [ 23.032237] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[66] = 213
    [ 23.033286] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[67] = 254
    [ 23.034368] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[68] = 159
    [ 23.035518] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[69] = 2
    [ 23.036565] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[70] = 83
    [ 23.037826] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[71] = 33
    [ 23.038931] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[72] = 132
    [ 23.039989] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[73] = 215
    [ 23.041037] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[74] = 254
    [ 23.042089] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[75] = 137
    [ 23.043190] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[76] = 2
    [ 23.044238] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[77] = 71
    [ 23.045318] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[78] = 33
    [ 23.046357] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[79] = 132
    [ 23.047443] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[80] = 192
    [ 23.048523] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[81] = 254
    [ 23.049572] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[82] = 137
    [ 23.050640] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[83] = 2
    [ 23.051671] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[84] = 68
    [ 23.052710] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[85] = 33
    [ 23.053751] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[86] = 132
    [ 23.054851] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[87] = 210
    [ 23.055936] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[88] = 254
    [ 23.056986] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[89] = 149
    [ 23.058037] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[90] = 2
    [ 23.059101] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[91] = 71
    [ 23.060151] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[92] = 33
    [ 23.061188] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[93] = 132
    [ 23.062240] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[94] = 182
    [ 23.063360] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[95] = 254
    [ 23.064451] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[96] = 136
    [ 23.065503] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[97] = 2
    [ 23.066563] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[98] = 75
    [ 23.067634] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[99] = 33
    [ 23.068676] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[100] = 132
    [ 23.069738] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[101] = 190
    [ 23.070867] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[102] = 254
    [ 23.071931] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[103] = 138
    [ 23.072991] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[104] = 2
    [ 23.074031] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[105] = 76
    [ 23.075147] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[106] = 33
    [ 23.076201] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[107] = 132
    [ 23.077295] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[108] = 218
    [ 23.078356] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[109] = 254
    [ 23.079465] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[110] = 137
    [ 23.080529] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[111] = 2
    [ 23.081592] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[112] = 75
    [ 23.082663] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[113] = 33
    [ 23.083729] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[114] = 132
    [ 23.084789] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[115] = 189
    [ 23.085851] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[116] = 254
    [ 23.086943] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[117] = 139
    [ 23.088025] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[118] = 2
    [ 23.089105] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[119] = 82
    [ 23.090158] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[120] = 33
    [ 23.091242] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[121] = 132
    [ 23.092342] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[122] = 191
    [ 23.093404] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[123] = 254
    [ 23.094507] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[124] = 141
    [ 23.095612] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[125] = 2
    [ 23.096652] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[126] = 68
    [ 23.097703] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[127] = 33
    [ 23.098803] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[128] = 132
    [ 23.099880] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[129] = 214
    [ 23.100966] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[130] = 254
    [ 23.102028] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[131] = 157
    [ 23.103114] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[132] = 2
    [ 23.104172] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[133] = 86
    [ 23.105223] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[134] = 33
    [ 23.106274] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[135] = 132
    [ 23.107386] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[136] = 190
    [ 23.108474] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[137] = 254
    [ 23.109534] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[138] = 147
    [ 23.110623] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[139] = 2
    [ 23.111689] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[140] = 66
    [ 23.112740] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[141] = 33
    [ 23.113791] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[142] = 132
    [ 23.114899] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[143] = 196
    [ 23.115969] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[144] = 254
    [ 23.117048] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[145] = 154
    [ 23.118145] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[146] = 2
    [ 23.119225] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[147] = 74
    [ 23.120277] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[148] = 33
    [ 23.121326] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[149] = 132
    [ 23.122389] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[150] = 195
    [ 23.123507] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[151] = 254
    [ 23.124599] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[152] = 137
    [ 23.125661] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[153] = 2
    [ 23.126725] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[154] = 77
    [ 23.127793] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[155] = 33
    [ 23.128845] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[156] = 132
    [ 23.129909] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[157] = 193
    [ 23.131014] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[158] = 254
    [ 23.132103] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[159] = 145
    [ 23.133167] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[160] = 2
    [ 23.134235] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[161] = 63
    [ 23.135421] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[162] = 33
    [ 23.136553] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[163] = 132
    [ 23.137615] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[164] = 213
    [ 23.138705] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[165] = 254
    [ 23.139794] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[166] = 143
    [ 23.140906] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[167] = 2
    [ 23.141954] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[168] = 82
    [ 23.143065] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[169] = 33
    [ 23.144153] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[170] = 132
    [ 23.145294] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[171] = 200
    [ 23.146355] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[172] = 254
    [ 23.147459] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[173] = 133
    [ 23.148523] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[174] = 2
    [ 23.149561] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[175] = 88
    [ 23.150630] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[176] = 33
    [ 23.151699] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[177] = 132
    [ 23.152782] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[178] = 192
    [ 23.153840] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[179] = 254
    [ 23.154947] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[180] = 160
    [ 23.156009] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[181] = 2
    [ 23.157046] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[182] = 83
    [ 23.158098] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[183] = 33
    [ 23.159177] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[184] = 132
    [ 23.160294] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[185] = 201
    [ 23.161354] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[186] = 254
    [ 23.162416] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[187] = 127
    [ 23.163535] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[188] = 2
    [ 23.164598] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[189] = 77
    [ 23.165656] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[190] = 33
    [ 23.166733] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[191] = 132
    [ 23.167833] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[192] = 188
    [ 23.168895] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[193] = 254
    [ 23.170030] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[194] = 144
    [ 23.171158] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[195] = 2
    [ 23.172226] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[196] = 72
    [ 23.173281] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[197] = 33
    [ 23.174337] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[198] = 132
    [ 23.175463] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[199] = 185
    [ 23.176554] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[200] = 254
    [ 23.177617] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[201] = 139
    [ 23.178710] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[202] = 2
    [ 23.179761] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[203] = 79
    [ 23.180812] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[204] = 33
    [ 23.181861] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[205] = 0
    [ 23.182947] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[206] = 0
    [ 23.184012] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[207] = 0
    [ 23.185051] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[208] = 0
    [ 23.186088] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[209] = 0
    [ 23.187176] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[210] = 0
    [ 23.188257] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[211] = 0
    [ 23.189296] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[212] = 0
    [ 23.190335] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[213] = 0
    [ 23.191412] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[214] = 0
    [ 23.192452] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[215] = 0
    [ 23.193490] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[216] = 0
    [ 23.194561] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[217] = 0
    [ 23.195602] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[218] = 0
    [ 23.196640] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[219] = 0
    [ 23.197681] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[220] = 0
    [ 23.198740] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[221] = 0
    [ 23.199816] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[222] = 0
    [ 23.200856] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[223] = 0
    [ 23.201923] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[224] = 0
    [ 23.203017] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[225] = 0
    [ 23.204059] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[226] = 0
    [ 23.205127] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[227] = 0
    [ 23.206200] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[228] = 0
    [ 23.207282] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[229] = 0
    [ 23.208320] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[230] = 0
    [ 23.209358] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[231] = 0
    [ 23.210399] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[232] = 0
    [ 23.211502] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[233] = 0
    [ 23.212610] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[234] = 0
    [ 23.213662] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[235] = 0
    [ 23.214756] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[236] = 0
    [ 23.215796] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[237] = 0
    [ 23.216834] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[238] = 0
    [ 23.217875] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[239] = 0
    [ 23.218944] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[240] = 0
    [ 23.220000] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[241] = 0
    [ 23.221087] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[242] = 0
    [ 23.222131] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[243] = 0
    [ 23.223228] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[244] = 0
    [ 23.224299] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[245] = 0
    [ 23.225333] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[246] = 0
    [ 23.226373] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[247] = 0
    [ 23.227452] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[248] = 0
    [ 23.228517] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[249] = 0
    [ 23.229554] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[250] = 0
    [ 23.230610] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[251] = 0
    [ 23.231656] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[252] = 0
    [ 23.232740] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[253] = 0
    [ 23.233790] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[254] = 0
    [ 23.234938] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[255] = 0
    [ 23.235995] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[256] = 0
    [ 23.237039] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[257] = 0
    [ 23.238111] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[258] = 0
    [ 23.239194] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[259] = 0
    [ 23.240264] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[260] = 0
    [ 23.241297] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[261] = 0
    [ 23.242373] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[262] = 0
    [ 23.244546] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[263] = 0
    [ 23.245586] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[264] = 0
    [ 23.246652] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[265] = 0
    [ 23.247702] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[266] = 0
    [ 23.248741] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[267] = 0
    [ 23.249781] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[268] = 0
    [ 23.250870] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[269] = 0
    [ 23.251958] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[270] = 0
    [ 23.253003] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[271] = 0
    [ 23.254040] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[272] = 0
    [ 23.255135] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[273] = 0
    [ 23.256220] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[274] = 0
    [ 23.257258] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[275] = 0
    [ 23.258298] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[276] = 0
    [ 23.259377] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[277] = 0
    [ 23.260446] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[278] = 0
    [ 23.261483] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[279] = 0
    [ 23.262568] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[280] = 0
    [ 23.263624] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[281] = 0
    [ 23.264679] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[282] = 0
    [ 23.265763] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[283] = 0
    [ 23.266831] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[284] = 0
    [ 23.267895] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[285] = 0
    [ 23.268987] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[286] = 0
    [ 23.270038] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[287] = 0
    [ 23.271120] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[288] = 0
    [ 23.272189] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[289] = 0
    [ 23.273229] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[290] = 0
    [ 23.274268] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[291] = 0
    [ 23.275360] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[292] = 0
    [ 23.276434] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[293] = 0
    [ 23.277507] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[294] = 0
    [ 23.278583] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[295] = 0
    [ 23.279621] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[296] = 0
    [ 23.280659] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[297] = 0
    [ 23.281700] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[298] = 0
    [ 23.282779] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[299] = 0
    [ 23.283855] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[300] = 0
    [ 23.284895] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[301] = 0
    [ 23.285935] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[302] = 0
    [ 23.287017] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[303] = 0
    [ 23.288058] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[304] = 0
    [ 23.289095] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[305] = 0
    [ 23.290136] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[306] = 0
    [ 23.291243] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[307] = 0
    [ 23.292323] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[308] = 0
    [ 23.293363] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[309] = 0
    [ 23.294403] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[310] = 0
    [ 23.295489] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[311] = 0
    [ 23.296533] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[312] = 0
    [ 23.297567] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[313] = 0
    [ 23.298640] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[314] = 0
    [ 23.299730] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[315] = 0
    [ 23.300772] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[316] = 0
    [ 23.301845] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[317] = 0
    [ 23.302950] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[318] = 0
    [ 23.304008] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[319] = 0
    [ 23.305042] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[320] = 0
    [ 23.306083] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[321] = 0
    [ 23.307177] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[322] = 0
    [ 23.308261] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[323] = 0
    [ 23.309304] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[324] = 0
    [ 23.310343] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[325] = 0
    [ 23.311421] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[326] = 0
    [ 23.312473] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[327] = 0
    [ 23.313544] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[328] = 0
    [ 23.314610] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[329] = 0
    [ 23.315651] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[330] = 0
    [ 23.316690] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[331] = 0
    [ 23.317730] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[332] = 0
    [ 23.318791] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[333] = 0
    [ 23.319864] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[334] = 0
    [ 23.320901] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[335] = 0
    [ 23.321941] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[336] = 0
    [ 23.323009] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[337] = 0
    [ 23.324078] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[338] = 0
    [ 23.325118] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[339] = 0
    [ 23.326156] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[340] = 0
    [ 23.327244] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[341] = 0
    [ 23.328291] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[342] = 0
    [ 23.329330] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[343] = 0
    [ 23.330372] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[344] = 0
    [ 23.331452] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[345] = 0
    [ 23.332529] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[346] = 0
    [ 23.333565] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[347] = 0
    [ 23.334629] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[348] = 0
    [ 23.335694] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[349] = 0
    [ 23.336742] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[350] = 0
    [ 23.337856] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[351] = 0
    [ 23.338943] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[352] = 0
    [ 23.340028] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[353] = 0
    [ 23.341067] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[354] = 0
    [ 23.342105] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[355] = 0
    [ 23.343189] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[356] = 0
    [ 23.344230] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[357] = 0
    [ 23.345268] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[358] = 0
    [ 23.346309] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[359] = 0
    [ 23.347406] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[360] = 0
    [ 23.348463] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[361] = 0
    [ 23.349553] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[362] = 0
    [ 23.350631] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[363] = 0
    [ 23.351672] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[364] = 0
    [ 23.352712] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[365] = 0
    [ 23.353751] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[366] = 0
    [ 23.354833] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[367] = 0
    [ 23.355898] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[368] = 0
    [ 23.356939] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[369] = 0
    [ 23.357978] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[370] = 0
    [ 23.359062] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[371] = 0
    [ 23.360104] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[372] = 0
    [ 23.361141] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[373] = 0
    [ 23.362182] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[374] = 0
    [ 23.363283] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[375] = 0
    [ 23.364345] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[376] = 0
    [ 23.365390] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[377] = 0
    [ 23.366431] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[378] = 0
    [ 23.367518] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[379] = 0
    [ 23.368571] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[380] = 0
    [ 23.369630] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[381] = 0
    [ 23.370731] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[382] = 0
    [ 23.371786] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[383] = 0
    [ 23.372868] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[384] = 0
    [ 23.373908] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[385] = 0
    [ 23.375011] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[386] = 0
    [ 23.376064] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[387] = 0
    [ 23.377104] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[388] = 0
    [ 23.378141] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[389] = 0
    [ 23.379234] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[390] = 0
    [ 23.380275] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[391] = 0
    [ 23.381364] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[392] = 0
    [ 23.382406] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[393] = 0
    [ 23.383493] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[394] = 0
    [ 23.384531] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[395] = 0
    [ 23.385631] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[396] = 0
    [ 23.386694] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[397] = 0
    [ 23.387755] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[398] = 0
    [ 23.388785] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[399] = 0
    [ 23.389838] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[400] = 0
    [ 23.390889] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[401] = 0
    [ 23.391957] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[402] = 0
    [ 23.392993] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[403] = 0
    [ 23.394033] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[404] = 0
    [ 23.395142] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[405] = 0
    [ 23.396197] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[406] = 0
    [ 23.397255] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[407] = 0
    [ 23.398297] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[408] = 0
    [ 23.399389] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[409] = 0
    [ 23.400432] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[410] = 0
    [ 23.401528] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[411] = 0
    [ 23.402635] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[412] = 0
    [ 23.403707] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[413] = 0
    [ 23.404749] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[414] = 0
    [ 23.405816] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[415] = 0
    [ 23.406909] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[416] = 0
    [ 23.407958] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[417] = 0
    [ 23.409002] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[418] = 0
    [ 23.410072] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[419] = 0
    [ 23.411145] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[420] = 0
    [ 23.412198] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[421] = 0
    [ 23.413236] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[422] = 0
    [ 23.414277] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[423] = 0
    [ 23.415378] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[424] = 0
    [ 23.416423] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[425] = 0
    [ 23.417461] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[426] = 0
    [ 23.418522] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[427] = 0
    [ 23.419568] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[428] = 0
    [ 23.420634] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[429] = 0
    [ 23.421713] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[430] = 0
    [ 23.422816] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[431] = 0
    [ 23.423868] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[432] = 0
    [ 23.424953] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[433] = 0
    [ 23.425999] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[434] = 0
    [ 23.427058] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[435] = 0
    [ 23.428141] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[436] = 0
    [ 23.429178] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[437] = 0
    [ 23.430218] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[438] = 0
    [ 23.431300] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[439] = 0
    [ 23.432361] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[440] = 0
    [ 23.433396] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[441] = 0
    [ 23.434436] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[442] = 0
    [ 23.435564] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[443] = 0
    [ 23.436637] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[444] = 0
    [ 23.437746] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[445] = 0
    [ 23.438839] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[446] = 0
    [ 23.439889] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[447] = 0
    [ 23.440979] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[448] = 0
    [ 23.442017] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[449] = 0
    [ 23.443089] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[450] = 0
    [ 23.444128] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[451] = 0
    [ 23.445167] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[452] = 0
    [ 23.446208] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[453] = 0
    [ 23.447277] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[454] = 0
    [ 23.448363] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[455] = 0
    [ 23.449401] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[456] = 0
    [ 23.450441] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[457] = 0
    [ 23.451591] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[458] = 0
    [ 23.452663] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[459] = 0
    [ 23.453693] .(6)[148:kworker/6:1][Gsensor] \x0a FIFO DATA INDEX[460] = 0
    [ 23.454776] .(6)[148:kworker/6:1][Gsensor] \x0a REQUESTED ACC DATA FRAMES : 62\x0a
    [ 23.511052] .(6)[148:kworker/6:1][Gsensor] \x0a AVAILABLE ACC DATA FRAMES : 29\x0a

     

    Note that I'm not even getting the expected overread frames (since I'm deliberately reading 25 bytes more than what's reported by the FIFO fill register), it's just reporting "0" rather than correct values.

    Highlighted
    Member

    Re: BMI160 - missing FIFO frames (?)

    The underlying problem was the driver that this was based on (mediatek), which truncated the length of the i2c messages to 8 bits... 😣

     

    This is not the root of our source, just a very, very, very similar code base that we're working with here.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist