aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2015-09-26 16:41:18 +0100
committerBen Hutchings <ben@decadent.org.uk>2015-09-26 16:41:18 +0100
commit1554dfda02645a879e4e6b7e457241b3c8fa4da5 (patch)
treedcaac5fed85567b1552823bdf77bda6a2dea7ef4
parentcab5840aaaf611c267de53e2ee48c91a7b16e296 (diff)
downloadkernel_replicant_linux-1554dfda02645a879e4e6b7e457241b3c8fa4da5.tar.gz
kernel_replicant_linux-1554dfda02645a879e4e6b7e457241b3c8fa4da5.tar.bz2
kernel_replicant_linux-1554dfda02645a879e4e6b7e457241b3c8fa4da5.zip
media: uvcvideo: Disable hardware timestamps by default (Closes: #794327)
-rw-r--r--debian/changelog6
-rw-r--r--debian/patches/bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch66
-rw-r--r--debian/patches/series1
3 files changed, 73 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 101c90a22eaf..ee76022fe64a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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
* New upstream stable update:
diff --git a/debian/patches/bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch b/debian/patches/bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
new file mode 100644
index 000000000000..1ac0b528c455
--- /dev/null
+++ b/debian/patches/bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
@@ -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 { \
diff --git a/debian/patches/series b/debian/patches/series
index d65aad0fcd89..38971d26f220 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -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/e1000e-fix-tight-loop-implementation-of-systime-read.patch
bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
+bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch