diff options
-rw-r--r-- | drivers/media/video/uvc/uvc_video.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c index ee5e2338b41..5a2022c0152 100644 --- a/drivers/media/video/uvc/uvc_video.c +++ b/drivers/media/video/uvc/uvc_video.c | |||
@@ -138,6 +138,15 @@ static void uvc_fixup_video_ctrl(struct uvc_streaming *stream, | |||
138 | bandwidth /= 8; | 138 | bandwidth /= 8; |
139 | bandwidth += 12; | 139 | bandwidth += 12; |
140 | 140 | ||
141 | /* The bandwidth estimate is too low for many cameras. Don't use | ||
142 | * maximum packet sizes lower than 1024 bytes to try and work | ||
143 | * around the problem. According to measurements done on two | ||
144 | * different camera models, the value is high enough to get most | ||
145 | * resolutions working while not preventing two simultaneous | ||
146 | * VGA streams at 15 fps. | ||
147 | */ | ||
148 | bandwidth = max_t(u32, bandwidth, 1024); | ||
149 | |||
141 | ctrl->dwMaxPayloadTransferSize = bandwidth; | 150 | ctrl->dwMaxPayloadTransferSize = bandwidth; |
142 | } | 151 | } |
143 | } | 152 | } |