diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2009-10-09 19:55:23 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-05 15:40:37 -0500 |
commit | b232a012adfea9f535702e8296ea6b76e691f436 (patch) | |
tree | da121594b0c5e6d95d399190266e8b2582b2f22a /drivers/media/video/uvc/uvc_video.c | |
parent | c4ed8c66d79d707d89fe732ff5b97739edf1ba62 (diff) |
V4L/DVB (13155): uvcvideo: Add a module parameter to set the streaming control timeout
The default streaming control timeout was found by Ondrej Zary to be too low
for some Logitech webcams. With kernel 2.6.22 and newer they would timeout
during initialization unles the audio function was initialized before the
video function.
Add a module parameter to set the streaming control timeout and increase the
default value from 1000ms to 3000ms to fix the above problem.
Thanks to Ondrej Zary for investigating the issue and providing an initial
patch.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/uvc/uvc_video.c')
-rw-r--r-- | drivers/media/video/uvc/uvc_video.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c index 3369200a91d7..05139a4f14f6 100644 --- a/drivers/media/video/uvc/uvc_video.c +++ b/drivers/media/video/uvc/uvc_video.c | |||
@@ -135,7 +135,7 @@ static int uvc_get_video_ctrl(struct uvc_streaming *stream, | |||
135 | 135 | ||
136 | ret = __uvc_query_ctrl(stream->dev, query, 0, stream->intfnum, | 136 | ret = __uvc_query_ctrl(stream->dev, query, 0, stream->intfnum, |
137 | probe ? UVC_VS_PROBE_CONTROL : UVC_VS_COMMIT_CONTROL, data, | 137 | probe ? UVC_VS_PROBE_CONTROL : UVC_VS_COMMIT_CONTROL, data, |
138 | size, UVC_CTRL_STREAMING_TIMEOUT); | 138 | size, uvc_timeout_param); |
139 | 139 | ||
140 | if ((query == UVC_GET_MIN || query == UVC_GET_MAX) && ret == 2) { | 140 | if ((query == UVC_GET_MIN || query == UVC_GET_MAX) && ret == 2) { |
141 | /* Some cameras, mostly based on Bison Electronics chipsets, | 141 | /* Some cameras, mostly based on Bison Electronics chipsets, |
@@ -239,7 +239,7 @@ static int uvc_set_video_ctrl(struct uvc_streaming *stream, | |||
239 | 239 | ||
240 | ret = __uvc_query_ctrl(stream->dev, UVC_SET_CUR, 0, stream->intfnum, | 240 | ret = __uvc_query_ctrl(stream->dev, UVC_SET_CUR, 0, stream->intfnum, |
241 | probe ? UVC_VS_PROBE_CONTROL : UVC_VS_COMMIT_CONTROL, data, | 241 | probe ? UVC_VS_PROBE_CONTROL : UVC_VS_COMMIT_CONTROL, data, |
242 | size, UVC_CTRL_STREAMING_TIMEOUT); | 242 | size, uvc_timeout_param); |
243 | if (ret != size) { | 243 | if (ret != size) { |
244 | uvc_printk(KERN_ERR, "Failed to set UVC %s control : " | 244 | uvc_printk(KERN_ERR, "Failed to set UVC %s control : " |
245 | "%d (exp. %u).\n", probe ? "probe" : "commit", | 245 | "%d (exp. %u).\n", probe ? "probe" : "commit", |