From patchwork Mon Nov 27 13:19:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 119704 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp258293qgn; Mon, 27 Nov 2017 05:21:04 -0800 (PST) X-Google-Smtp-Source: AGs4zMZN5hmfKxaobxSUAkAUsPxxHJKVnIGhHXXKCuHQP0w68Wi9sFV32pGv2c8hKK6A48sAK5fJ X-Received: by 10.98.99.68 with SMTP id x65mr19758372pfb.56.1511788864769; Mon, 27 Nov 2017 05:21:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511788864; cv=none; d=google.com; s=arc-20160816; b=KIbgQudaIsNZzbSjAte06A0scpFaocuUpDP6WW5U0DDWNSZBYPC0H06BPBXNIbnV9g 9aslDu7TVaK0YjgNtdUr4YL4/HUV8XAPnk4tyftaOP3Ipv7DRcngLZbEpHNaQ+Vpe7Lo BqshVGcvHE9PaXMxxVIXpcScD4/G0IXqURd0OLIXKNKL2R9M0UM+omQP6Wx7OBzSv5+f eOYAxJZ7vJsVOGHBJfmtQ6+lwWQWRcpKNTIrGJPPvOBvG0bE4I/5Od8cz32Bylay9mWg PdZtx99T13ugoDugAZcmpYNK7yb1tHYIK7NOw5rxG8wUB83ks+g8m/Cez6vsrZG0ePZy dP6Q== 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=3zirZbU7cbDEYVgySSOwfDDa2FBl7t+5W+i+3uyMLQ4=; b=nEzmB6OUrvJdrpbFC1mF/hziXlsKogUrDcpweWMV3VoyYGnfaabfS7v2N+K8xru0FD CtcsyETrba77u7Mei/sG333TAS5Z6t9jPu3EpI2OypIpu5/qoMMbtrFUqVqOpwL6UriT HeEromAfTEMjBjrIS/Q4vuMZh11jJhLorElGYdWp/x4LCT28Dec1DWkTk2ytBDCdK2l9 uxNSHYka1tmxoBHO/pkFfH9yzCHBDthkXxZurK48yIXoQKOnfR3u5vffO2Y0kiYyA20T bKo202Lb4dZpHH9GXDPZzrgPPZ3OgHZd19VvFr7seZVwvrQzxY11AhnJJWBAd2lO2+9w Ml/w== 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 h1si17356278pld.629.2017.11.27.05.21.04; Mon, 27 Nov 2017 05:21:04 -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 S1752470AbdK0NVC (ORCPT + 28 others); Mon, 27 Nov 2017 08:21:02 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:64383 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751570AbdK0NVA (ORCPT ); Mon, 27 Nov 2017 08:21:00 -0500 Received: from wuerfel.lan ([109.193.157.232]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.145]) with ESMTPA (Nemesis) id 0MC1MO-1eS91r1qDo-008uOH; Mon, 27 Nov 2017 14:20:55 +0100 From: Arnd Bergmann To: Bluecherry Maintainers , Anton Sviridenko , Andrey Utkin , Ismael Luceno , Mauro Carvalho Chehab Cc: y2038@lists.linaro.org, Arnd Bergmann , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] [media] solo6x10: use ktime_get_ts64() for time sync Date: Mon, 27 Nov 2017 14:19:55 +0100 Message-Id: <20171127132027.1734806-3-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:FbTw/8Y9brlcBCI1tpM56+AGBf2vaLj19c24OzcxKAi/ImSqk5H EgrkiIWtuwATl2NplOaNQ4s+UCAEQNFpAfDOUG3CFFxE+5CNAHMg09VKvntiCTsOaEjPsbN ngBES4n6S3nPyIH5tB82lk7Zyjo+o0Z/RzrAAhnCYc/d4isX/c/IlMO7lpbSCuTR9s1zgb1 6ohMlb94Cxbimskgd4g/g== X-UI-Out-Filterresults: notjunk:1; V01:K0:AN3otbxvyvo=:8chms7JmlGDs04j7uUlts/ zDasdAoEIBxWQfh3b83bELpqBaZen4f7GWIG5lodo5jCb7FA4utBwAtljorf9WSgvC21bjEdC BvqHfV5aDm3tipoK2aPlzC8kEkp6NIU5pBG/OfmfmhFOhAxyUb3woo35o7ggXAh0HY7KxSTO1 /zS/xDcYBcxgilQE+T/eX+3ze8Ej/VY8ZNdnm8+/RdyyQLfhpNTV/KoewIjj5Du1sMg+9msoL 5xNenZkQg+tciKkOtQQ0EZ+Iwv+yIxJAVg8WvBrs1JYSM66iWlclq1sqIsYYKecOkhpoBMHZU S8MhVv4NU/9+WO2sdBvCf2JyQcc8+CoES/Q4sOCjFsyZFjvli5Gr5TbH6ZUYn4UdumBaJhp5A BcuyUt4pGrHEEouZAmz2MsihxSLfV57z8F3QK3BACQ3X8H+eK7/z/utFaGKjn5JE1qNg2hrpT fNm2UcbKGHkn5vvQ/Sm2Ok3ZtgrposfWpy5J6P2XOOC8PZlLyOZCRnV5BwIkStPJBki1QSp6p GXWYhn4aHNuxDvNE1uhlEIGOWir+50VV9Mcm5sQ2YIVg5kb7A5vdoYpQsKcA0OJw9ZptJKk4A obORgYSQybG/rA28lUkVbDjA8dNOlU9I89QY6C5ex3pad8uAcQD8phAdpl5eF4HcONcn05H14 2hQ3S+TVVF1xXSJO8l4mTUGrCQK0gD8l+t0eg2SyRYbjbTLG78vplvcJuHZOydiuff/OWRTrY v8hGB6nDlp/AYGx9xhIlWGvp/vYyi5xCuvL8Ng== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org solo6x10 correctly deals with time stamps and will never suffer from overflows, but it uses the deprecated 'struct timespec' type and 'ktime_get_ts()' interface to read the monotonic clock. This changes it to use ktime_get_ts64() instead, so we can eventually remove ktime_get_ts(). Signed-off-by: Arnd Bergmann --- drivers/media/pci/solo6x10/solo6x10-core.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) -- 2.9.0 Signed-off-by: Ismael Luceno diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c index ca0873e47bea..19ffd2ed3cc7 100644 --- a/drivers/media/pci/solo6x10/solo6x10-core.c +++ b/drivers/media/pci/solo6x10/solo6x10-core.c @@ -47,18 +47,19 @@ MODULE_PARM_DESC(full_eeprom, "Allow access to full 128B EEPROM (dangerous)"); static void solo_set_time(struct solo_dev *solo_dev) { - struct timespec ts; + struct timespec64 ts; - ktime_get_ts(&ts); + ktime_get_ts64(&ts); - solo_reg_write(solo_dev, SOLO_TIMER_SEC, ts.tv_sec); - solo_reg_write(solo_dev, SOLO_TIMER_USEC, ts.tv_nsec / NSEC_PER_USEC); + /* no overflow because we use monotonic timestamps */ + solo_reg_write(solo_dev, SOLO_TIMER_SEC, (u32)ts.tv_sec); + solo_reg_write(solo_dev, SOLO_TIMER_USEC, (u32)ts.tv_nsec / NSEC_PER_USEC); } static void solo_timer_sync(struct solo_dev *solo_dev) { u32 sec, usec; - struct timespec ts; + struct timespec64 ts; long diff; if (solo_dev->type != SOLO_DEV_6110) @@ -72,11 +73,11 @@ static void solo_timer_sync(struct solo_dev *solo_dev) sec = solo_reg_read(solo_dev, SOLO_TIMER_SEC); usec = solo_reg_read(solo_dev, SOLO_TIMER_USEC); - ktime_get_ts(&ts); + ktime_get_ts64(&ts); - diff = (long)ts.tv_sec - (long)sec; + diff = (s32)ts.tv_sec - (s32)sec; diff = (diff * 1000000) - + ((long)(ts.tv_nsec / NSEC_PER_USEC) - (long)usec); + + ((s32)(ts.tv_nsec / NSEC_PER_USEC) - (s32)usec); if (diff > 1000 || diff < -1000) { solo_set_time(solo_dev);