media: uvcvideo: Disable hardware timestamps by default (Closes: #794327)
This commit is contained in:
parent
cab5840aaa
commit
1554dfda02
|
@ -1,3 +1,9 @@
|
||||||
|
linux (4.2.1-2) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* media: uvcvideo: Disable hardware timestamps by default (Closes: #794327)
|
||||||
|
|
||||||
|
-- Ben Hutchings <ben@decadent.org.uk> Sat, 26 Sep 2015 16:40:51 +0100
|
||||||
|
|
||||||
linux (4.2.1-1) unstable; urgency=medium
|
linux (4.2.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
* New upstream stable update:
|
* New upstream stable update:
|
||||||
|
|
66
debian/patches/bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
vendored
Normal file
66
debian/patches/bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
vendored
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||||
|
Date: Mon, 27 Jul 2015 11:06:48 -0300
|
||||||
|
Subject: [media] uvcvideo: Disable hardware timestamps by default
|
||||||
|
Origin: http://git.linuxtv.org/cgit.cgi/media_tree.git/commit?id=5d0fd3c806b9e932010931ae67dbb482020e0882
|
||||||
|
Bug-Debian: https://bugs.debian.org/794327
|
||||||
|
|
||||||
|
The hardware timestamping implementation has been reported as not
|
||||||
|
working correctly on at least the Logitech C920. Until this can be
|
||||||
|
fixed, disable it by default.
|
||||||
|
|
||||||
|
Reported-by: Peter Rabbitson <rabbit@rabbit.us>
|
||||||
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||||
|
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
|
||||||
|
---
|
||||||
|
drivers/media/usb/uvc/uvc_driver.c | 3 +++
|
||||||
|
drivers/media/usb/uvc/uvc_video.c | 3 +++
|
||||||
|
drivers/media/usb/uvc/uvcvideo.h | 1 +
|
||||||
|
3 files changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
|
||||||
|
index 4b5b3e8..d11fd6a 100644
|
||||||
|
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||||
|
+++ b/drivers/media/usb/uvc/uvc_driver.c
|
||||||
|
@@ -32,6 +32,7 @@
|
||||||
|
#define DRIVER_DESC "USB Video Class driver"
|
||||||
|
|
||||||
|
unsigned int uvc_clock_param = CLOCK_MONOTONIC;
|
||||||
|
+unsigned int uvc_hw_timestamps_param;
|
||||||
|
unsigned int uvc_no_drop_param;
|
||||||
|
static unsigned int uvc_quirks_param = -1;
|
||||||
|
unsigned int uvc_trace_param;
|
||||||
|
@@ -2078,6 +2079,8 @@ static int uvc_clock_param_set(const char *val, struct kernel_param *kp)
|
||||||
|
module_param_call(clock, uvc_clock_param_set, uvc_clock_param_get,
|
||||||
|
&uvc_clock_param, S_IRUGO|S_IWUSR);
|
||||||
|
MODULE_PARM_DESC(clock, "Video buffers timestamp clock");
|
||||||
|
+module_param_named(hwtimestamps, uvc_hw_timestamps_param, uint, S_IRUGO|S_IWUSR);
|
||||||
|
+MODULE_PARM_DESC(hwtimestamps, "Use hardware timestamps");
|
||||||
|
module_param_named(nodrop, uvc_no_drop_param, uint, S_IRUGO|S_IWUSR);
|
||||||
|
MODULE_PARM_DESC(nodrop, "Don't drop incomplete frames");
|
||||||
|
module_param_named(quirks, uvc_quirks_param, uint, S_IRUGO|S_IWUSR);
|
||||||
|
diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c
|
||||||
|
index f839654..1c4a117 100644
|
||||||
|
--- a/drivers/media/usb/uvc/uvc_video.c
|
||||||
|
+++ b/drivers/media/usb/uvc/uvc_video.c
|
||||||
|
@@ -623,6 +623,9 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
|
||||||
|
u32 rem;
|
||||||
|
u64 y;
|
||||||
|
|
||||||
|
+ if (!uvc_hw_timestamps_param)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
spin_lock_irqsave(&clock->lock, flags);
|
||||||
|
|
||||||
|
if (clock->count < clock->size)
|
||||||
|
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
|
||||||
|
index 816dd1a..1374bd9 100644
|
||||||
|
--- a/drivers/media/usb/uvc/uvcvideo.h
|
||||||
|
+++ b/drivers/media/usb/uvc/uvcvideo.h
|
||||||
|
@@ -593,6 +593,7 @@ extern unsigned int uvc_clock_param;
|
||||||
|
extern unsigned int uvc_no_drop_param;
|
||||||
|
extern unsigned int uvc_trace_param;
|
||||||
|
extern unsigned int uvc_timeout_param;
|
||||||
|
+extern unsigned int uvc_hw_timestamps_param;
|
||||||
|
|
||||||
|
#define uvc_trace(flag, msg...) \
|
||||||
|
do { \
|
|
@ -96,3 +96,4 @@ bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch
|
||||||
bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch
|
bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch
|
||||||
bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch
|
bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch
|
||||||
bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
|
bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
|
||||||
|
bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
|
||||||
|
|
Loading…
Reference in New Issue