From patchwork Tue Oct 27 20:09:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1388955 X-Patchwork-Delegate: xypron.glpk@gmx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=Mgrg4XC0; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CLN8k2hJSz9sSs for ; Wed, 28 Oct 2020 07:09:33 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D83D3823E3; Tue, 27 Oct 2020 21:09:25 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="Mgrg4XC0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0772E82430; Tue, 27 Oct 2020 21:09:24 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 94DB3823DD for ; Tue, 27 Oct 2020 21:09:21 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1603829360; bh=fb3XnLn1xuYoeWZ2ULkvYBWAslOVq8rFPNmRNhCVJHk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=Mgrg4XC0OfHUOJMCSBP1i3n3VhY8zKrrOKAX76+UkNk2XkHltGRU8ZTpCVUeMk5Ym UHeIyJ9pxqp/Frj7ehP6Yl4eGECk1g0NSiJ9SXBADkEgG7ZWYKCb/pKAYS/GJrKd0M sXmUoWcracrOMO35Z+qcfmIeKOGAwANkhdJeUzKs= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from workstation4.fritz.box ([178.202.41.107]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MiacR-1jvwjn27Ed-00fhZg; Tue, 27 Oct 2020 21:09:20 +0100 From: Heinrich Schuchardt To: Alexander Graf Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH 1/1] efi_loader: daylight saving time Date: Tue, 27 Oct 2020 21:09:10 +0100 Message-Id: <20201027200910.17244-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:ZNr/cRmMYOWf8d0xOgEUnPj/zXryDi8GXGWXM4UKx+80SpsE9FE lpIiCTy12vEBpxwwghpw2jSMQ0cPno3o72rAvV5XUGD6Qmuuel5jz62nI3q4m219Gy2sMfQ Ii2UfuVgW9pGU9E5Iuc57crUk/C8H3H68bfMx+VY1Wbmr/KyFKXpgs4o6y/jUdmMiYUuX6j feIL/e9ltjC5DnUAVVmJQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:uxiCALNbaZo=:pjrt32YcZjFL0dkV/7wZgV 3BZxzAeioBVNM/Doc6Inc7OgnEoQaYOG37hZ7hLXNT1Y8C3qNB1lwB545eFMo7spS33w8w+HJ l+RIdM9gEGinI4SSytr1GHBy1eS7sXmQs2bf/SQIVe1HDO4hCcrqI0+cR8edK50EXr87tqK7z 6AafdZ2Wjcn6/uhtYVepUhBEgM902Kc6VKTy1i7EK9sTQ7HSzzpzZBTG6G9pC5VAxxtp87OLS XdIScWuYwpPX57z4NGBK2zCCopFwogTrAuUbeYfsDqApLZHQnSLYNx1mcPYSxhj2wPWtPXVjr iuAAGs2oO+4lslvkVDeahQfCx+U0TlOLFQQkD5jO5aaOtBAQVsNbH+kWPUv1Our3hH3FX6feI UXex101ll49AYerMaUZrh7bsIqPkNfx9QQf+KTCF+fhZT9sP8mBSgNR3c7DoGaVZrMFZ8DZJQ wwEAo3Uu1vPdwT/y6mUAOVPoCIqBWuhteTDQLuzSNoPRAwWl6ab2u995ghxPA+/4VdrBu4FHY Nv5bLgbKItJZr/lNlKd9E2HIsuRYPnYgcAFPZFE+SBO6mLAlGQvcqyI+eyYfk1LB+ujMKtEdW 5pZ5Oyj+Xuc91uY62hI+lkxEamWigM9Z0BntxxaV3NUuG5us8oz+EM4oP27oj98wIgBEBXrbv 3CKlvcNt6NazMLkAgTCwDf5xxWYR3DZEQnl2bz6HD3x7YQzdU6LnZzV+lkxIT764WOQscoPkr MBHeDCQwhDwUvpy5j7ZLmqWdEZxVTjVsRxlAPf2LJA0kmdcCkzI5Kjow3/vIfyegn8KlNqOUx iA5ZvOcUAsAJXYVEUrL8SfUMFLQXiINMzHKNUzNuTOEj+09n7BW6t7Xu2DPe8/kUSQ7yJ45OC HazbVCb5jUyY9t4QiywQ== X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Adjust the SetTime() and GetTime() runtime services to correctly convert the daylight saving time information when communicating with the RTC. Signed-off-by: Heinrich Schuchardt --- lib/efi_loader/efi_runtime.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) -- 2.28.0 diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index dea2b4e5ee..1fa1595e40 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -266,9 +266,13 @@ static efi_status_t EFIAPI efi_get_time_boottime( time->hour = tm.tm_hour; time->minute = tm.tm_min; time->second = tm.tm_sec; - if (tm.tm_isdst) + if (tm.tm_isdst > 0) time->daylight = EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT; + else if (!tm.tm_isdst) + time->daylight = EFI_TIME_ADJUST_DAYLIGHT; + else + time->daylight = 0; time->timezone = EFI_UNSPECIFIED_TIMEZONE; if (capabilities) { @@ -347,8 +351,17 @@ static efi_status_t EFIAPI efi_set_time_boottime(struct efi_time *time) tm.tm_hour = time->hour; tm.tm_min = time->minute; tm.tm_sec = time->second; - tm.tm_isdst = time->daylight == - (EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT); + switch (time->daylight) { + case EFI_TIME_ADJUST_DAYLIGHT: + tm.tm_isdst = 0; + break; + case EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT: + tm.tm_isdst = 1; + break; + default: + tm.tm_isdst = -1; + break; + } /* Calculate day of week */ rtc_calc_weekday(&tm);