- /* For each channel. */
- for (l = 0; l < devc->num_channels; ++l)
- cur_sample |= (!!(event[j] & (1 << (l *
- devc->samples_per_event + k)))) << l;
+/*
+ * Decode chunk of 1024 bytes, 64 clusters, 7 events per cluster.
+ * Each event is 20ns apart, and can contain multiple samples.
+ *
+ * For 200 MHz, events contain 4 samples for each channel, spread 5 ns apart.
+ * For 100 MHz, events contain 2 samples for each channel, spread 10 ns apart.
+ * For 50 MHz and below, events contain one sample for each channel,
+ * spread 20 ns apart.
+ */
+static int decode_chunk_ts(struct sigma_dram_line *dram_line,
+ uint16_t events_in_line,
+ uint32_t trigger_event,
+ void *cb_data)
+{
+ struct sigma_dram_cluster *dram_cluster;
+ struct sr_dev_inst *sdi = cb_data;
+ struct dev_context *devc = sdi->priv;
+ unsigned int clusters_in_line =
+ (events_in_line + (EVENTS_PER_CLUSTER - 1)) / EVENTS_PER_CLUSTER;
+ unsigned int events_in_cluster;
+ unsigned int i;
+ uint32_t trigger_cluster = ~0, triggered = 0;