From patchwork Fri Sep 14 21:57:48 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 1460961 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id BEBF83FD40 for ; Fri, 14 Sep 2012 21:57:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754465Ab2INV5X (ORCPT ); Fri, 14 Sep 2012 17:57:23 -0400 Received: from perceval.ideasonboard.com ([95.142.166.194]:57828 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754368Ab2INV5W (ORCPT ); Fri, 14 Sep 2012 17:57:22 -0400 Received: from avalon.ideasonboard.com (unknown [91.178.151.136]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2AD3635A88; Fri, 14 Sep 2012 23:57:21 +0200 (CEST) From: Laurent Pinchart To: linux-media@vger.kernel.org Cc: Antoine Reversat , sakari.ailus@iki.fi Subject: [PATCH v2] omap3isp: Use monotonic timestamps for statistics buffers Date: Fri, 14 Sep 2012 23:57:48 +0200 Message-Id: <1347659868-17398-1-git-send-email-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 1.7.8.6 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org V4L2 buffers use the monotonic clock, while statistics buffers use wall time. This makes it difficult to correlate video frames and statistics. Switch statistics buffers to the monotonic clock to fix this, and replace struct timeval with struct timespec. Reported-by: Antoine Reversat Signed-off-by: Laurent Pinchart Acked-by: Sakari Ailus --- drivers/media/platform/omap3isp/ispstat.c | 2 +- drivers/media/platform/omap3isp/ispstat.h | 2 +- include/linux/omap3isp.h | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/omap3isp/ispstat.c b/drivers/media/platform/omap3isp/ispstat.c index b8640be..bb21c4e 100644 --- a/drivers/media/platform/omap3isp/ispstat.c +++ b/drivers/media/platform/omap3isp/ispstat.c @@ -256,7 +256,7 @@ static int isp_stat_buf_queue(struct ispstat *stat) if (!stat->active_buf) return STAT_NO_BUF; - do_gettimeofday(&stat->active_buf->ts); + ktime_get_ts(&stat->active_buf->ts); stat->active_buf->buf_size = stat->buf_size; if (isp_stat_buf_check_magic(stat, stat->active_buf)) { diff --git a/drivers/media/platform/omap3isp/ispstat.h b/drivers/media/platform/omap3isp/ispstat.h index 9b7c865..8221d0c 100644 --- a/drivers/media/platform/omap3isp/ispstat.h +++ b/drivers/media/platform/omap3isp/ispstat.h @@ -50,7 +50,7 @@ struct ispstat_buffer { struct iovm_struct *iovm; void *virt_addr; dma_addr_t dma_addr; - struct timeval ts; + struct timespec ts; u32 buf_size; u32 frame_number; u16 config_counter; diff --git a/include/linux/omap3isp.h b/include/linux/omap3isp.h index c090cf9..263a0c0 100644 --- a/include/linux/omap3isp.h +++ b/include/linux/omap3isp.h @@ -27,6 +27,11 @@ #ifndef OMAP3_ISP_USER_H #define OMAP3_ISP_USER_H +#ifdef __KERNEL__ +#include /* need struct timespec */ +#else +#include +#endif #include #include @@ -164,7 +169,7 @@ struct omap3isp_h3a_aewb_config { * @config_counter: Number of the configuration associated with the data. */ struct omap3isp_stat_data { - struct timeval ts; + struct timespec ts; void __user *buf; __u32 buf_size; __u16 frame_number;