lkml.org 
[lkml]   [2020]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 143/639] rtc: cmos: ignore bogus century byte
    Date
    From: Eric Wong <e@80x24.org>

    [ Upstream commit 2a4daadd4d3e507138f8937926e6a4df49c6bfdc ]

    Older versions of Libreboot and Coreboot had an invalid value
    (`3' in my case) in the century byte affecting the GM45 in
    the Thinkpad X200. Not everybody's updated their firmwares,
    and Linux <= 4.2 was able to read the RTC without problems,
    so workaround this by ignoring invalid values.

    Fixes: 3c217e51d8a272b9 ("rtc: cmos: century support")

    Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Cc: Sylvain Chouleur <sylvain.chouleur@intel.com>
    Cc: Patrick McDermott <patrick.mcdermott@libiquity.com>
    Cc: linux-rtc@vger.kernel.org
    Signed-off-by: Eric Wong <e@80x24.org>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/rtc/rtc-mc146818-lib.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/rtc/rtc-mc146818-lib.c b/drivers/rtc/rtc-mc146818-lib.c
    index 2f1772a358ca5..18a6f15e313d8 100644
    --- a/drivers/rtc/rtc-mc146818-lib.c
    +++ b/drivers/rtc/rtc-mc146818-lib.c
    @@ -82,7 +82,7 @@ unsigned int mc146818_get_time(struct rtc_time *time)
    time->tm_year += real_year - 72;
    #endif

    - if (century)
    + if (century > 20)
    time->tm_year += (century - 19) * 100;

    /*
    --
    2.20.1


    \
     
     \ /
      Last update: 2022-09-17 16:07    [W:2.178 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site