volatile uint32_t *siroladc = FPGA_LX_MASTER_RX_ADC0;
uint32_t val;
- for (i = 0; i < PXMCC_CURADC_CHANNELS; ) {
- val = *siroladc;
+ if (!(last_rx_done_sqn & 0x8000)) {
+ for (i = 0; i < PXMCC_CURADC_CHANNELS; ) {
+ val = *siroladc;
- curadc->cur_val = (uint16_t)(val - curadc->siroladc_last) -
+ curadc->cur_val = (uint16_t)(val - curadc->siroladc_last) -
curadc->siroladc_offs;
- curadc->siroladc_last = val;
-
- i++;
- curadc += 1;
- siroladc += 2;
- /* additional 3 required for 7 -> 8 change */
- if (!(i & 7))
- siroladc += 3;
+ curadc->siroladc_last = val;
+
+ i++;
+ curadc += 1;
+ siroladc += 2;
+ /* additional 3 required for 7 -> 8 change */
+ if (!(i & 7))
+ siroladc += 3;
+ }
+ } else {
+ pxmcc_curadc_data_t *curadc = pxmcc_data.curadc;
+
+ for (i = 0; i < PXMCC_CURADC_CHANNELS; ) {
+ curadc->siroladc_last += curadc->cur_val;
+ i++;
+ curadc += 1;
+ }
+ pxmcc_data.common.rx_err_cnt++;
}
}