[linux-uvc-devel] configfs: uvc and other gadget at the same time
Linux UVC driver and tools
Brought to you by:
pinchartl
From: Gregoire G. <gre...@ge...> - 2022-06-28 01:25:56
|
Hello, I have UVC gadget over configfs working well alone. I have also acm + mtp working at the same time. But uvc doesn't work in a uvc + acm configfs configuration (while acm works in that same configuration). uvc alone gives: [ 13.544000] dwc2 c0040000.dwc2otg: new device is high-speed [ 13.624000] dwc2 c0040000.dwc2otg: new device is high-speed [ 13.696000] dwc2 c0040000.dwc2otg: new address 53 [ 13.720000] configfs-gadget gadget: high-speed config #1: c [ 13.720000] configfs-gadget gadget: uvc_function_set_alt(0, 0) [ 13.720000] configfs-gadget gadget: reset UVC Control [ 13.720000] configfs-gadget gadget: uvc_function_set_alt(1, 0) [ 13.720000] configfs-gadget gadget: uvc_function_set_alt(1, 0) while uvc + acm gives: [ 13.784000] dwc2 c0040000.dwc2otg: new device is high-speed [ 13.864000] dwc2 c0040000.dwc2otg: new device is high-speed [ 13.932000] dwc2 c0040000.dwc2otg: new address 55 [ 13.956000] configfs-gadget gadget: high-speed config #1: c [ 13.956000] configfs-gadget gadget: uvc_function_set_alt(2, 0) [ 13.956000] configfs-gadget gadget: reset UVC Control [ 13.956000] configfs-gadget gadget: uvc_function_set_alt(3, 0) [ 13.956000] dwc2 c0040000.dwc2otg: dwc2_hsotg_ep_sethalt(ep ffffffc01e1fe318 ep0, 1) [ 13.956000] dwc2 c0040000.dwc2otg: dwc2_hsotg_ep_sethalt(ep ffffffc01e1fe318 ep0, 1) [ 13.956000] dwc2 c0040000.dwc2otg: dwc2_hsotg_ep_sethalt(ep ffffffc01e1fe318 ep0, 1) [ 13.956000] dwc2 c0040000.dwc2otg: dwc2_hsotg_ep_sethalt(ep ffffffc01e1fe318 ep0, 1) [ 13.956000] configfs-gadget gadget: uvc_function_set_alt(3, 0) [ 13.960000] dwc2 c0040000.dwc2otg: dwc2_hsotg_ep_sethalt(ep ffffffc01e1fe318 ep0, 1) [ 13.960000] dwc2 c0040000.dwc2otg: dwc2_hsotg_ep_sethalt(ep ffffffc01e1fe318 ep0, 1) And the host PC kernel gives an error when info is retrieved from the OTG device. Because of a lot other (much more complicated) constraints, I'm on an old 4.4 kernel far away from the latest. Is this a known bug? Could it be a hardware limitation of my OTG which has 1 control endpoint and 16 device mode endpoints? It seems that acm is handled before uvc, would it make sense to patch to swap how those two are handled initially? Where should I look into in my kernel to figure out my issue? Any pointer or idea would be appreciated! Thanks, Grégoire |