- cmdstring[2] |= (ctx->framesize == FRAMESIZE_SMALL ? 0x01 : 0x02) << 3;
-
- /* Timebase fast (no idea what this means) */
- if (ctx->timebase < TIME_20us)
- tmp = 0;
- else if (ctx->timebase > TIME_200us)
- tmp = 4;
- else {
- if (ctx->framesize == FRAMESIZE_SMALL)
- tmp = timebasefast_small[ctx->timebase - 1];
- else
- tmp = timebasefast_large[ctx->timebase - 1];
+ cmdstring[2] |= (ctx->framesize == FRAMESIZE_SMALL ? 0x01 : 0x02) << 2;
+
+ /* Timebase fast */
+ switch (ctx->framesize) {
+ case FRAMESIZE_SMALL:
+ if (ctx->timebase < TIME_20us)
+ tmp = 0;
+ else if (ctx->timebase == TIME_20us)
+ tmp = 1;
+ else if (ctx->timebase == TIME_40us)
+ tmp = 2;
+ else if (ctx->timebase == TIME_100us)
+ tmp = 3;
+ else if (ctx->timebase >= TIME_200us)
+ tmp = 4;
+ break;
+ case FRAMESIZE_LARGE:
+ if (ctx->timebase < TIME_40us) {
+ sr_err("hantek-dso: timebase < 40us only supported with 10K buffer");
+ return SR_ERR_ARG;
+ }
+ else if (ctx->timebase == TIME_40us)
+ tmp = 0;
+ else if (ctx->timebase == TIME_100us)
+ tmp = 2;
+ else if (ctx->timebase == TIME_200us)
+ tmp = 3;
+ else if (ctx->timebase >= TIME_400us)
+ tmp = 4;
+ break;