- if (samplerate > SR_MHZ(100))
- return SR_MHZ(100) / 1000 * 2;
- return samplerate / 1000 * 2;
+ const struct dev_context *const devc = sdi->priv;
+ const size_t ch_count = enabled_channel_count(sdi);
+
+ if (devc->continuous_mode)
+ return (devc->cur_samplerate * ch_count) / (1000 * 8);
+
+
+ /* If we're in buffered mode, the transfer rate is not so important,
+ * but we expect to get at least 10% of the high-speed USB bandwidth.
+ */
+ return 35000000 / (1000 * 10);