+ /**
+ * The DSLogic emits sample data as sequences of 64-bit sample words
+ * in a round-robin i.e. 64-bits from channel 0, 64-bits from channel 1
+ * etc. for each of the enabled channels, then looping back to the
+ * channel.
+ *
+ * Because sigrok's internal representation is bit-interleaved channels
+ * we must recast the data.
+ *
+ * Hopefully in future it will be possible to pass the data on as-is.
+ */
+ assert(transfer->actual_length % (DSLOGIC_ATOMIC_BYTES * channel_count) == 0);
+ deinterleave_buffer(transfer->buffer, transfer->actual_length,
+ devc->deinterleave_buffer, channel_count, channel_mask);
+
+ /* Send the incoming transfer to the session bus. */