int i;
spimc_state_t *spimc = &spimc_state0;
spimc_currentcal_state_t *cucalst = &spimc_currentcal_state;
+ int diff_to_last_fl = 0;
if (cucalst->accum_cnt >= cucalst->req_accum)
return 0;
-
- curadc_sqn_diff = spimc->curadc_sqn - spimc->curadc_sqn_last;
- curadc_sqn_diff &= 0x1ff;
+ curadc_sqn_diff = spimc->curadc_sqn;
+ if (diff_to_last_fl) {
+ curadc_sqn_diff -= spimc->curadc_sqn_last;
+ curadc_sqn_diff &= 0x1ff;
+ }
cucalst->accum_cnt += curadc_sqn_diff;
for (i = 0; i < SPIMC_CHAN_COUNT; i++) {
- curadc_val_diff = spimc->curadc_cumsum[i] -
- spimc->curadc_cumsum_last[i];
- curadc_val_diff &= 0xffffff;
+ curadc_val_diff = spimc->curadc_cumsum[i];
+ if (diff_to_last_fl) {
+ curadc_val_diff -= spimc->curadc_cumsum_last[i];
+ curadc_val_diff &= 0xffffff;
+ }
cucalst->curadc_accum[i] += curadc_val_diff;
}