Hi Bhupesh, On Wednesday 01 May 2013 01:08:23 Bhupesh SHARMA wrote: > On 4/29/2013 8:08 PM, Laurent Pinchart wrote: > > On Wednesday 17 April 2013 09:44:25 Bhupesh Sharma wrote: > >> This patch adds the support in UVC webcam gadget to allocate UVC header > >> and payload as Scatter-Gather elements which can be used on a SG-capable > >> UDC controller. > >> > >> A module parameter has been introduced for the same. One can set the > >> module parameter 'sg_mode' to 1 to turn on this feature (by default this > >> feature is turned-off). > >> > >> This ensures that we don't require a memcpy from CPU side to append UVC > >> header in front of the UVC payload atleast for SG capable UDC contollers. > >> > >> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@xxxxxx> > >> --- > >> Note that to ease review and integration of this patch, I have rebased it > >> on the following patch already circulated for review last week: > >> > >> [PATCH 1/1] usb: gadget/uvc: Add support for Bulk endpoint to be used as > >> > >> Video Streaming ep > >> > >> http://www.mail-archive.com/linux-usb@xxxxxxxxxxxxxxx/msg19546.html > >> > >> The above patch was rebased on Laurent's UVC gadget git tree available > >> here (head uvc-gadget): > >> git://linuxtv.org/pinchartl/uvcvideo.git > >> > >> This will allow the patches to be pulled into Felipe's repo in one go > >> after review and any subsequent rework (if required). > >> > >> drivers/usb/gadget/f_uvc.c | 8 +++ > >> drivers/usb/gadget/uvc.h | 2 + > >> drivers/usb/gadget/uvc_video.c | 113 ++++++++++++++++++++++++++++----- > >> 3 files changed, 109 insertions(+), 14 deletions(-) > >> > >> diff --git a/drivers/usb/gadget/f_uvc.c b/drivers/usb/gadget/f_uvc.c > >> index e5953eb..ccf0253 100644 > >> --- a/drivers/usb/gadget/f_uvc.c > >> +++ b/drivers/usb/gadget/f_uvc.c > >> @@ -50,6 +50,11 @@ module_param(bulk_streaming_ep, bool, > >> S_IRUGO|S_IWUSR); > >> > >> MODULE_PARM_DESC(bulk_streaming_ep, "0 (Use ISOC video streaming ep) / > >> " > >> > >> "1 (Use BULK video streaming ep)"); > >> > >> +static bool sg_mode; > >> +module_param(sg_mode, bool, S_IRUGO|S_IWUSR); > >> +MODULE_PARM_DESC(sg_mode, "0 (Don't use SG feature) / " > >> + "1 (Use scatterlist for SG-capable controllers)"); > >> + > > > > Can't this be queried automatically from the UDC at runtime ? > > Yes, it can be. But I believe its better to still provide a module > parameter to the UVC webcam module user as some UDCs may have flaky SG > implementations in H/W and then the user will not be able to use the > UVC gadget without using the SG feature of SG-capable UDCs. > > I believe in worst-case its better to fall-back on memcpy from CPU if > the SG features in the UDC are not yet properly supported. In that case could we default to use SG with UDCs that support it, and have a module parameter to disable SG ? -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html