When configfs support is integrated the future uvc function module must not take any parameters. Move parameters to webcam. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@xxxxxxxxxxx> --- drivers/usb/gadget/f_uvc.c | 30 ++++++++++++------------------ drivers/usb/gadget/f_uvc.h | 6 +++++- drivers/usb/gadget/webcam.c | 30 +++++++++++++++++++++++++++--- 3 files changed, 44 insertions(+), 22 deletions(-) diff --git a/drivers/usb/gadget/f_uvc.c b/drivers/usb/gadget/f_uvc.c index ff4340a..6eb5f06 100644 --- a/drivers/usb/gadget/f_uvc.c +++ b/drivers/usb/gadget/f_uvc.c @@ -29,21 +29,9 @@ #include "uvc.h" unsigned int uvc_gadget_trace_param; - -/*-------------------------------------------------------------------------*/ - -/* module parameters specific to the Video streaming endpoint */ -static unsigned int streaming_interval = 1; -module_param(streaming_interval, uint, S_IRUGO|S_IWUSR); -MODULE_PARM_DESC(streaming_interval, "1 - 16"); - -static unsigned int streaming_maxpacket = 1024; -module_param(streaming_maxpacket, uint, S_IRUGO|S_IWUSR); -MODULE_PARM_DESC(streaming_maxpacket, "1 - 1023 (FS), 1 - 3072 (hs/ss)"); - -static unsigned int streaming_maxburst; -module_param(streaming_maxburst, uint, S_IRUGO|S_IWUSR); -MODULE_PARM_DESC(streaming_maxburst, "0 - 15 (ss only)"); +unsigned int streaming_interval; +unsigned int streaming_maxpacket; +unsigned int streaming_maxburst; /* -------------------------------------------------------------------------- * Function descriptors @@ -748,7 +736,11 @@ uvc_bind_config(struct usb_configuration *c, const struct uvc_descriptor_header * const *ss_control, const struct uvc_descriptor_header * const *fs_streaming, const struct uvc_descriptor_header * const *hs_streaming, - const struct uvc_descriptor_header * const *ss_streaming) + const struct uvc_descriptor_header * const *ss_streaming, + unsigned int streaming_interval_webcam, + unsigned int streaming_maxpacket_webcam, + unsigned int streaming_maxburst_webcam, + unsigned int uvc_gadget_trace_webcam) { struct uvc_device *uvc; int ret = 0; @@ -786,6 +778,10 @@ uvc_bind_config(struct usb_configuration *c, ss_streaming[0]->bDescriptorSubType != UVC_VS_INPUT_HEADER) goto error; + streaming_interval = streaming_interval_webcam; + streaming_maxpacket = streaming_maxpacket_webcam; + streaming_maxburst = streaming_maxburst_webcam; + uvc_gadget_trace_param = uvc_gadget_trace_webcam; uvc->desc.fs_control = fs_control; uvc->desc.ss_control = ss_control; uvc->desc.fs_streaming = fs_streaming; @@ -830,6 +826,4 @@ error: return ret; } -module_param_named(trace, uvc_gadget_trace_param, uint, S_IRUGO|S_IWUSR); -MODULE_PARM_DESC(trace, "Trace level bitmask"); diff --git a/drivers/usb/gadget/f_uvc.h b/drivers/usb/gadget/f_uvc.h index ec52752..74b9602 100644 --- a/drivers/usb/gadget/f_uvc.h +++ b/drivers/usb/gadget/f_uvc.h @@ -21,7 +21,11 @@ int uvc_bind_config(struct usb_configuration *c, const struct uvc_descriptor_header * const *hs_control, const struct uvc_descriptor_header * const *fs_streaming, const struct uvc_descriptor_header * const *hs_streaming, - const struct uvc_descriptor_header * const *ss_streaming); + const struct uvc_descriptor_header * const *ss_streaming, + unsigned int streaming_interval_webcam, + unsigned int streaming_maxpacket_webcam, + unsigned int streaming_maxburst_webcam, + unsigned int uvc_gadget_trace_webcam); #endif /* _F_UVC_H_ */ diff --git a/drivers/usb/gadget/webcam.c b/drivers/usb/gadget/webcam.c index 8cef1e6..52789de 100644 --- a/drivers/usb/gadget/webcam.c +++ b/drivers/usb/gadget/webcam.c @@ -29,6 +29,28 @@ #include "f_uvc.c" USB_GADGET_COMPOSITE_OPTIONS(); + +/*-------------------------------------------------------------------------*/ + +/* module parameters specific to the Video streaming endpoint */ +static unsigned int streaming_interval_webcam = 1; +module_param_named(streaming_interval, streaming_interval_webcam, uint, + S_IRUGO|S_IWUSR); +MODULE_PARM_DESC(streaming_interval, "1 - 16"); + +static unsigned int streaming_maxpacket_webcam = 1024; +module_param_named(streaming_maxpacket, streaming_maxpacket_webcam, uint, + S_IRUGO|S_IWUSR); +MODULE_PARM_DESC(streaming_maxpacket, "1 - 1023 (FS), 1 - 3072 (hs/ss)"); + +static unsigned int streaming_maxburst_webcam; +module_param_named(streaming_maxburst, streaming_maxburst_webcam, uint, + S_IRUGO|S_IWUSR); +MODULE_PARM_DESC(streaming_maxburst, "0 - 15 (ss only)"); + +unsigned int uvc_gadget_trace_param_webcam; +module_param_named(trace, uvc_gadget_trace_param_webcam, uint, S_IRUGO|S_IWUSR); +MODULE_PARM_DESC(trace, "Trace level bitmask"); /* -------------------------------------------------------------------------- * Device descriptor */ @@ -326,9 +348,11 @@ static const struct uvc_descriptor_header * const uvc_ss_streaming_cls[] = { static int __init webcam_config_bind(struct usb_configuration *c) { - return uvc_bind_config(c, uvc_fs_control_cls, uvc_ss_control_cls, - uvc_fs_streaming_cls, uvc_hs_streaming_cls, - uvc_ss_streaming_cls); + return uvc_bind_config(c, uvc_fs_control_cls, + uvc_ss_control_cls, uvc_fs_streaming_cls, + uvc_hs_streaming_cls, uvc_ss_streaming_cls, + streaming_interval_webcam, streaming_maxpacket_webcam, + streaming_maxburst_webcam, uvc_gadget_trace_param_webcam); } static struct usb_configuration webcam_config_driver = { -- 1.8.3.2 -- 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