From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755514AbcGHOKi (ORCPT ); Fri, 8 Jul 2016 10:10:38 -0400 Received: from down.free-electrons.com ([37.187.137.238]:54913 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755456AbcGHOKZ (ORCPT ); Fri, 8 Jul 2016 10:10:25 -0400 Date: Fri, 8 Jul 2016 16:10:23 +0200 From: Alexandre Belloni To: Mark Salyzyn Cc: linux-kernel@vger.kernel.org, Alessandro Zummo , rtc-linux@googlegroups.com Subject: Re: rtc-palmas: correct for bcd year Message-ID: <20160708141023.GH22202@piout.net> References: <1451508726-31769-1-git-send-email-salyzyn@android.com> <20160104161853.GC32724@piout.net> <568AA1C2.2070407@android.com> <20160105000000.GE32724@piout.net> <568BEA92.2090701@android.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <568BEA92.2090701@android.com> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/01/2016 at 08:08:50 -0800, Mark Salyzyn wrote : > On 01/04/2016 04:00 PM, Alexandre Belloni wrote: > > I'd say that the proper course of action is to refuse to set dates > > before 2000 and after 2100. See > > http://patchwork.ozlabs.org/patch/541037/ > Got it. > > We have an issue though, Android (or rather any embedded) devices must > continue to function when date is manually set to any value between 1970 and > 2037. The issue here is a fresh device with a recently charged battery will > _start_ at 1970 until ntp or cell time/date/locale is set and the device > must continue to function in this vacuum. A device reboot should not result > in the other calendar values being reset, should the year be wrong, as this > will result in a bad user experience. > > We will have to use a different patch on Android than upstream if dates > before 2000 are deprecated. > > All other factors (rollover, leap) can be corrected by frameworks and > runtime since the rtc is generally secondary (ie: first rtc driver was in > 1979, created a daemon to correct the flaws in the hardware clock using a > cron job) > Well, I was still thinking about that issue but while handling properly a gap in the RTC continuity is impossible, it is actually easy to handle an offset in the RTC by using mktime and then offseting the resulting time_t. Of course you'll then need to handle leap years and the likes but you said that was not an issue for you. -- Alexandre Belloni, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com