Hi Andrzej, Thank you for the patch. On Friday 16 January 2015 15:14:28 Andrzej Pietrasiewicz wrote: > The purpose of the functions and their parametrs might not be obvious > to the reader, so explain it. > > Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxx> > > --- > drivers/usb/gadget/function/uvc_configfs.c | 34 +++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/drivers/usb/gadget/function/uvc_configfs.c > b/drivers/usb/gadget/function/uvc_configfs.c index 49f25e8..6fd40c5 100644 > --- a/drivers/usb/gadget/function/uvc_configfs.c > +++ b/drivers/usb/gadget/function/uvc_configfs.c > @@ -1918,6 +1918,25 @@ enum uvcg_strm_type { > UVCG_FRAME > }; > > +/* > + * Iterate over a hierarchy of streaming descriptors' config items. > + * The items are created by the user with configfs. > + * > + * It "processes" the header pointed to by @priv1, then for each format > + * that follows the header "processes" the format itself and then for > + * each frame inside a format "processes" the frame. > + * > + * As a "processing" function the @fun is used. > + * > + * __uvcg_iter_strm_cls() is used in two context: first, to calculate > + * the amount of memory needed for an array of streaming descriptors > + * and second, to actually fill the array. > + * > + * @priv1: an "in" parameter As the priv1 argument is always a struct uvcg_streaming_header *, wouldn't it be more explicit to use that type instead of void *, with a proper name for the argument ? > + * @priv2: an "inout" parameter (the caller might want to see the changes > to it) > + * @priv3: an "inout" parameter (the caller might want to see the changes > to it) > + * @fun: callback function for processing each level of the hierarchy > + */ > static int __uvcg_iter_strm_cls(void *priv1, void *priv2, void *priv3, > int (*fun)(void *, void *, void *, int, enum uvcg_strm_type type)) > { > @@ -1951,6 +1970,14 @@ static int __uvcg_iter_strm_cls(void *priv1, void > *priv2, void *priv3, return ret; > } > > +/* > + * Count how many bytes are needed for an array of streaming descriptors. > + * > + * @priv1: pointer to a header, format or frame > + * @priv2: inout parameter, accumulated size of the array > + * @priv3: inout parameter, accumulated number of the array elements > + * @n: unused, this function's prototype must match @fun in > __uvcg_iter_strm_cls + */ > static int __uvcg_cnt_strm(void *priv1, void *priv2, void *priv3, int n, > enum uvcg_strm_type type) > { > @@ -2000,6 +2027,13 @@ static int __uvcg_cnt_strm(void *priv1, void *priv2, > void *priv3, int n, return 0; > } > > +/* > + * Fill an array of streaming descriptors. > + * > + * @priv1: pointer to a header, format or frame > + * @priv2: inout parameter, pointer into a block of memory > + * @priv3: inout parameter, pointer to a 2-dimensional array > + */ > static int __uvcg_fill_strm(void *priv1, void *priv2, void *priv3, int n, > enum uvcg_strm_type type) > { -- 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