From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Walleij Subject: Re: [RFC] libgpiod public API reviews needed Date: Mon, 22 Jan 2018 09:21:00 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: Received: from mail-it0-f67.google.com ([209.85.214.67]:34616 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751007AbeAVIVC (ORCPT ); Mon, 22 Jan 2018 03:21:02 -0500 Received: by mail-it0-f67.google.com with SMTP id m11so11114201iti.1 for ; Mon, 22 Jan 2018 00:21:01 -0800 (PST) In-Reply-To: Sender: linux-gpio-owner@vger.kernel.org List-Id: linux-gpio@vger.kernel.org To: Arnd Bergmann Cc: Bartosz Golaszewski , linux-gpio@vger.kernel.org, Andy Shevchenko , Clemens Gruber , Thierry Reding , Peter Rosin , Lars-Peter Clausen On Sun, Jan 21, 2018 at 11:18 PM, Arnd Bergmann wrote: > On Sun, Jan 21, 2018 at 10:30 PM, Bartosz Golaszewski wrote: >> 2018-01-21 16:49 GMT+01:00 Linus Walleij : >>> On Fri, Jan 19, 2018 at 2:28 PM, Bartosz Golaszewski wrote: > >> I was not aware of this, but it seems you're right! Nice catch, thanks. >> >> How about defining a local struct gpiod_timespec with both seconds and >> nanoseconds explicitly defined to uint64_t? > > Where is that timestamp generated? Is this purely a user space interface > with the time read from gettimeofday(), or are we talking about a new > kernel-to-user interface? This is in include/uapi/linux/gpio.h: /** * struct gpioevent_data - The actual event being pushed to userspace * @timestamp: best estimate of time of event occurrence, in nanoseconds * @id: event identifier */ struct gpioevent_data { __u64 timestamp; __u32 id; }; It is the same as is used for IIO. Inside the kernel this ultimately comes from ktime_get_real_ns(); > In a lot of cases, a simple 64-bit nanosecond counter using CLOCK_MONOTONIC > timestamps is the most robust and simple solution. Bartosz also seems to think it is the best so would vote to go for that and we have one problem less. Yours, Linus Walleij