From patchwork Fri Apr 11 12:35:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Mergnat X-Patchwork-Id: 14048348 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 44475C36010 for ; Fri, 11 Apr 2025 12:43:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=jM702IHJZgWY+bz6KCTgaeHyuuKyyx07sXK0MSiTh1k=; b=Ae4kh9moByn3xfSk/0k8Z2TXQj kuD1GLezjL+xPtcM0m8/Po1+waILuw1ZXbmZNMW2uifzoNideaf5XoH4X/CsZcn5dJX7dZd8gBZZn QYAm+dpYobGzrdLGwCpOn5V71Q7DkFu3o5Vrj1yFwzUxzWD2LgKM9H1dewOl2vJ1b1D6MWf3jS6HI MY13SghHE+h+6JacfNnRhDoDGC/xE8xHSq8DuMkeDljqYLt7k4byR4/q+IRMunCoQnqvugwCzCAZz ZV6zvToXy6q6rtHeeL3hweXdKJilcByKDyKS7++eVnXcV0Kjy9p0HMVMMk0CY9J5IALGZAmxKlMYR gynnXGcw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3DjW-0000000DmfM-1QXO; Fri, 11 Apr 2025 12:43:46 +0000 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3DcT-0000000DlE9-154L for linux-arm-kernel@lists.infradead.org; Fri, 11 Apr 2025 12:36:30 +0000 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-736b98acaadso1823049b3a.1 for ; Fri, 11 Apr 2025 05:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1744374988; x=1744979788; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=jM702IHJZgWY+bz6KCTgaeHyuuKyyx07sXK0MSiTh1k=; b=Y5UBk9uTo2gbjABcC6U6Xn99numHPfDC836nOtG6Sr8Jg+7JrL24wpnOdikKLTSBju 2raYsh5LxtYq+47NX0tm3bMW+dv3mqUokBkPIvzYe6o5N8s1dokUlNKd70LrnL8lb3YI k+njEIB9Hi9PrYOYmicEsYOb4fuW5Tb5fGhiMI6Zgi3JBjvSjskNtZHIeNHW2rdh1rt9 pkAJUCKVC/+DkXYEuGJiEQrn47PfEMjq3q0niKuzQ3WFmmlDRT7nEar25+Ug3sPEm/zO 7nGr4gch2qXDXgL4bFJjeFWj0tqRQU85fLGyQQ1N/NlJyG7oBnckXQswOHNni+rP5klr +IOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744374988; x=1744979788; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jM702IHJZgWY+bz6KCTgaeHyuuKyyx07sXK0MSiTh1k=; b=mQIuTRfHCXN5Q8gfgkXAW/mLJualm0gs0Cy7eshk2nvV5PmSg7EKP6tWOpu+7O+9XY ZsZPLp8jPkuHTylfhcj8JShd7+Ce5i2jKXGXswBYUWVUJHRATCDoBwHS3xRuZI0gfxum Z2DPL8gBBgCAR73I7UsrFN6zJzyexLp0lbumga4fG82Z2jwk3JBz4RoflV+xmV5Jg3E2 gkD37X9UDJ1IhTMCthBkJdEL+etm1ivAZ/jPIR/nmauoCtKxnAU6Mg3AjPB3q3x4gmX+ 3TPsDizTiYTT7E30a1xeUt+PICZDixRkYRZWpnExe/NPwmeaMm86dksD/stmgxvCClds c+hg== X-Gm-Message-State: AOJu0YytvUREm0AiCEJdy3c/VgmT2B/y9JiDK71F/KWk+pkcxDDcxvSD dxMSmCF/1w6PXKdMYhHaan1yVKT0EZdBdXvLriPQqZ6Wef227TwB9JgpoSP/SfM= X-Gm-Gg: ASbGncurvJoHnzf8ZztOJMUf6ixpuWRkr8b/h1Zvq1ToBfAk1wqvOlVC8wq43Bd/1zl AQN2fT0CjlXEhk+bYsnOMJA2KowHFs7Hepd0IpUDY1pN3jFWmgK+AM9ujzBaT9QuC7AXRaDR+Ew 9aFoDPe5OatuP3Yxqj4PweMrd+BhFfa1eIR9Z02dGRAAMGTzRlWy3tU3GUieU+4aPDseqlysvoj dwe1a3+AwdEc8o26+UN/5kUsLp57jcDqPzPqYiW0ZtGJwxs6jUvVDFaTfctCbaSh0iubI/mzLT+ k5jEYt0pjDJa7QpocNX2Gq1wlCH1wVMzati5J/oYweo= X-Google-Smtp-Source: AGHT+IHQwIeS61ZHw7ELcaetMk1hxBxZhzt/gB3vL7AAjlG4usbaBhvHS6AeD5lvUMBQjtxiLN9JMg== X-Received: by 2002:a05:6a20:2d0e:b0:1f5:6b36:f574 with SMTP id adf61e73a8af0-201799908cemr4162219637.38.1744374988404; Fri, 11 Apr 2025 05:36:28 -0700 (PDT) Received: from [127.0.1.1] ([2a01:e0a:5ee:79d0:cf9d:bb30:5951:692]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-73bd22f8253sm1408292b3a.93.2025.04.11.05.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 05:36:28 -0700 (PDT) From: Alexandre Mergnat Date: Fri, 11 Apr 2025 14:35:54 +0200 Subject: [PATCH v3 1/5] rtc: mt6359: Add mt6357 support MIME-Version: 1.0 Message-Id: <20250109-enable-rtc-v3-1-f003e8144419@baylibre.com> References: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> In-Reply-To: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> To: Eddie Huang , Sean Wang , Alexandre Belloni , Matthias Brugger , AngeloGioacchino Del Regno , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Alexandre Mergnat X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=888; i=amergnat@baylibre.com; h=from:subject:message-id; bh=kapZgj+SJrEW/7vg45el3XbqPXPyGqqzv8dsBko1XSY=; b=owEBbQKS/ZANAwAKAStGSZ1+MdRFAcsmYgBn+Qy+TYlfRYrK9qBDtMoT67TK2uUDW65YoKt+VK8q GnOGMrmJAjMEAAEKAB0WIQQjG17X8+qqcA5g/osrRkmdfjHURQUCZ/kMvgAKCRArRkmdfjHURR2DD/ 4yLxGKl9OOCFSJeMkLVMWu8AstKcIkMWXfnsYBqGiG0y70mV141mnz9uA1Wc0q0e436oYHlfRwILuj 8vaI3DBOZWPdM/vUXhxbr06wjzwcYlTSrvVEQD9mwFWuVcRma8pnf7iinuqfOQAl0xsdZ4vs/gn2// 5Fxxc8ddmo2NGUZlrxrgFhYrn5FZe7ICGucwwYbHE6aJQVKSCv7ndCXIBFUs6hUZ0ZU9a2tPcmOemT WTVdyPhr+e/DT0LtIPnaqlgRaFEepcVsClWO2gD/TNvOoEakEuhUryURlyDJkApbyRme6GolKf4mCG pOT6Tf1mgbrGy1+NfTixaf58L0ePsfbhAUBXYotRpddCYUzbSTjLrFNmT1fpVzSfUvb4Bt6QzarYJC iiSUZwUappYupYyPDSPVV9jq17rxTtlRmXCEdJEjSBUmjaIt+0D2hPmSoJVwG2vhvSk6I99CJpRkKF IGQiqU9unaNRqaO1LK2nUKL9o5OoWDgs8QzyPglItnNxE3AdyMqLysqQENtPq3zEpQJq6QznOFOS5g D5bVbSKVNMxItR+mw5dlkJ5V5UuIleFlsoTvFThtHRjdfUQ5pFM5Pogs7PR435ybYQp7/MZwKStj2L y23u5rPPoMo2O0aFe0vMVu2TUB37HGnrKMbmKoVXX9l61d7LzZQfDbpfD1Bw== X-Developer-Key: i=amergnat@baylibre.com; a=openpgp; fpr=231B5ED7F3EAAA700E60FE8B2B46499D7E31D445 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250411_053629_303735_3F87F9E7 X-CRM114-Status: GOOD ( 12.50 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The MT6357 PMIC contains the same RTC as MT6358 which allows to add support for it trivially by just complementing the list of compatibles. Signed-off-by: Alexandre Mergnat --- drivers/rtc/rtc-mt6397.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index 6979d225a78e4..692c00ff544b2 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -332,6 +332,7 @@ static const struct mtk_rtc_data mt6397_rtc_data = { static const struct of_device_id mt6397_rtc_of_match[] = { { .compatible = "mediatek,mt6323-rtc", .data = &mt6397_rtc_data }, + { .compatible = "mediatek,mt6357-rtc", .data = &mt6358_rtc_data }, { .compatible = "mediatek,mt6358-rtc", .data = &mt6358_rtc_data }, { .compatible = "mediatek,mt6397-rtc", .data = &mt6397_rtc_data }, { } From patchwork Fri Apr 11 12:35:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Mergnat X-Patchwork-Id: 14048349 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C173CC369A8 for ; Fri, 11 Apr 2025 12:45:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3IG4g6G6O5d0C+h1ORyM98qH6q+iKpuRjuLFaymrvAM=; b=ysz4hEwzJeKpxEa1Xubhb8TfM4 hhDsycFLmTi1xL71gJJmkXdIEyWe28x+K2DJbIYgD5IdbBIGgzF6B3RrNbXkiLdzKfqVPVXFP/KAQ 4Blh94xVfy4CFO/adCsoCLHckkYDBulZpTptvD3aD3KEHzGMZO0dxhCqfm9qvecPeglFBUpmEmNjc A5nhHY/N0q+IwyenAeNH4q4PiotDQC7VHbCObR4SlXnzMQgZNA8TE6gqrEV03X0GXSyOLkeqwsygo VWCfBmeBSofsYS1hl/k9zd7t5ACLZ0nKscVB1AO5MniIcIYO45K/29nbhqFN79fEPNH+XcRAQwTe9 1Zmi5CCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3DlI-0000000Dn2B-2i6Z; Fri, 11 Apr 2025 12:45:36 +0000 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3Dca-0000000DlHH-3cik for linux-arm-kernel@lists.infradead.org; Fri, 11 Apr 2025 12:36:38 +0000 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-7394945d37eso1687632b3a.3 for ; Fri, 11 Apr 2025 05:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1744374996; x=1744979796; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3IG4g6G6O5d0C+h1ORyM98qH6q+iKpuRjuLFaymrvAM=; b=yTDRvz0CQlrN/NyReUXdbnAVxw1Y6IYle+vUY/wI74TqFyUnmZUGxG40IjE8CYsp9E XfiofXHSP3GoykiCqjY3mPYluV8QFFXa3mpu8Rja+CYqBQFKducUSppQKHPIvDzGgi86 ARucjeXMkMVGmjL8olCCj8syh2bZyj9zDfmoLITk89uF/FK6zHe/5xxl0bbv0Z6PogPy BAEMb7CGw2gnqERcAeWEMYbM75LHrU83XKaXeN2nRkN2o4G5/4n/wfCI4IioKV5lFYpg Mk3Eq3VWtsZ5PM1DLpjyff95Tjo9J/rxifzlRqYVyJCzvAtQonxCB3mAjvaOW0kH2jRa 6L0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744374996; x=1744979796; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3IG4g6G6O5d0C+h1ORyM98qH6q+iKpuRjuLFaymrvAM=; b=DsesNbJPnDEri3rV6ecm68bcuNi5pK5aWBqDYiXNlyGtnJOXfan8z0fi4fBL0uOs+W AXxRzA43+IMEYN3qWvACBnKVvVGtospZXpZAAPTq3P1W9cNrmretRBXnnlSrfZH9+GwA +k5Jj61DiLCjYjYp7JLp/Kt/QeOvaN6stcPKqHySEObTbc+++x5HN+HrWCPP49SMP4MI 9TGDqP3io265y3muOON+FleHne4AkcowHHSUzC4x8eaTuQ+FBBnX4RnBqaYmQ7e5ZuWf A+Kbc2nGjwSHG7ywwR1YitZZaSGJtZ1JAlSaKVPIQTt41KpSg2V5QsEUgsU5pFsq08uG yZdg== X-Gm-Message-State: AOJu0Ywlj3LU0aUqgM+Rd5Hyw55Ybu9cX4FSAJGHNcrt0dXaHEyavdLx Z7tpS50n1sk/FuRd6kEFaXYo8BaWfKecBLhVvIdDL2AOVwvWX5JkTXJtsbtttpQ= X-Gm-Gg: ASbGncsEsvmAUc62f5CQuosm/HdtMdPpC8ji01GB6bKBIkJxgLAf3a0dxu22l9HV9t9 j9WnPeCklGbC2aqZiagK93VthupimPDOjH/3vWksA16WoxpX7yRITxvlQGw19lzFwDJQnMkxsH7 AXymbmk8AloEG9qMDsR+bnfJvaalj0N2BZEbpsff/Yjqcjs/h3uhDisHUF/ZN1ndiyNvQ9XBFsa eacBrMoxCSLWMS0C5iflqCm3G2WnxhvtEy8kLcyvQ52m1BRefxWcQf/tPn8SH251HsPiD/M8G59 X1P4BwKOsAPEiCfXFxU7PpFW10GBxBzyZKxyPkP8X9M= X-Google-Smtp-Source: AGHT+IFsg0ZCckIXxc+IHljq9KDD7/UlDwl63B9XFgkbLhB3RqdDeYk2J9Ou9a3sdf+9kaQpQwYZGg== X-Received: by 2002:a05:6a20:6f06:b0:1f5:8622:5ecb with SMTP id adf61e73a8af0-2017996f524mr5486935637.34.1744374995986; Fri, 11 Apr 2025 05:36:35 -0700 (PDT) Received: from [127.0.1.1] ([2a01:e0a:5ee:79d0:cf9d:bb30:5951:692]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-73bd22f8253sm1408292b3a.93.2025.04.11.05.36.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 05:36:35 -0700 (PDT) From: Alexandre Mergnat Date: Fri, 11 Apr 2025 14:35:55 +0200 Subject: [PATCH v3 2/5] rtc: Add handling of pre-1970 dates in time conversion functions MIME-Version: 1.0 Message-Id: <20250109-enable-rtc-v3-2-f003e8144419@baylibre.com> References: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> In-Reply-To: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> To: Eddie Huang , Sean Wang , Alexandre Belloni , Matthias Brugger , AngeloGioacchino Del Regno , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Alexandre Mergnat X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3599; i=amergnat@baylibre.com; h=from:subject:message-id; bh=tyu764S29y/vhFyNtYKo1iTVWCgv8kwvcYIcevIAdQU=; b=owEBbQKS/ZANAwAKAStGSZ1+MdRFAcsmYgBn+Qy+3CiQcNMagXuWDXp22y2fLo6SR/giORhsb2jL j0l2Rq+JAjMEAAEKAB0WIQQjG17X8+qqcA5g/osrRkmdfjHURQUCZ/kMvgAKCRArRkmdfjHURTB5D/ oD+VRGtB9vanDklEZ0FOkM4AmBfEcomkMxEDgrwUagbw2dNBqsBDibhbpl+Sfv8LRErcT0R2SZFxrp RtKYr6GJex551wXHt1dKOuzkiwjjkQGGjkiMz+TiZl8EIkrta/RocTjEfge7N4L6OoD5NaFKz55+jX DvEoKYEFAoRThw2/D2suWlaWpSHLdghBIsl/klG9QtRORclyp3HujfG0tvxr6jVmK/QGyQoCwf+LqW pdAFz9vCGnFBX2sPbt3LKO3Gz8EctYNidjvItdLLiGh35/l+eicEv+l5H/9C/Cxp16Uhbuv4M6M72k V+SnyE6EBtp/M17/nXlLAFGA2FhGXsyTJI1JKiICr9trYFGVONewVdRMfBAAx/LNpVs8Iyhyq6AlUE fptqtoE5GZ5yngSLsMZxYzyPKrfq0Jn1O71MWTQ/oxB/B0YrrAxAaMyzgT0qni9cNCFO6PBHxhyxJ9 3PH3bSZZUTYQLp2hq1tAFWNPWVtTRmareCUcNJ5ICuMxF0cyNOeiR0klJxiUOvVNiob/78WIIkHE77 PDAMkXx5z0Dscs7Vq0qwJflmgG9ccXA8U7czRYuErgYMYtVQYDhMJ6a53gbeMumYFwlK1Z1KGHV+pP KLlRSR1FEgbNLnKO2j53929m8ZuE3EPJHDvWf+VXU1F/cbUYSk27vJnWk4xA== X-Developer-Key: i=amergnat@baylibre.com; a=openpgp; fpr=231B5ED7F3EAAA700E60FE8B2B46499D7E31D445 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250411_053636_910661_526A3299 X-CRM114-Status: GOOD ( 20.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Linux RTC subsystem's time conversion functions couldn't properly handle dates before January 1, 1970 (negative time64_t values). This affected offset calculations, causing incorrect time translations for RTCs with pre-1970 base years like those using a 1900 epoch. The original rtc_time64_to_tm() function produced incorrect dates for pre-1970 inputs and rtc_valid_tm() rejected all years before 1970 as invalid, even if they were within the hardware's capabilities. For example, converting January 1, 1942 2:36:47 is equal to -883603393. converting it back resulted in wildly incorrect values => January 2, 1942 1193025:5:3. These issues made it impossible to correctly use RTCs with pre-1970 base years, particularly affecting embedded systems using hardware like the MT6357 RTC. Modify rtc_time64_to_tm to implement special handling for negative time values, properly calculating days and seconds for dates before 1970. It also removes the tm_year < 70 restriction in rtc_valid_tm to allow pre-1970 dates to be validated correctly, ensuring accurate conversion between hardware and system time across the full range of RTC hardware capabilities. Signed-off-by: Alexandre Mergnat --- drivers/rtc/lib.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/drivers/rtc/lib.c b/drivers/rtc/lib.c index fe361652727a3..2014a86499e02 100644 --- a/drivers/rtc/lib.c +++ b/drivers/rtc/lib.c @@ -46,7 +46,6 @@ EXPORT_SYMBOL(rtc_year_days); * rtc_time64_to_tm - converts time64_t to rtc_time. * * @time: The number of seconds since 01-01-1970 00:00:00. - * (Must be positive.) * @tm: Pointer to the struct rtc_time. */ void rtc_time64_to_tm(time64_t time, struct rtc_time *tm) @@ -59,11 +58,39 @@ void rtc_time64_to_tm(time64_t time, struct rtc_time *tm) day_of_year, month, day; bool is_Jan_or_Feb, is_leap_year; - /* time must be positive */ - days = div_s64_rem(time, 86400, &secs); + bool is_negative = false; + + /* Handle negative time values (dates before 1970-01-01) */ + if (time < 0) { + /* Store that we had a negative value */ + is_negative = true; + + /* Convert to positive value for the algorithm, but + * we'll subtract one more day to handle the boundary correctly + */ + time = -time; + + /* Get days and seconds */ + days = div_s64_rem(time, 86400, &secs); + + /* If we have seconds, we need to adjust to the previous day */ + if (secs > 0) { + days += 1; + secs = 86400 - secs; + } + + /* Make days negative again */ + days = -days; + } else { + /* Positive time value - normal case */ + days = div_s64_rem(time, 86400, &secs); + } /* day of the week, 1970-01-01 was a Thursday */ tm->tm_wday = (days + 4) % 7; + /* Ensure tm_wday is always positive */ + if (tm->tm_wday < 0) + tm->tm_wday += 7; /* * The following algorithm is, basically, Proposition 6.3 of Neri @@ -93,7 +120,7 @@ void rtc_time64_to_tm(time64_t time, struct rtc_time *tm) * thus, is slightly different from [1]. */ - udays = ((u32) days) + 719468; + udays = days + 719468; u32tmp = 4 * udays + 3; century = u32tmp / 146097; @@ -146,8 +173,7 @@ EXPORT_SYMBOL(rtc_time64_to_tm); */ int rtc_valid_tm(struct rtc_time *tm) { - if (tm->tm_year < 70 || - tm->tm_year > (INT_MAX - 1900) || + if (tm->tm_year > (INT_MAX - 1900) || ((unsigned int)tm->tm_mon) >= 12 || tm->tm_mday < 1 || tm->tm_mday > rtc_month_days(tm->tm_mon, From patchwork Fri Apr 11 12:35:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Mergnat X-Patchwork-Id: 14048355 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A4D33C36010 for ; Fri, 11 Apr 2025 12:49:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wWvOtZ2Ij96tOi1o1hUr0b9qGVWu80vcBedKzsseg9k=; b=Dpxx0CyWgKcamZ5w98JgZZkZUl a+q2HNFC2SXZVEeBCZBfG1HihSYyH06Y04Thik68RCzFJXqbrYNZOckSNgI3JQziqNxqEzT4YYrS5 IR/RNq82GFIkkfN104XgfKDNoAsRFTNsMQ8ma8V0kdXy7upRCkbY6D6C02h0uIHim5C0VFWUBGP8o S5CP4RYB/rLfwqojxa8CEzh/Lmqt/IahbcPzBPPVK63MNXuiXsWMQv0bzpBB6JFNGCtbgLhPodZJ8 SVlkzTwgy+DaU/MkU7VfFf64RSnLyouWYgSSWmzOec+yNG1b5jbVwdfS5l/0I3/ohdGP9pG9YD0Wt ndtcevpg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3Dos-0000000DnnG-0EgT; Fri, 11 Apr 2025 12:49:18 +0000 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3Dci-0000000DlK2-0mpM for linux-arm-kernel@lists.infradead.org; Fri, 11 Apr 2025 12:36:45 +0000 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-7376dd56f8fso2302492b3a.2 for ; Fri, 11 Apr 2025 05:36:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1744375003; x=1744979803; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wWvOtZ2Ij96tOi1o1hUr0b9qGVWu80vcBedKzsseg9k=; b=LYvELdZRx+CbQ3JrBI9MemKZM2o7zFC/fPg5ql6jtXpEdLLYW4VtBy2wpMRHHlWEJ6 KXhxhgy9CEhOn+AJuOglnpVaKrzsTH4lChcX5EmE4cegRRHfEpVdYWc3+m55wWEuAF1E mf8i2pdQvwFda2d48Lx86Tr6+3AdWt54cDSFeZ3gnraXB1YTJjRCezHwykCaDtiBRYOt kzMXWogINdabQ3Ye0r2ERHZqj9yUyK+7txbzt3aLB50+WPBeMAop82kUcJLNV9aeIYxl ya0XN9NjuBI+wVeMwm1b7JRlku5xEHUo4YHagoWOP5cTKSV9dfIZQ0MMlB4azILE11tt SwUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744375003; x=1744979803; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wWvOtZ2Ij96tOi1o1hUr0b9qGVWu80vcBedKzsseg9k=; b=wb7VfWmBIrUmEViUt+42FIsYTbreaJe3DQBphwWTYTLuDQxiTZdEng9aY729cLfWGj jUJWya4XGzFF4b/4aKsxbLl+MBX5GabsDoK4NO1PWh0KGvPaN3MsVr4VX9Ym1AwaOl1o C2khBNYD7NESaEkIeSJxe4DVtIx2EjDhbiOS/55DmmWBndZKLgbVw0X2YxQSCOKCpQoL R2uMKC/uTCV0EXaV5layzOYEyyHAVVHnjthdd3FqgWBLjBdqQd8Bi7SEUSMlPRs2uZ1D czYyQIakckB2+uWP3MJNAyBCSfurnV8h2GqL4K+Nt+kU8nmy/eRxfzqp9iyvaQSaLAhY Xnkg== X-Gm-Message-State: AOJu0YzK6Ic9ADL56ftGN5BPvXGqBAzbRSoE/dJQxm6SBRZPk4iqw6x8 OUtAhA9sa+9Jmng4XvcSgPHBuRKtfIhSJQQaJuluyLxvPHl4BhjAo6Uf5BqVhrM= X-Gm-Gg: ASbGnct6BzcxcPML7ThF2CXwzUaGRc0elnqgxbJ8UHCphW3zhPl6aMkrFdRpidIJdy+ kkh15ieEir0tBPeODQ2+CpvzJKd6NK/er6cjz3OxFvAI/pL+4bQqNZr69iprcp1JEJ6PTDUzdjb QvZzGaZJ4jPHrwTNtyjgTpe+ArJI5IAvBd9lOWbRFNmQ1cLZ0ieliFWw/6dViqwftcBoLMQlMEr MzFeZggPZHg801HhXEmaFPAGBtxR1wU9wONTabvLnAePzjPl9QK0GC9bAo77HVNRvstRQA5gvZJ ECaqjzXiTuE/8QcEM9t0i1freY2IQ/SCOaCx3pE4Cns= X-Google-Smtp-Source: AGHT+IHHr6PfcniD19K70c7n3k5QYjLiwj66+qa8B+xXfSPCuWN5/YZWkukIqVWOva+qdLyKiB11mg== X-Received: by 2002:a05:6a00:3908:b0:736:5822:74b4 with SMTP id d2e1a72fcca58-73bd129c6d1mr3275598b3a.21.1744375003638; Fri, 11 Apr 2025 05:36:43 -0700 (PDT) Received: from [127.0.1.1] ([2a01:e0a:5ee:79d0:cf9d:bb30:5951:692]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-73bd22f8253sm1408292b3a.93.2025.04.11.05.36.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 05:36:43 -0700 (PDT) From: Alexandre Mergnat Date: Fri, 11 Apr 2025 14:35:56 +0200 Subject: [PATCH v3 3/5] rtc: Fix the RTC time comparison issues adding cast MIME-Version: 1.0 Message-Id: <20250109-enable-rtc-v3-3-f003e8144419@baylibre.com> References: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> In-Reply-To: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> To: Eddie Huang , Sean Wang , Alexandre Belloni , Matthias Brugger , AngeloGioacchino Del Regno , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Alexandre Mergnat X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3840; i=amergnat@baylibre.com; h=from:subject:message-id; bh=vGUfgBYd/nqdiWhakMrxzcEEIqB0t/sqp/diq7LMGlc=; b=owEBbQKS/ZANAwAKAStGSZ1+MdRFAcsmYgBn+Qy+G925gTSnI2f/g5RRp1mmiZxGxczjO4K3kNYm 9g+lrSyJAjMEAAEKAB0WIQQjG17X8+qqcA5g/osrRkmdfjHURQUCZ/kMvgAKCRArRkmdfjHURcl9D/ wP0ww2kkK7+Wdz6lCWG8tR0wOKrrvr2qjTu4xuKN9SRbZGSWhA9QmDb/dWzu4/0eAm8sl3qJMEk5Yk 72cNB66JOZpwVfgY4Xp+ppUa5CNpHWBGe3QOQegRAvq9iSOBZ0Befi0rR5kfl788zp72w+3x1VXO7E R1BFLx8c2FhBePEp0TmhPL/thzoVTQhUv/11ONiQwlSewTu3UTlymMfTRZ8D6pSsM3pfNhSLzDLCh1 yybqickSMBVYd4qqOnp08M4WsDnTHYsFYb51RyUczq3CSXrZ7Tw3/8rnGoaMFfRoe+9a2GaVNfcena LCt1tD6kBkx31OUdTCgi2xU4TbUkN0KBgcGLu8G6MH2r4Zj/Ul3Dd8BAHPtQdYc1qL86ylvzmkLCT+ XZ04Bh+xraV8u4h7iUkZAoDEn12HInoSfG5xk2AIlsUP6jWf5w1VGcBHbwuBvVfUQr4IF3WsZNJb5p +iS8HHZgWKGNJaC7hsERyf63bEwLaYX/v9yCj9JsPBJ8kN+CnJ9QvKUqS39GqOS0fNyH34jfvnBUSv eX9nVxrWHyd4x5cifMm5s4lhMt2iZinXa7klv9V8rXsvW5aXOUmt9iBd0RF3YBmxDj+xcv5XUVKG6H MPHZrxIA9oPg2KHF1+4pye8NG1q1tx7stersv89cat7tXtLmaMbi2Fs7UNbQ== X-Developer-Key: i=amergnat@baylibre.com; a=openpgp; fpr=231B5ED7F3EAAA700E60FE8B2B46499D7E31D445 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250411_053644_233694_9C571A20 X-CRM114-Status: GOOD ( 19.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The RTC subsystem was experiencing comparison issues between signed and unsigned time values. When comparing time64_t variables (signed) with potentially unsigned range values, incorrect results could occur leading to runtime errors. Adds explicit type casts to time64_t for critical RTC time comparisons in both class.c and interface.c files. The changes ensure proper handling of negative time values during range validation and offset calculations, particularly when dealing with timestamps before 1970. The previous implementation might incorrectly interpret negative values as extremely large positive values, causing unexpected behavior in the RTC hardware abstraction logic. Signed-off-by: Alexandre Mergnat --- drivers/rtc/class.c | 6 +++--- drivers/rtc/interface.c | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index e31fa0ad127e9..1ee3f609f92ea 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -282,7 +282,7 @@ static void rtc_device_get_offset(struct rtc_device *rtc) * then we can not expand the RTC range by adding or subtracting one * offset. */ - if (rtc->range_min == rtc->range_max) + if (rtc->range_min == (time64_t)rtc->range_max) return; ret = device_property_read_u32(rtc->dev.parent, "start-year", @@ -299,7 +299,7 @@ static void rtc_device_get_offset(struct rtc_device *rtc) if (!rtc->set_start_time) return; - range_secs = rtc->range_max - rtc->range_min + 1; + range_secs = (time64_t)rtc->range_max - rtc->range_min + 1; /* * If the start_secs is larger than the maximum seconds (rtc->range_max) @@ -327,7 +327,7 @@ static void rtc_device_get_offset(struct rtc_device *rtc) * * Otherwise the offset seconds should be 0. */ - if (rtc->start_secs > rtc->range_max || + if (rtc->start_secs > (time64_t)rtc->range_max || rtc->start_secs + range_secs - 1 < rtc->range_min) rtc->offset_secs = rtc->start_secs - rtc->range_min; else if (rtc->start_secs > rtc->range_min) diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index aaf76406cd7d7..93bdf06807f23 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -37,7 +37,7 @@ static void rtc_add_offset(struct rtc_device *rtc, struct rtc_time *tm) */ if ((rtc->start_secs > rtc->range_min && secs >= rtc->start_secs) || (rtc->start_secs < rtc->range_min && - secs <= (rtc->start_secs + rtc->range_max - rtc->range_min))) + secs <= (time64_t)(rtc->start_secs + rtc->range_max - rtc->range_min))) return; rtc_time64_to_tm(secs + rtc->offset_secs, tm); @@ -58,7 +58,7 @@ static void rtc_subtract_offset(struct rtc_device *rtc, struct rtc_time *tm) * device. Otherwise we need to subtract the offset to make the time * values are valid for RTC hardware device. */ - if (secs >= rtc->range_min && secs <= rtc->range_max) + if (secs >= rtc->range_min && secs <= (time64_t)rtc->range_max) return; rtc_time64_to_tm(secs - rtc->offset_secs, tm); @@ -66,7 +66,7 @@ static void rtc_subtract_offset(struct rtc_device *rtc, struct rtc_time *tm) static int rtc_valid_range(struct rtc_device *rtc, struct rtc_time *tm) { - if (rtc->range_min != rtc->range_max) { + if (rtc->range_min != (time64_t)rtc->range_max) { time64_t time = rtc_tm_to_time64(tm); time64_t range_min = rtc->set_start_time ? rtc->start_secs : rtc->range_min; @@ -74,7 +74,7 @@ static int rtc_valid_range(struct rtc_device *rtc, struct rtc_time *tm) (rtc->start_secs + rtc->range_max - rtc->range_min) : rtc->range_max; - if (time < range_min || time > range_max) + if (time < range_min || time > (time64_t)range_max) return -ERANGE; } From patchwork Fri Apr 11 12:35:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Mergnat X-Patchwork-Id: 14048356 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D3FB6C36010 for ; Fri, 11 Apr 2025 12:51:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wSHsj9E7pEVKPo/XiZbiTbb5aejzBmBA8Mzu2UJ7TSE=; b=Wznoams3HdONum6636S+l4im0H dz1hdN2xqzvlrrdvcrPzZfstBLBT3m/geabuWKog4rdd18EU+E2tMUXR8tIr8XohjCPpVg8WgOYF4 /dpKYNA4bD17D4Ee7QXZC6yBlw6GZjLHrl4N/p3EtKulalCtPWPTNVAnIPRqJV6kKI9yEG4xJq8A5 /ViPNaG9iu/drueDpKGVuf2ylO9lCULHPBMzw1w1OiaFEMgUHu/6QEDoJWR8tbB06ClGj2oqPPEeE 2Z+9m5Mj5HbNT+uLZCAMlxSdqpCFcYfxQj28KBVBGOsxZiOHeHouhGHjTWlInspUwOwwhF1JE9NYQ pvNkylfA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3Dqe-0000000DoCZ-3Ll5; Fri, 11 Apr 2025 12:51:08 +0000 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3Dcp-0000000DlMA-3nVv for linux-arm-kernel@lists.infradead.org; Fri, 11 Apr 2025 12:36:53 +0000 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-736c3e7b390so1731978b3a.2 for ; Fri, 11 Apr 2025 05:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1744375011; x=1744979811; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wSHsj9E7pEVKPo/XiZbiTbb5aejzBmBA8Mzu2UJ7TSE=; b=L7Nx/iDXo3FHL+oEA7JVlfYdjRvNYWBccVqgq6GIDF+fwZ+WcIvOU8q4vGBAXxo7xk ZjuiRXPj82AHFAwzSgGXglMAOO8kCdUNLUs07g5/FN4nDc5/IIkFHWCI1nkvpZhHA7d4 I38uw5u0jEqzplBRiNZQbZxpCrDf64dDq/s4WRn3vAR25bAv8h3YYHKmJT5AvPmdzlQh VEVlkSZ5QXjzfpmuvsqvZz9st7JzI8lU6RROY/GzF+b88TY/L00DglTyB24p2cSbBMch gumFYPXRn4YfVQrDy7Ixw65gu6PnljrDTLgHjo7jOUla1ZvPpi2uYB7Py+grvI0eocOk uhQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744375011; x=1744979811; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wSHsj9E7pEVKPo/XiZbiTbb5aejzBmBA8Mzu2UJ7TSE=; b=lv/ab1l6ahqN3nb+JyO0HsmZis1m13/l2HRDLpW6djBKUIg/ujsaXFKx1gtppGAWCa izuPxzqJAiCmCLuBW8iK5S3LMFH7x0rbK+bz9WyjQS7uCQS60rlhFwrq6GvHty1nfZlv E6kEkjDnKCy1XvFYXXLAEg0Tc1/vSaMVj2L3IpzTTnz/7trFySIm98DPnDFcxtK5N73R yuXHSAMxh8O251gDsNdvKRhRHl+Y51Pc2XhWxj/7845yj5wjD2jhLlWRELItIre4BlTq +jFTeMJ+2QtNfrP6GlB80nXOiJ2PjV0FyBGjRxnlVaqc6Eb1zm3LFZH/QgwRFClz6FO+ mOgQ== X-Gm-Message-State: AOJu0YwmuF/gHR2c3Pg0YVTq0mii+rXqsu1Rlx1mhYL6C2Z7sINsGkWe 9FptXlN3jEhvRO8SRKtdD1DD+WnbGM4S0NldzojqGGG11ptXSkFPb+vlDvb4ZzU= X-Gm-Gg: ASbGncvBHiuv4kdV44jKtxWJ6AjOz51oVQxNk2yNNELf/DZwHO2H4hs0zqmEMKKDCMk FgGD+d0k3S+Gy6+e/XKuFToTm7IC3/9dWVYpNWXgUL8tDgLCeDgSrS3t5cTgq3tOt9J3gw+vyBO 2G2bIXXUJfuoyzlUMu/af28Wb2esILdpdPqI6x5bnBgQMszXAJ5glicJ4Uo4Rx9BsPXLz4a6QnW wCiWqbnrsLLty4bVZKudCf8m7BA4AaNza4pK26nq1fbhwSiWi8ZRgtSpNaHq9Rs2cht985Glah2 s166GAKtuLyxS0Fr9n9/TO3LRIURJG+Xz+4fEi2PeqI= X-Google-Smtp-Source: AGHT+IFfX3ot/L43d0QBZxG633pc/hZyXtl8UpByDyVjAeqVDIhCDU73ulTwgr/AGiuYBQtmE0nzNw== X-Received: by 2002:aa7:8895:0:b0:736:3d7c:2368 with SMTP id d2e1a72fcca58-73bd11dc695mr3255714b3a.7.1744375010978; Fri, 11 Apr 2025 05:36:50 -0700 (PDT) Received: from [127.0.1.1] ([2a01:e0a:5ee:79d0:cf9d:bb30:5951:692]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-73bd22f8253sm1408292b3a.93.2025.04.11.05.36.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 05:36:50 -0700 (PDT) From: Alexandre Mergnat Date: Fri, 11 Apr 2025 14:35:57 +0200 Subject: [PATCH v3 4/5] rtc: mt6397: Remove start time parameters MIME-Version: 1.0 Message-Id: <20250109-enable-rtc-v3-4-f003e8144419@baylibre.com> References: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> In-Reply-To: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> To: Eddie Huang , Sean Wang , Alexandre Belloni , Matthias Brugger , AngeloGioacchino Del Regno , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Alexandre Mergnat X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1012; i=amergnat@baylibre.com; h=from:subject:message-id; bh=trGJ+81hvgNk61JAyUi09epqF3tLwjd5H58jiE8ssKI=; b=owEBbQKS/ZANAwAKAStGSZ1+MdRFAcsmYgBn+Qy+LNjqc2TQncoR/fu21kLb3B4nDnpKBpYpF3u7 K+vKNHeJAjMEAAEKAB0WIQQjG17X8+qqcA5g/osrRkmdfjHURQUCZ/kMvgAKCRArRkmdfjHURUBLEA CAC42jhzXF95nwzYaBzqk8pqi2wLrVXoH4PBA0deKY2gEdZoIl9sAOEFMAke8ktBZFrY8zyD3Iilcs oByCGpN9m/wQ5S2Ih3Us5gmmwCkWz1CcqvUeMk6aOzqC6tnV+SUW/WHutDoEzQrS+Y3hbbq8SCf628 TxVPv8tc1AaQc1RRi29L97urd+zi8P2/ucYydlvR0VnVd5BEd9ve7obWrjiwfWA22tckQTsOCO2sAB z+j+DbUM3nWqNIVBRj+hlyQOkgxl2NMLlZYfY4uSdJjl42PBffIMp2plpK2m2DZwO2b9LqYtEu33Xv qKE/nKDGQK3kUPIQqDkgZpXsg8YdsCSkn09ne3NOpGaw4S8q306wT4gViU2OyQbq2jDy/+5X3WyH6r bswFi1Fwgg1sefTSK+B7S/NhI8rhjGYcRxNj7YvLRwGEu2bzNW8KwkcQWYjlF5FAo7lfeuIizrxfqA OLV8tKAgl8ncXWKuHgzKKtYqaJzfA2aJXrD6yK5u3U9aNlVe5qbOd3r10sFURDisAhtuCm7fURJqHx JC+aHpfgCVZUB/fiWVkYOXBkyeKLsx++ZOoMa2Wi8/mg1CSRWFX0MERFX6a/9stWB7mb3L0L4McAod KlRc9GKCciMymJ4QFkvBsy0p0HLsmyvqgdUvtv0sgoLe96aZBCXhM1PiaHFQ== X-Developer-Key: i=amergnat@baylibre.com; a=openpgp; fpr=231B5ED7F3EAAA700E60FE8B2B46499D7E31D445 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250411_053651_950241_4F65040D X-CRM114-Status: GOOD ( 12.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The start time parameters is currently hardcoded to the driver, but it may not fit with all equivalent RTC that driver is able to support. Remove the start_secs and set_start_time value setup because it will be handled by the rtc_device_get_offset function using the start-year DTS property. Signed-off-by: Alexandre Mergnat --- drivers/rtc/rtc-mt6397.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index 692c00ff544b2..d47626d47602f 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -291,8 +291,6 @@ static int mtk_rtc_probe(struct platform_device *pdev) rtc->rtc_dev->ops = &mtk_rtc_ops; rtc->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_1900; rtc->rtc_dev->range_max = mktime64(2027, 12, 31, 23, 59, 59); - rtc->rtc_dev->start_secs = mktime64(1968, 1, 2, 0, 0, 0); - rtc->rtc_dev->set_start_time = true; return devm_rtc_register_device(rtc->rtc_dev); } From patchwork Fri Apr 11 12:35:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Mergnat X-Patchwork-Id: 14048360 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 40ACCC36010 for ; Fri, 11 Apr 2025 12:53:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=uPJqCmoSsx1GevRwEqwTz+KiO5ldodlroUJvFu2/V3o=; b=JsCDCq69DG+VRaWu1/BtNAybrn C+6CP84hANyLagnQHP+wVM/MUNLNSlMP1B9FTt0NCw2pt81Rex9oCV2MjQxSn64GGgMx45PkQsaxr PAsnBhXTfYYTpWHc8S4fJsp+b8EHedT4syxpppJSxOsEa1PZJ2Dr3DdEQB1VirHh7k6fDX9niBwYy GjJQY5AbEmwWJl0zfzMqXFCJIAkBAZCOV7NPwpw8BcBOt0qSM2L+A0HWKhi20Ta5237OmHKEEZwNw vSIm7bWxkgUR/M1syHTs96Az6xOiM35ajb3Lk3Xs7cYLDHEDmVYQ+tmgGSZ9fsWljKjUK3w9B17Ys 2ev7yaFA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3DsS-0000000DoVy-0XDn; Fri, 11 Apr 2025 12:53:00 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u3Dcw-0000000DlNI-3cg9 for linux-arm-kernel@lists.infradead.org; Fri, 11 Apr 2025 12:37:00 +0000 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-227d6b530d8so18940235ad.3 for ; Fri, 11 Apr 2025 05:36:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1744375018; x=1744979818; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uPJqCmoSsx1GevRwEqwTz+KiO5ldodlroUJvFu2/V3o=; b=l+uyAgl6JEJrFYnK5rESPGbApZtv+6J+rx5pA6va9z4oxJvhB6EaBH1DE6O5hidGra 71+V96el+fz/R1JBxguvW1nP2bvvFLnwPNcigOcsvYdRYhypjioQNulQ3EqwrJkt5Djw QD5nT/NBYOxX6LpngjQRSTV7Uu0G4sN7IfJ1j6kd5XWKxVK+CKaZG+u18xnxmpMy+2nt SR9v2wWA8KJ/dTFOIiobmAxVTV/SRvlLkgQDjLFz9YvRUaEqwwQgS77sXgRewM/br4Vt ZNUU+vsMIS4aUosCXPnps+WIm+n4+x3iaSUr4FKbpCZBXMlCPzeeg2igRMCJmoB/U7uq WX9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744375018; x=1744979818; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uPJqCmoSsx1GevRwEqwTz+KiO5ldodlroUJvFu2/V3o=; b=LimnDq8xOBENL6Dp/jIkti252x+156hnAKIZ4boo7xSDsZ21KiuXq3ZkV8hlwvg29c 6a0lknD5rVSx/uyBuOL46peieIr4dqQgFa2rraPkFRIi7GNLlc012CNFFS0TWBuaLUzh 9RI4IiyiWoykmMpCj4Uf7Xgosm8O00M8YiRZEd18UyHKrNW/BCYJjoonKvbqndXQjbrh SbyuP/7EGqwWtGe+fGO6wWceiY69p1D86GowA7CmcO9FW2uUEmtT43zDXk9/bnDxUmop BrdlGaz/18f2MdPnGCNGXwxY8FAev/nZUGqMXb37PoAYetVaD+WxImSB45pG7UufKgih ZXcQ== X-Gm-Message-State: AOJu0YxWPkLPQITWaD/emQ+Spp5Sxnh3Y51A2WauC9r4AwkeRnge9I4o 9+1oETt0LHSWE4hZXtRm4tbBemHqb8miYGu4Xx+QqY5hJqG2I4OfV5RPizH6KcY= X-Gm-Gg: ASbGncvVrvl+X45k59mwtNgyff5r6aNfDd6pxHpm13t6PewCup/dO0mKhZpDMPRajVi laRTlQJrwYe3w0bgcHMSxPYvmHbrVvlX2r9PZC6jcwmn9be6vTcxGYD3KXNO+XAEJ3yfpJYt30h fGIHkuu3AwV/tfrmxDwMdQX+BZGlopZRiuCdF5Pgqqgi/Orl1PcgBccGRm6qXMw0rQnY2xfy2fA TMQsI9eEsar4pcMhP43JQC3k9Bmu4SROvq5hGjI94qLu4gCULOeIQjomT9olPLCb76plfXaE7m7 VG16etzfhD4d2yDXJtpnATfdO/gPFNZm2YYp2wWQ3w0= X-Google-Smtp-Source: AGHT+IFpLD5B7k7fXna43PL4COCo2fb781nBQohi+uOKDq+PQ5C/xXOE6xN0MQ0jZ8H8pyV6WtJL6g== X-Received: by 2002:a17:902:cec9:b0:227:e980:9190 with SMTP id d9443c01a7336-22bea4fcad1mr41903285ad.44.1744375018241; Fri, 11 Apr 2025 05:36:58 -0700 (PDT) Received: from [127.0.1.1] ([2a01:e0a:5ee:79d0:cf9d:bb30:5951:692]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-73bd22f8253sm1408292b3a.93.2025.04.11.05.36.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Apr 2025 05:36:57 -0700 (PDT) From: Alexandre Mergnat Date: Fri, 11 Apr 2025 14:35:58 +0200 Subject: [PATCH v3 5/5] arm64: dts: mediatek: Set RTC start year property MIME-Version: 1.0 Message-Id: <20250109-enable-rtc-v3-5-f003e8144419@baylibre.com> References: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> In-Reply-To: <20250109-enable-rtc-v3-0-f003e8144419@baylibre.com> To: Eddie Huang , Sean Wang , Alexandre Belloni , Matthias Brugger , AngeloGioacchino Del Regno , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Alexandre Mergnat X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1631; i=amergnat@baylibre.com; h=from:subject:message-id; bh=7fUfH1eE+n+zmzKhP4D/88n0duk+DQJUKxhnlJl8LM8=; b=owEBbQKS/ZANAwAKAStGSZ1+MdRFAcsmYgBn+Qy+kE39onw4c/4Fkz528PzOFaSGz5L4XeHhWzBX hDMFF+eJAjMEAAEKAB0WIQQjG17X8+qqcA5g/osrRkmdfjHURQUCZ/kMvgAKCRArRkmdfjHURZFAEA CMgGOq5n82NrZ1LYEtWO5FV0efEnXxIHS7oTUff/+0zjS/Y8jlqnNx8HPZO5nwUH8Nf9LGtZBslozP vWuRX7cK0jNVQfcIjqh9mpcZ2kT1QJoVCsGw9gN+QqAL6mNPZVhvCwG2HIOIEsxRF69xVDOMZbGJMH DRGrZpV24VYPp83m3Rgz+RqqYjOsB6go3Cppb67f56Go43Wa7Bh4h5bL0jMyT9wvc47+ZzIhF8Dsnu tL3sRzfjBIhd456WR4crywwS+Le3HSdnF0s0KBzUmHhKd4e9llBzJ6d9jxQfZmsNvXqlatDiioEYYz G2WgVthTQ1zPwsLFGvmM8dAbs6P/tc1O1RRVxU1RIdOaRjwIh2+BuH6Nf9TC9a748hBugjATRYmiTX 5DUCslbH/zOfvqxbGqVbwjZhdyKXFSTewkXwDt1YuxWaE8spAjAFQYBu6Wcf7p79iPZy1Eoq4D2VtD 4VbzRlik1xMo/9KPiwY3Np5IFPJpEqx2CnO2uCx27ns+84mWkSUIPlxhQVC5yrk/qbbU/hc+7N9uCZ EeICxRI7pmEj546cN1sweBOzcU67+ct8Kd4CZ1plilw+i65YAUP0JXj5JJVcxsWta+SoyGzIojnLcw HDa/GKX3CnNeQrPYSTWlTk7V9dW560HevmEhZH0M64UhIbAGF5pDYsk1OjIw== X-Developer-Key: i=amergnat@baylibre.com; a=openpgp; fpr=231B5ED7F3EAAA700E60FE8B2B46499D7E31D445 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250411_053658_904832_0A71D05D X-CRM114-Status: GOOD ( 10.80 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Set the start-year property for MT6357, MT6358 and MT6359 to have a consistent value between the HW registers and the RTC framework. Signed-off-by: Alexandre Mergnat --- arch/arm64/boot/dts/mediatek/mt6357.dtsi | 1 + arch/arm64/boot/dts/mediatek/mt6358.dtsi | 1 + arch/arm64/boot/dts/mediatek/mt6359.dtsi | 1 + 3 files changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt6357.dtsi b/arch/arm64/boot/dts/mediatek/mt6357.dtsi index 5fafa842d312f..d79ba87361d00 100644 --- a/arch/arm64/boot/dts/mediatek/mt6357.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt6357.dtsi @@ -267,6 +267,7 @@ mt6357_vusb33_reg: ldo-vusb33 { rtc { compatible = "mediatek,mt6357-rtc"; + start-year = <1942>; }; keys { diff --git a/arch/arm64/boot/dts/mediatek/mt6358.dtsi b/arch/arm64/boot/dts/mediatek/mt6358.dtsi index e23672a2eea4a..226259a51188f 100644 --- a/arch/arm64/boot/dts/mediatek/mt6358.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt6358.dtsi @@ -340,6 +340,7 @@ mt6358_vsim2_reg: ldo_vsim2 { mt6358rtc: rtc { compatible = "mediatek,mt6358-rtc"; + start-year = <1968>; }; mt6358keys: keys { diff --git a/arch/arm64/boot/dts/mediatek/mt6359.dtsi b/arch/arm64/boot/dts/mediatek/mt6359.dtsi index 150ad84d5d2b3..7f9182be79724 100644 --- a/arch/arm64/boot/dts/mediatek/mt6359.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt6359.dtsi @@ -299,6 +299,7 @@ mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub { mt6359rtc: mt6359rtc { compatible = "mediatek,mt6358-rtc"; + start-year = <1968>; }; }; };