]> sigrok.org Git - libsigrok.git/commitdiff
kingst-la2016: experiment with USB bulk size and pool count
authorGerhard Sittig <redacted>
Sun, 20 Feb 2022 08:32:14 +0000 (09:32 +0100)
committerGerhard Sittig <redacted>
Tue, 22 Feb 2022 20:53:20 +0000 (21:53 +0100)
The previous implementation used a pool of 32 USB bulk transfers of up
to 256KiB size each. Using a pool did speedup capture data downloads,
using more transfers or larger buffers would not make a difference.
Slightly reduce the total memory consumption again, change the setup to
8 transfers of up to 512KiB each, which results in a total of 4MiB for
pending USB communication. These numbers are as arbitrary as any other.
No attempt was made to automatically derive the values from acquisition
parameters like samplerate and samples count.

src/hardware/kingst-la2016/protocol.h

index bbb44c336a8edcf7541b392aa47fa3d3a665b7ba..2f28d57bc52ed9712b26d58715df2617b55ecc29 100644 (file)
@@ -45,8 +45,8 @@
  * but libusb does not expose this function. Typically, max size is 2MB.
  */
 #define LA2016_EP6_PKTSZ       512 /* Max packet size of USB endpoint 6. */
-#define LA2016_USB_BUFSZ       (256 * 2 * LA2016_EP6_PKTSZ) /* 256KiB buffer. */
-#define LA2016_USB_XFER_COUNT  32 /* Size of USB bulk transfers pool. */
+#define LA2016_USB_BUFSZ       (512 * 1024) /* 512KiB buffer. */
+#define LA2016_USB_XFER_COUNT  8 /* Size of USB bulk transfers pool. */
 
 /* USB communication timeout during regular operation. */
 #define DEFAULT_TIMEOUT_MS     200