summaryrefslogtreecommitdiff
path: root/external/mit/libuv/dist/docs/code/plugin
diff options
context:
space:
mode:
authorjakllsch <jakllsch@NetBSD.org>2020-05-24 17:28:20 +0000
committerjakllsch <jakllsch@NetBSD.org>2020-05-24 17:28:20 +0000
commit926f255f0d687705ce347ab9e7e8ef84b3c69c0c (patch)
treea95925bd79bf0569ff876a216d1665a0a31f7e91 /external/mit/libuv/dist/docs/code/plugin
parentc2506c42f6f94f25ab6ef91d05c7e77677b19a2a (diff)
uvideo(4): clamp (micro)frames-per-xfer to at most 80
Previously, on a 30fps YUV422 640x480 webcam, we were putting over 250 USB (micro)frames per video frame in the host controller queue. xhci(4) is currently limited to 256-1 TRBs per xHC Transfer Ring, and as such, trying to place 3 xfers each of 250+ microframes in the queue fails. As there is no UVC requirement that whole video frames be in one logical chunk of isoc transactions, and there doesn't seem to be compelling reason to keep the xfer completion rate slower than 1 in 10ms, we can limit each of the 3 uvideo xfers to 80 (micro)frames of bus time, and solve the Transfer Ring constraint for upcoming xhci(4) Isochronous pipe support. This works out to using only 240 TRBs on the 255-usable-TRB Transfer Ring.
Diffstat (limited to 'external/mit/libuv/dist/docs/code/plugin')
0 files changed, 0 insertions, 0 deletions