From efb540c895d2cb77b1472edda6ca45d40719a041 Mon Sep 17 00:00:00 2001 From: Andrzej Pietrasiewicz Date: Mon, 8 Sep 2014 11:18:16 +0300 Subject: [PATCH] usb: gadget: uvc: move module parameters from f_uvc When configfs support is integrated the future uvc function module must not take any parameters. Move parameters to webcam. Signed-off-by: Andrzej Pietrasiewicz Tested-by: Michael Grzeschik Signed-off-by: Laurent Pinchart Signed-off-by: Felipe Balbi --- drivers/usb/gadget/function/f_uvc.c | 26 +++++++++----------------- drivers/usb/gadget/function/f_uvc.h | 6 +++++- drivers/usb/gadget/legacy/webcam.c | 27 ++++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c index b347530d1dfe..187c3a04cf70 100644 --- a/drivers/usb/gadget/function/f_uvc.c +++ b/drivers/usb/gadget/function/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_interval; +static unsigned int streaming_maxpacket; static unsigned int streaming_maxburst; -module_param(streaming_maxburst, uint, S_IRUGO|S_IWUSR); -MODULE_PARM_DESC(streaming_maxburst, "0 - 15 (ss only)"); /* -------------------------------------------------------------------------- * Function descriptors @@ -756,7 +744,9 @@ 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 stream_interv, unsigned int stream_maxpkt, + unsigned int stream_maxburst, unsigned int trace) { struct uvc_device *uvc; int ret = 0; @@ -794,6 +784,10 @@ uvc_bind_config(struct usb_configuration *c, ss_streaming[0]->bDescriptorSubType != UVC_VS_INPUT_HEADER) goto error; + streaming_interval = stream_interv; + streaming_maxpacket = stream_maxpkt; + streaming_maxburst = stream_maxburst; + uvc_gadget_trace_param = trace; uvc->desc.fs_control = fs_control; uvc->desc.ss_control = ss_control; uvc->desc.fs_streaming = fs_streaming; @@ -838,6 +832,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/function/f_uvc.h b/drivers/usb/gadget/function/f_uvc.h index ec52752f7326..74b9602ef2d8 100644 --- a/drivers/usb/gadget/function/f_uvc.h +++ b/drivers/usb/gadget/function/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/legacy/webcam.c b/drivers/usb/gadget/legacy/webcam.c index a11d8e420bfe..f826622d1dc2 100644 --- a/drivers/usb/gadget/legacy/webcam.c +++ b/drivers/usb/gadget/legacy/webcam.c @@ -29,6 +29,25 @@ #include "f_uvc.c" USB_GADGET_COMPOSITE_OPTIONS(); + +/*-------------------------------------------------------------------------*/ + +/* 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)"); + +static unsigned int trace; +module_param(trace, uint, S_IRUGO|S_IWUSR); +MODULE_PARM_DESC(trace, "Trace level bitmask"); /* -------------------------------------------------------------------------- * Device descriptor */ @@ -326,9 +345,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, streaming_maxpacket, + streaming_maxburst, trace); } static struct usb_configuration webcam_config_driver = { -- 2.20.1