]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/greatfet/api.c
greatfet: feed the session with constant width sample data
[libsigrok.git] / src / hardware / greatfet / api.c
index 0c451e7878e67a34fea10fe0c559f96477bac0c9..db05c3d8d283201f3de51834678bb6e339b0f844 100644 (file)
@@ -35,8 +35,6 @@
 #define DEFAULT_SAMPLERATE     SR_KHZ(34000)
 #define BANDWIDTH_THRESHOLD    (SR_MHZ(42) * 8)
 
-#define WITH_16CHAN_SUPPORT    0
-
 static const uint32_t scanopts[] = {
        SR_CONF_CONN,
        SR_CONF_PROBE_NAMES,
@@ -61,10 +59,8 @@ static const uint32_t devopts_cg[] = {
 static const char *channel_names[] = {
        "SGPIO0", "SGPIO1", "SGPIO2", "SGPIO3",
        "SGPIO4", "SGPIO5", "SGPIO6", "SGPIO7",
-#if WITH_16CHAN_SUPPORT
        "SGPIO8", "SGPIO9", "SGPIO10", "SGPIO11",
        "SGPIO12", "SGPIO13", "SGPIO14", "SGPIO15",
-#endif
 };
 
 /*
@@ -311,6 +307,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
                        ch_off++;
                        cg->channels = g_slist_append(cg->channels, ch);
                }
+               devc->feed_unit_size = (ch_max + 8 - 1) / 8;
 
                sr_sw_limits_init(&devc->sw_limits);
                devc->samplerate = DEFAULT_SAMPLERATE;
@@ -514,7 +511,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
 
        if (!acq->feed_queue) {
                acq->feed_queue = feed_queue_logic_alloc(sdi,
-                       BUFFER_SIZE, acq->unit_size);
+                       BUFFER_SIZE, devc->feed_unit_size);
                if (!acq->feed_queue) {
                        sr_err("Cannot allocate session feed buffer.");
                        return SR_ERR_MALLOC;