From patchwork Mon Nov 27 13:19:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 119705 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp260197qgn; Mon, 27 Nov 2017 05:22:29 -0800 (PST) X-Google-Smtp-Source: AGs4zMY2sfSESQnReugb6pHPLYjiEHSdnYu1gT5LpQsIBVNyap8xbecfYyYMMOFQm7WXuH68vH2k X-Received: by 10.98.249.5 with SMTP id o5mr36907682pfh.54.1511788949447; Mon, 27 Nov 2017 05:22:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511788949; cv=none; d=google.com; s=arc-20160816; b=C4HNKJTBKHUnPYOHiy03pzbeWs1Q+H/iE2l8GYN/jq9qn1WBAlYOnkmQukih2+rNhj 3O2M2DfIOFsJi++e7XVRR12KnZGN3SYlIkAXy7bMw3yAcdhvM0Dit/KNc0YxLjLLGtf0 Fci2gVQ53Poe5NvmaYebMKc0j1esUuvP8VgR3cLfezZ01nPSoBBYDDcJGPTJmUlSTse7 IMdYVDfTfeY9fNP02jPk98msmFxscN9gzhZpnOScjQ7XeT658zNFdmRzm4Nfb6fPnIkg npIiv7yxD6Mt3uenVPtWVC9OYOPT38F+cwBG6U6EfVJTgeSispUabGuOE+ZQgqilJ350 rQ1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=tmKkbGKa43/ULzh3rpb17oXuAS/1fjkbkjo3hI795mY=; b=vV16kFlE2IPh7Cgtre15p2k4ZVMFsfaQDu57R4sc5z/AGzFaWqsfzHZ4qS0BA9BwRy 2dbGg9khVI/bAiin3d55+XfIZYJ9bQlWtRz17/mf1NRk67r6HKl/JtTf869UgboGyYz5 I8khzsL+9N29u3Fqg3+Pux0guF8KZmaEYPUYHd8iUyDnawR7VkoQzT58/XfTaEPzDodv TPyKcfS89EK5/RyHJdssNvyW/VUmpcjQq0LtVY+UmQtj289Cmw9GEeRsP0LJIWTM7lfB 9zNIIouzj5n61so9SRepgcT2IvNxBsDmOEMcwFUztiKY679MhV4nWQYNDGfwlvhQ1iIt t1kA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k21si7814671pfb.44.2017.11.27.05.22.29; Mon, 27 Nov 2017 05:22:29 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752409AbdK0NW1 (ORCPT + 28 others); Mon, 27 Nov 2017 08:22:27 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:62821 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752083AbdK0NWZ (ORCPT ); Mon, 27 Nov 2017 08:22:25 -0500 Received: from wuerfel.lan ([109.193.157.232]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.145]) with ESMTPA (Nemesis) id 0MJTL9-1eHwhx2RRb-0036i2; Mon, 27 Nov 2017 14:21:50 +0100 From: Arnd Bergmann To: Eric Anholt , Stefan Wahren , Greg Kroah-Hartman , Florian Fainelli , Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com Cc: y2038@lists.linaro.org, Arnd Bergmann , Narcisa Ana Maria Vasile , Michael Zoran , Aishwarya Pant , Derek Robson , linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/8] [media] staging: bcm2835-camera use ktime_t for timestamps Date: Mon, 27 Nov 2017 14:19:56 +0100 Message-Id: <20171127132027.1734806-4-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20171127132027.1734806-1-arnd@arndb.de> References: <20171127132027.1734806-1-arnd@arndb.de> X-Provags-ID: V03:K0:MVl04qGSRhXhkCMD9+Gi42dvUTcVZ9FC4uN2YpDCwZOkrZKv3Ce BlPC4UlSDWzLQQalaVUuoH5iQFmrYgY5/cwadlHSQZXZY+LNFhnpxSfdbIcGycVi0YEPro8 9QJOqtqkahATzMgSYNY4IZgSodBC4zMQgf8HcLWZ62P8sST52qB4I6I9O1oBjO5ZtBR4rvn weS6N49yzhl/+e5k07fBA== X-UI-Out-Filterresults: notjunk:1; V01:K0:Igjie9rb1Lw=:7etzPtGzjSgbWHFNTzaLow Zmxr9+R4dj/lzo+1EOKpVGKwH8mYFJJWBQwUn0W7i8UQyaw4S3xOgXPA6QPP6W1Ya3UDTO/8T CzTJiAEOHwBwAKRon8BXlgq/6JdYJ6WXb7Mv3yoO1Goze9fyUXKXiwHR9sW+CpEQT8YSDEHcY KY1Ar3+wJIRxZhGN56QiS+p+sjeE2gFTR4UXSK9wmD+BXeqKX9ibv+y+3GFgRhQRAnhrlFzqS yabfdULyPKD2hqEOOki8Oey6n3wGswzrlAu87NHfetqSV2xhZQj0WDgb+Ii5c5QX3lELsUSVD aH5drHvtcKbm77pJemr5jVvcL5pZ8uK0alWLU1esYpIlaz/l+saY+7EYtwafmkPcfkdPCHgh8 CYL6klUCUYCfc1m08S7MEoFt9tJoVYjIRFBMIiUDev1I0Jq+oafKw4yK4H/fesuQDEggBmbuQ woRZvMBsbCmlmoQU5PTP/4bpM0grVpeoL/420i5DzapvPDMgjW7q1yB06gbs24uy4AOCduzPD GrliXiIQHXZdYBKEHKlkM6N/qo3czdwVWj/A06Q65CuV10I6tKUWiG0VMBx13gr5RYR80HTcN 8iDiOUNvKyWeEIvdADTT2b+jmiABefl3js48h5meRRhhNjQp5lHjEtPfkYn7i1wTziRpe3L0z +zWTsyMgK+YmwF93Lb02xgeziwARO/Za7Sn7BSF7RCSfTO8X57tcV1ZH7IYrc2RZPitlMAgcu TeiWzJPKMjwNruJWXaQUNzOCvL9jSUEPuyXpkw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org struct timeval is deprecated for in-kernel use, and converting this function to use ktime_t makes it simpler as well. Signed-off-by: Arnd Bergmann --- .../vc04_services/bcm2835-camera/bcm2835-camera.c | 37 ++++++---------------- .../vc04_services/bcm2835-camera/bcm2835-camera.h | 2 +- 2 files changed, 10 insertions(+), 29 deletions(-) -- 2.9.0 diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c index be936b8fe317..d8766b166675 100644 --- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c @@ -343,37 +343,18 @@ static void buffer_cb(struct vchiq_mmal_instance *instance, if (dev->capture.frame_count) { if (dev->capture.vc_start_timestamp != -1 && pts != 0) { - struct timeval timestamp; + ktime_t timestamp; s64 runtime_us = pts - dev->capture.vc_start_timestamp; - u32 div = 0; - u32 rem = 0; - - div = - div_u64_rem(runtime_us, USEC_PER_SEC, &rem); - timestamp.tv_sec = - dev->capture.kernel_start_ts.tv_sec + div; - timestamp.tv_usec = - dev->capture.kernel_start_ts.tv_usec + rem; - - if (timestamp.tv_usec >= - USEC_PER_SEC) { - timestamp.tv_sec++; - timestamp.tv_usec -= - USEC_PER_SEC; - } + timestamp = ktime_add_us(dev->capture.kernel_start_ts, + runtime_us); v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev, - "Convert start time %d.%06d and %llu " - "with offset %llu to %d.%06d\n", - (int)dev->capture.kernel_start_ts. - tv_sec, - (int)dev->capture.kernel_start_ts. - tv_usec, + "Convert start time %llu and %llu " + "with offset %llu to %llu\n", + ktime_to_ns(dev->capture.kernel_start_ts), dev->capture.vc_start_timestamp, pts, - (int)timestamp.tv_sec, - (int)timestamp.tv_usec); - buf->vb.vb2_buf.timestamp = timestamp.tv_sec * 1000000000ULL + - timestamp.tv_usec * 1000ULL; + ktime_to_ns(timestamp)); + buf->vb.vb2_buf.timestamp = ktime_to_ns(timestamp); } else { buf->vb.vb2_buf.timestamp = ktime_get_ns(); } @@ -547,7 +528,7 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) "Start time %lld size %d\n", dev->capture.vc_start_timestamp, parameter_size); - v4l2_get_timestamp(&dev->capture.kernel_start_ts); + dev->capture.kernel_start_ts = ktime_get(); /* enable the camera port */ dev->capture.port->cb_ctx = dev; diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h index 404037476bc5..83920683a448 100644 --- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h +++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.h @@ -92,7 +92,7 @@ struct bm2835_mmal_dev { /* VC start timestamp for streaming */ s64 vc_start_timestamp; /* Kernel start timestamp for streaming */ - struct timeval kernel_start_ts; + ktime_t kernel_start_ts; struct vchiq_mmal_port *port; /* port being used for capture */ /* camera port being used for capture */