linux-usb-gadgets / libusbgx

C library encapsulating the Linux kernel USB gadget configfs userspace API functionality
GNU General Public License v2.0
216 stars 72 forks source link

uac2: add additional configuration controls #83

Closed mgrzeschik closed 11 months ago

mgrzeschik commented 1 year ago

This patch adds the possibility to set additional configuration parameters in configfs for uac2.

It adds the controls:

{c,p}_volume_present capture/playback volume control enable {c,p}_mute_present capture/playback mute control enable {c,p}_volume_min capture/playback volume control min value (in 1/256 dB) {c,p}_volume_max capture/playback volume control max value (in 1/256 dB) {c,p}_volume_res capture/playback volume control resolution (in 1/256 dB) {c,p}_hs_bint capture/playback bInterval for HS/SS (1-4: fixed, 0: auto) c_sync capture synchronization type (async/adaptive) req_number the number of pre-allocated requests for both capture and playback fb_max maximum extra bandwidth in async mode

(from kernel:Documentation/ABI/testing/configfs-usb-gadget-uac2)

pabs3 commented 1 year ago

I think adding items in the middle of an enum or struct breaks the ABI of the library. Please confirm this using pkg-abidiff and abipkgdiff and if the ABI is broken then move them around until it isn't broken.

-- bye, pabs

https://bonedaddy.net/pabs3/

mgrzeschik commented 1 year ago

I think adding items in the middle of an enum or struct breaks the ABI of the library. Please confirm this using pkg-abidiff and abipkgdiff and if the ABI is broken then move them around until it isn't broken.

You are absolutely right! I fixed it. Thanks for the pointer.

pabs3 commented 1 year ago

I suggest also ordering the additions to uac2_attr in uac2.c the same as the order in usbg_f_uac2_attr in uac2.h. I don't think it it changes any ABI but just for consistency.

-- bye, pabs

https://bonedaddy.net/pabs3/

mgrzeschik commented 1 year ago

I suggest also ordering the additions to uac2_attr in uac2.c the same as the order in usbg_f_uac2_attr in uac2.h. I don't think it it changes any ABI but just for consistency.

I did this just now. Hope this looks right now.

pabs3 commented 1 year ago

No regressions in compiler, cppcheck, or scan-build warnings. Some of them that still need fixing though.

Looks good to me.

PS: if you have time to look at some of the backlog of issues and PRs that would be great. Also we need to make a release at some point.

-- bye, pabs

https://bonedaddy.net/pabs3/