Commit 5d0fd3c8 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab

[media] uvcvideo: Disable hardware timestamps by default

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: default avatarPeter Rabbitson <rabbit@rabbit.us>
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 60f68735
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#define DRIVER_DESC "USB Video Class driver" #define DRIVER_DESC "USB Video Class driver"
unsigned int uvc_clock_param = CLOCK_MONOTONIC; unsigned int uvc_clock_param = CLOCK_MONOTONIC;
unsigned int uvc_hw_timestamps_param;
unsigned int uvc_no_drop_param; unsigned int uvc_no_drop_param;
static unsigned int uvc_quirks_param = -1; static unsigned int uvc_quirks_param = -1;
unsigned int uvc_trace_param; unsigned int uvc_trace_param;
...@@ -2078,6 +2079,8 @@ static int uvc_clock_param_set(const char *val, struct kernel_param *kp) ...@@ -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, module_param_call(clock, uvc_clock_param_set, uvc_clock_param_get,
&uvc_clock_param, S_IRUGO|S_IWUSR); &uvc_clock_param, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(clock, "Video buffers timestamp clock"); 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_param_named(nodrop, uvc_no_drop_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(nodrop, "Don't drop incomplete frames"); MODULE_PARM_DESC(nodrop, "Don't drop incomplete frames");
module_param_named(quirks, uvc_quirks_param, uint, S_IRUGO|S_IWUSR); module_param_named(quirks, uvc_quirks_param, uint, S_IRUGO|S_IWUSR);
......
...@@ -623,6 +623,9 @@ void uvc_video_clock_update(struct uvc_streaming *stream, ...@@ -623,6 +623,9 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
u32 rem; u32 rem;
u64 y; u64 y;
if (!uvc_hw_timestamps_param)
return;
spin_lock_irqsave(&clock->lock, flags); spin_lock_irqsave(&clock->lock, flags);
if (clock->count < clock->size) if (clock->count < clock->size)
......
...@@ -593,6 +593,7 @@ extern unsigned int uvc_clock_param; ...@@ -593,6 +593,7 @@ extern unsigned int uvc_clock_param;
extern unsigned int uvc_no_drop_param; extern unsigned int uvc_no_drop_param;
extern unsigned int uvc_trace_param; extern unsigned int uvc_trace_param;
extern unsigned int uvc_timeout_param; extern unsigned int uvc_timeout_param;
extern unsigned int uvc_hw_timestamps_param;
#define uvc_trace(flag, msg...) \ #define uvc_trace(flag, msg...) \
do { \ do { \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment