sysclk-lwla: Read full 64 bit of capture duration field

Evaluate all 64 bit of the duration field in the capture status
record. Although unlikely in practical use, due to compression
it is possible for the duration in ms to exceed 32 bit.
This commit is contained in:
Daniel Elstner 2015-10-31 10:19:51 +01:00
parent 30f34dbdf0
commit 58cc125b0f
1 changed files with 3 additions and 6 deletions

View File

@ -372,13 +372,10 @@ static void process_capture_status(const struct sr_dev_inst *sdi)
return;
}
/* TODO: Find out the actual bit width of these fields as stored
* in the FPGA. These fields are definitely less than 64 bit wide
* internally, and the unused bits occasionally even contain garbage.
*/
mem_fill = LWLA_TO_UINT32(acq->xfer_buf_in[0]);
duration = LWLA_TO_UINT32(acq->xfer_buf_in[4]);
flags = LWLA_TO_UINT32(acq->xfer_buf_in[8]) & STATUS_FLAG_MASK;
duration = LWLA_TO_UINT32(acq->xfer_buf_in[4])
| ((uint64_t)LWLA_TO_UINT32(acq->xfer_buf_in[5]) << 32);
flags = LWLA_TO_UINT32(acq->xfer_buf_in[8]) & STATUS_FLAG_MASK;
/* The LWLA1034 runs at 125 MHz if the clock divider is bypassed.
* However, the time base used for the duration is apparently not