Hi Petr, I saw your patch and at the same time I saw Laurent suggestion. I have tried both patches both are working but I'm going with Laurent suggestion UVC_ATTR(f_uvc_opts_, cname, cname). I'm going with unofficial uvc-gadget. Before I can test usb uvc gadget not enumerating. Regards, Ganesh Biradar On Wed, Mar 8, 2017 at 2:13 PM, Petr Cvek <petr.cvek@xxxxxx> wrote: > Hi, > > I'm not subscribed to linux-usb mailing list so I found your post just by a pure luck. I've sent the patch for: > > streaming_maxburst streaming_maxpacket streaming_interval > > problem earlier this week. Try this patch [1]: > > BTW please CC me if you will have another discusion in your thread (I will try to not forget it myself if I will continue in my thread). > > P.S. Which userspace do you using, original uvc-gadget or unofficial repo [2]? > > [1] https://www.spinics.net/lists/linux-usb/msg154417.html > [2] https://github.com/madscientist42/uvc-gadget > > -- > [PATCH] usb: gadget: uvc: Missing files for configfs interface > > Commit 76e0da34c7ce ("usb-gadget/uvc: use per-attribute show and store > methods") caused a stringification of an undefined macro argument "aname", > so three UVC parameters (streaming_interval, streaming_maxpacket and > streaming_maxburst) were named "aname". > > Add the definition of "aname" to the main macro and name the filenames as > originaly intended. > > Signed-off-by: Petr Cvek <petr.cvek@xxxxxx> > --- > drivers/usb/gadget/function/uvc_configfs.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/usb/gadget/function/uvc_configfs.c b/drivers/usb/gadget/function/uvc_configfs.c > index 4e037d2a7a60..3a36b2e85788 100644 > --- a/drivers/usb/gadget/function/uvc_configfs.c > +++ b/drivers/usb/gadget/function/uvc_configfs.c > @@ -2125,7 +2125,7 @@ static struct configfs_item_operations uvc_item_ops = { > .release = uvc_attr_release, > }; > > -#define UVCG_OPTS_ATTR(cname, conv, str2u, uxx, vnoc, limit) \ > +#define UVCG_OPTS_ATTR(cname, aname, conv, str2u, uxx, vnoc, limit) \ > static ssize_t f_uvc_opts_##cname##_show( \ > struct config_item *item, char *page) \ > { \ > @@ -2172,12 +2172,12 @@ UVC_ATTR(f_uvc_opts_, cname, aname) > > #define identity_conv(x) (x) > > -UVCG_OPTS_ATTR(streaming_interval, identity_conv, kstrtou8, u8, identity_conv, > - 16); > -UVCG_OPTS_ATTR(streaming_maxpacket, le16_to_cpu, kstrtou16, u16, le16_to_cpu, > - 3072); > -UVCG_OPTS_ATTR(streaming_maxburst, identity_conv, kstrtou8, u8, identity_conv, > - 15); > +UVCG_OPTS_ATTR(streaming_interval, streaming_interval, identity_conv, > + kstrtou8, u8, identity_conv, 16); > +UVCG_OPTS_ATTR(streaming_maxpacket, streaming_maxpacket, le16_to_cpu, > + kstrtou16, u16, le16_to_cpu, 3072); > +UVCG_OPTS_ATTR(streaming_maxburst, streaming_maxburst, identity_conv, > + kstrtou8, u8, identity_conv, 15); > > #undef identity_conv -- 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