Skip to contentSkip to conversation

usb/gadget/uvc-configs Fix host unable to negotiate framesizes other than first

PATCH New Felipe Balbi 1 participant 1 message Mar 22, 2018 USB

lore
Share & tools
lore
#0 lore raw

PATCH v5 1/2 usb/gadget/uvc-configs Fix host unable to negotiate framesizes other than first

Hi,

Quoted 23 lines · Joel Pepper

- Add bFrameIndex as a UVCG_FRAME_ATTR_RO for each frame size.
- Automatically assign ascending bFrameIndex to each frame in a format.

Before all "bFrameindex" attributes were set to "1" with no way to configure the gadget otherwise. This resulted in the host always negotiating for bFrameIndex 1 (i.e. the first framesize of the gadget). After the negotiation the host driver will set the user or application selected framesize, while the gadget is actually set to the first framesize.

Now, when the containing format is linked into the streaming header, iterate over all child frame descriptors and assign ascending indices. The automatically assigned indices can be read from the new read only bFrameIndex configsfs attribute in each frame descriptor item.

v2: Add the new attribute to both MJPEG and uncompressed frame descriptors in Documentation/ABI, with note that it was added only in a later kernel version

v3: Changed from simply allowing user to set the value for bFrameIndex to automatically assigning correct distinct frame indexes. Changed bFrameIndex from RW to RO

Quoted 5 lines

v4: Actually include updated patch

v5: bFrameIndex now returns -EBUSY if the parent fmt is not linked yet

no Ack from Laurent yet? hmm, I'll have to delay this one for the next merge window, sorry. Just as a side note, version changes (v2, v3, v4, v5 above) should comer after the tearline (---) below. We don't need these changes in the commit log, it's just for maintainers to read :-)

If we had an ack from Laurent, I'd fix that while applying, but since you're gonna have to resend anyway, please fix that once we get an Ack from Laurent.