From nobody Fri Dec 19 09:44:13 2025 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BA3929C341 for ; Fri, 11 Apr 2025 12:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744374991; cv=none; b=GiC/77NPHDg0DT3JcL/9TyLgpxF1/VSgORTC3ZAGxZzEK12qlkWMHepcKWJkilnVXh1+TGLmVksQRTuvMSyPmw36W1CDTVn0Mwz57Hg92L6Zxjz3hr5Fz53IkLqSxMPnrD7tmgte0FO7LJ8sMpMuTPVBuM6m6s6XnHKl/vRohi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744374991; c=relaxed/simple; bh=kapZgj+SJrEW/7vg45el3XbqPXPyGqqzv8dsBko1XSY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tvB7Y8rrtjG14m4Wl0WtX3M82M63MlM+LXiRY6W0WGlvwh9MxqaCKmFZkbDZDx05ehSMGZ0p5TLUENrI1SIfCoN/VJ093+GYi1TU9ESxhZbvNVTF+1jcVwZDYkxp5kwO3pkoFjSLSkRa1xQsE5Ea9DC/Y4WQKHWR9nIHRKo4R/o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=AJsEHcjg; arc=none smtp.client-ip=209.85.210.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="AJsEHcjg" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-739b3fe7ce8so1782693b3a.0 for ; Fri, 11 Apr 2025 05:36:29 -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=vger.kernel.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=AJsEHcjg/xZUtt5UNRfKW6z4eeDKXzSN2/+X+t1ScYcQirFDnTLpPq8H6aPziaB7CQ CEcIU+y99ZgW861z9cAaxkxnQzEJyplu9qzs0EXuxDOvpnjUHfJ0yiptjwFFYyIFFO8P 7FbVIIf9oagEpXDyKNrlKqGatESNLZQZWVNDV8NbfFpNZkoA5EwsWbtV0meEFXBcdQtJ 8nNeojhHZZrSjlKEIk9RScxU4Nf0vvWIvadjxYUCrIOnOMz9yptlJ3Gv3MNRwmV4jomY 9d9q5GCDLMwxiV7B56pqcYQZTkCa6IDfSNqzVcjP3jLQyP7tRfwAfAPxL/RdgVMd5Mvi wv/A== 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=WaT3cqejUIEP+TxT6bUqYRddBEENYcKOV1artmEsgjW+FeFu+P6K3nmeo+w81Gv5bH xBQSq3B92RD1ETyUEDpFDY/6jeqKFZnZGhaWX81GEG7J24qlbUDdNk1qvMd9kfpY+lLD rH8AHhWYl9dW6oFUtO3DhUPzzdWnlUb/ywx/jO6y4USxhEJwCL+JA13OfMGszkynNcXm cUrp3Gsm8jOR3t3r1ewvXfc1rK2s/QTAmDh5m7Ko3x80P3xBvQu4E/A5ExX1KZFt8Sjs +VHVR1HQGwEWiulyREv1uCZ6Vv2wIrHZ7UdHLQavXatYXqEsTFAwLrSNColJg8OvH8Vm K4vQ== X-Forwarded-Encrypted: i=1; AJvYcCU3AnI7qTlZOf0+60W8LVp+pZmiDD/1LkokfXXppSfYdgN5DuULmYk8rZwYKRgF4Kp62aaCnlDdAOXbycw=@vger.kernel.org X-Gm-Message-State: AOJu0YyIynrOen5e/O4na83vPiSaKN8QDxdd4U+H45tC44xDDFiwn4ON 26Ae00cEXzQk5MlTn8rX2knorsySqfXOLnCoHmjhj7KbyL4odKelZyzkCLDntVbneep22QHDQuv qwwc= X-Gm-Gg: ASbGncvU/rAztFsSpCrlFvrjUH600QkZkqQjUE9NEnB9sxWNWunIDlIaFZaEohXF/gl 9xPC0ryw2piet3TKuiCl0ARxbl3lzc2hcpIX9y8PvD+mi2Y8/+p0jmpu1DffPEwVwBZb3+zU+7q o2Bcga25y3KnYwvZ/Jl6TDkaoVPt9vjQSirPcSl1j2jsNlXmwhh4uLUAunjCwrfhzQ4CnnpTp2P RFC2NVwx0zIBMz2dN+WmMEsLyx9eWkHmGxN03zkORssx0YfltOkaTngH9exsdsCjFhrXT7kUUrW tgLRKvu88JBP01xpp53Gl1D3DvFoD8WiO2vbboECSP0= 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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 =3D { =20 static const struct of_device_id mt6397_rtc_of_match[] =3D { { .compatible =3D "mediatek,mt6323-rtc", .data =3D &mt6397_rtc_data }, + { .compatible =3D "mediatek,mt6357-rtc", .data =3D &mt6358_rtc_data }, { .compatible =3D "mediatek,mt6358-rtc", .data =3D &mt6358_rtc_data }, { .compatible =3D "mediatek,mt6397-rtc", .data =3D &mt6397_rtc_data }, { } --=20 2.25.1 From nobody Fri Dec 19 09:44:13 2025 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5FE429CB4F for ; Fri, 11 Apr 2025 12:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744374998; cv=none; b=RZ5gu5J1S5kO7rlHFNfI7pQfw/Fug98aUCRWdUKc9AXxzMrc4M1X2GhRSCr7MRPPT9in7oIMWkKBlITpXedgYtTEVCELTzofZflyfJmGWoG3aMBWliPaqH8w3HCDJbZhSXzZou+MnzMnL1P2Ks7svHLl3v9APRVTAsbVUjd3Lmc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744374998; c=relaxed/simple; bh=tyu764S29y/vhFyNtYKo1iTVWCgv8kwvcYIcevIAdQU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fmzRkTCa/IUh69hst+aJ8C4FaqHWI8qxzWhEtW1dr+0YmmERRMWNWS/xZ3nTuD7peZ8ekK7twPG8MStwuOa/BNFn7hYe0lDd84YqnnJ1o5z5xWezGK8f5GixpHULTOseLlYfsNw5wHCZVCu0k1qfmuH7JFVHA0eA6hOdBmmbxsY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=y+aW4Q15; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="y+aW4Q15" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-730517040a9so2324107b3a.0 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=vger.kernel.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=y+aW4Q15vv7HJ9CpRUQFJ3D54yk1u8Ts95MSlXdCdXqEquJ0ZsoCdnWj+45Ju+a8U+ EHRKCHSi3c2I2bPBfkrJvbiZ98GYnk3escFA6+bZ2STX228J/mVroRimL4DJr43pDdhe Mc707kOrIwS3Xd+L+ZlLIC7lljKnwqHMz08UDuvkavGCuJ58PWnzxhZA9dhkZZ8XF1Th tzCuteLEMrz1coYglWdOzLo0IdwqvZo7kxjZU7c8XId8qOsEvPW8Zo40T/7VcGbUvoiO vPH28CFPgIL8WvVXqVpEs0j/SbjmuzbCs3AbLpXDcsrzLwxEQ+NZh1mRUYwk5otWpbHs ApsA== 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=R9vs5RkjjT6xZKIgtsaeYDn/AH/a/j6CnAfPJyrIGzpO1X/Y4ZBlMu0igqwtVGouf7 5jeXzJtvDa18O2T0TcM0T5yKsEg2bnB6ISb3gBeuKBZXbclKicuCBk8XJEU3a0h6tgW+ 0x3SRXCxfTRamChb17ZPl67AYjstgO+u2HZW30rVas2LBiaCsDyWLtzMTCcRRCwNRUHC DVgGGzRN9TlcEFe0v1oPJu1gypFI3WUJzjw0D/CkS2VoBZI0gXnUM9KI61pNYtUvJLG/ UzZ3Xo6jte481g9zFcSwlSUd9N5e8hnHd7Ibc7kEkyBev36mQ1aEpZwfQcqkYp4GqTBh Z38w== X-Forwarded-Encrypted: i=1; AJvYcCUHhgYcUi2x0N0hASu8SIgm9Qv4Er93OMSSfXeDTStNytE3QcgUrtp4b2vkv1yslddxJzZPnTzoQcw4f2s=@vger.kernel.org X-Gm-Message-State: AOJu0YwF8SIk7tZ15VVDTXQ0mkhlVDFG+KZ6EEg5/R2HLQKld+DSKOw6 W3ZQbMkQfb7ZDW3lx40IVE7jmNU3QHU6/FGJwSqPi57+YjLrusxinpJPkeaXdioW5HvoUHo+v4P KT4E= X-Gm-Gg: ASbGncttzRyvndi3dllqe/m9z0wPRRuyqzRxGJPGiSuDydBGE71mJJOMJyykm5AmoPg 2lbvNUG1BNUdqaIRDlV7JBiYEghC+dSaQBziDX1mqPECsip1K5wgwbT47p9JeEhp3FQcVzVIoOZ /0pg/exL6sGMCc5J+saP+11cpApyfQ5iGdMJD5xJNpEuZvN2Cc6JLWcJ5EvSFuNiQ2YOfob/2Ih NLSR5iu/aUSb/WikR/bI8PaYsU46MZfmaREXBXNSG4sG8E7grHhga/kghX26ucf3y4sy5EyhTl/ 6qiiJPKuKUZOD4W14hIz/DSBrcH6pMSD6m5YJWbuNBo= 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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 =3D> 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 *t= m) day_of_year, month, day; bool is_Jan_or_Feb, is_leap_year; =20 - /* time must be positive */ - days =3D div_s64_rem(time, 86400, &secs); + bool is_negative =3D false; + + /* Handle negative time values (dates before 1970-01-01) */ + if (time < 0) { + /* Store that we had a negative value */ + is_negative =3D true; + + /* Convert to positive value for the algorithm, but + * we'll subtract one more day to handle the boundary correctly + */ + time =3D -time; + + /* Get days and seconds */ + days =3D div_s64_rem(time, 86400, &secs); + + /* If we have seconds, we need to adjust to the previous day */ + if (secs > 0) { + days +=3D 1; + secs =3D 86400 - secs; + } + + /* Make days negative again */ + days =3D -days; + } else { + /* Positive time value - normal case */ + days =3D div_s64_rem(time, 86400, &secs); + } =20 /* day of the week, 1970-01-01 was a Thursday */ tm->tm_wday =3D (days + 4) % 7; + /* Ensure tm_wday is always positive */ + if (tm->tm_wday < 0) + tm->tm_wday +=3D 7; =20 /* * 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]. */ =20 - udays =3D ((u32) days) + 719468; + udays =3D days + 719468; =20 u32tmp =3D 4 * udays + 3; century =3D 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) >=3D 12 || tm->tm_mday < 1 || tm->tm_mday > rtc_month_days(tm->tm_mon, --=20 2.25.1 From nobody Fri Dec 19 09:44:13 2025 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F15C29C32A for ; Fri, 11 Apr 2025 12:36:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744375006; cv=none; b=XKr+74fkLqgpIkeruL+VHfBN3i2//1v1dhTGJLNAtnkK1zQ+KCO9tamD6RzRIkA8eNcI/jvMH3u1mqVFB3DCiDcEhbjq+ypIwKtwdSiB87g6CJ58boWQGU1mswqD2dvHJap7muKZ5yuXxOyiWqrH4vub3z/6otvpw569nw5vK5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744375006; c=relaxed/simple; bh=vGUfgBYd/nqdiWhakMrxzcEEIqB0t/sqp/diq7LMGlc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FCA3RParGuVDy8W/+svjUIGsYloGCh6Fzz6iSbAdKZPfsnWKg8CEt6REB4dcGF/2BolfLdMOKAGQWRv6g0rlAwatplxcYe1TK2+xYmEAQWwtVvqvd7+adzV4ymr6L7OGp8gsaPhCirgFy/BydMtS26DDzHQ2nmAS3MFguhl0XT0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=RArPY3MD; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="RArPY3MD" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-7376dd56f8fso2302497b3a.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=vger.kernel.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=RArPY3MDH2P26+1MurZ2G5433n6JbjHnVEzDtnNEeQYlFFlPXzDtA4R4c70CY0+hGg 3X01IAK5Y97ijCubaueulHJk1a1SyMIgniFtJMeWdXq4pKx+NPCnMjyh/y2Do0DfTbYt 6iaPBvF3yU4KPk1Pq1WzbZANLd1DszyioRPVpEPD4a03aU4R61OLyGeitY876utK2F/o XsDTsucntkTkWcGbE4TbKBFBcOQDFX1584oT/Ebb6EkdfbeudlQePbvC/lU7SknTJXXq jbQbOsMG8+MHnhIs4TiUrxv2SP+pROB3C3usccOHUdvIQDsBTNak9IFfmLsBi+zqY3Su 3yaQ== 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=U/Zz5Ru0MWXCWPqditQjQx0unRxEAxv726Xc2pYR0acFydoMcO1IA6bt6nARC84deF 6vr0qP24ub8gW6USy7ydUJjJyi+CIE4bof+FnC8mbHrWQvJ3QWaYTcr7VOaIt9xH87s3 Rrke3KH4gU/1Etz2sNaNMGi5T7Hk+9htCbvkU5+h1l7HK3PyczXRzawrdsw22odVrfvX 3abJjyTY5IeRvuoYnjgi23eY1OOrxa4nf+aql5y+mlL/BTWY7Plu/if3PNCn7rKJVzsG IDfMnqyQ6oRook/y1sKNR7U7C9cHaaSjj7F0F2FHZaZ7ChrLajcw7PGjVdDHVuqo4+8J lEew== X-Forwarded-Encrypted: i=1; AJvYcCWNT2Rj5V171OA+qBJ7soaFkQchui3yj8mv9bW4sSk3g0+y8QUnOvJn+vRbopjNIY8dyc6/HMTnMR7wans=@vger.kernel.org X-Gm-Message-State: AOJu0YwXPIDQgBNKZH4dnsDyjPgkcyvbSmYnyF+wPkICTtykhWXzYjQi WzqtQiA+XRyYq3NbHeXdAGl4E7mShkQ2s76wpRxlDoO7wFS1wAZfTjnD3XWVnzRJYE1HOsDRuco J6wQ= X-Gm-Gg: ASbGncuNrFjicgo8T4mxwzl5hY/K1+4uAh1J7vILKJqlDm44uw6taC/CMFsSoCIBvjH FkWwwBtVQfYbTmK1su6hU6wt7ts+HDKzajuoebLeoKGqKxei10OSHoiWTvnPTrDYjoiQkgpd//8 ig0q5jNDZ+4hPK0NKj//tUB6YNYyPejSSePyUBqosxgBtY84ei69bFzMJET4uW2b8HH4e7Mq9CL RO1q8ebRH/AXJZVEjha816E/dTbf07wWMlnLc29uLlVzAZbC3exd/7B63YSjFLnYFlpHLBM4qMF G6DnREDwMNdlI9QB1KnjTxx1263uPib3lTew5LSg/+o= 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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 *rt= c) * then we can not expand the RTC range by adding or subtracting one * offset. */ - if (rtc->range_min =3D=3D rtc->range_max) + if (rtc->range_min =3D=3D (time64_t)rtc->range_max) return; =20 ret =3D device_property_read_u32(rtc->dev.parent, "start-year", @@ -299,7 +299,7 @@ static void rtc_device_get_offset(struct rtc_device *rt= c) if (!rtc->set_start_time) return; =20 - range_secs =3D rtc->range_max - rtc->range_min + 1; + range_secs =3D (time64_t)rtc->range_max - rtc->range_min + 1; =20 /* * 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 *rt= c) * * 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 =3D 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 >=3D rtc->start_secs) || (rtc->start_secs < rtc->range_min && - secs <=3D (rtc->start_secs + rtc->range_max - rtc->range_min))) + secs <=3D (time64_t)(rtc->start_secs + rtc->range_max - rtc->range_m= in))) return; =20 rtc_time64_to_tm(secs + rtc->offset_secs, tm); @@ -58,7 +58,7 @@ static void rtc_subtract_offset(struct rtc_device *rtc, s= truct rtc_time *tm) * device. Otherwise we need to subtract the offset to make the time * values are valid for RTC hardware device. */ - if (secs >=3D rtc->range_min && secs <=3D rtc->range_max) + if (secs >=3D rtc->range_min && secs <=3D (time64_t)rtc->range_max) return; =20 rtc_time64_to_tm(secs - rtc->offset_secs, tm); @@ -66,7 +66,7 @@ static void rtc_subtract_offset(struct rtc_device *rtc, s= truct rtc_time *tm) =20 static int rtc_valid_range(struct rtc_device *rtc, struct rtc_time *tm) { - if (rtc->range_min !=3D rtc->range_max) { + if (rtc->range_min !=3D (time64_t)rtc->range_max) { time64_t time =3D rtc_tm_to_time64(tm); time64_t range_min =3D 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; =20 - if (time < range_min || time > range_max) + if (time < range_min || time > (time64_t)range_max) return -ERANGE; } =20 --=20 2.25.1 From nobody Fri Dec 19 09:44:13 2025 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DECA22BEC3B for ; Fri, 11 Apr 2025 12:36:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744375013; cv=none; b=MN4yJSEfqICMXcp/VkYpqc8+aRUJvOH3pfhnL46IbL0u+dI+AC0uI6kFbduYYV6buKCnIyzDDH1R+HUM/kiUHhdfV+g96BnZfhgM3ku7cK7ULwDlvqxKBLZsmcXtkOS6bNUXmY+yVmtVSAZBI1ukqXF0zwu7BunLapg1YCxhe8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744375013; c=relaxed/simple; bh=trGJ+81hvgNk61JAyUi09epqF3tLwjd5H58jiE8ssKI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s39kCVPJS1qaVy4aGDBa29XNxLwTJlEd9Uo5rO/7P6oLOTwTw9DfbMcSuKW7JqERivyFacqLjacgmDEhNEDsCg5OzI9CRfl4EhqGYGFEwAWN25PLkP7NOl/V4NZjKkrDVEgnnq/OhoZ+WwGUuLfRVEJo9mkRQRF0iFqDN680ud0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=VOhTDv66; arc=none smtp.client-ip=209.85.210.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="VOhTDv66" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-7369ce5d323so1648482b3a.1 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=vger.kernel.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=VOhTDv66TKkL6OctU/gsj7dJmdGEwZOrmzO5sMCTTkNy0Q7p4OcOuqFMPkbVQDXD4u kqtu2eShJI2P3vRnO7Y1tRV4Yid6jIoLm8gijuuKbqjNPKr332oBQj4bSa9jTetZhjVp PxmxWbG6qiy8awCjGDUHHHd80O4ZZgbKW+G2Zyt5NHlpbKCMQv0ZA8y6BxMaR00/XME7 U2foyDtsopZ3ySjIYcG2J0xEZlSq/GxjnQY0pxWmyIvu5GSZhdDGg0omFK/W7QaUNwTJ c1Wrfy7XbNfl4x8W3VVikgMILn7zLLwCSCx4yCsnuIaT6LWB4cxagKgXTat1e6l6nxrB kfxg== 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=pTRD6GgMnFkY7BecIeDYEAcWTdZZoQHoKVVavKuL6o71Dla7Dm61buBPOLn094QiBZ ZA7jI39FlcND11TzafPR0bCFa1tS+RzsKEmKZahgidWIG9IMs5VrxnpQ5Mik0rMNc1uf J9sfv8Km6FQJaR73wH/SbKBS3gSiIyXN2TJbd2SdBksKaW8bkA7z35wkUg6CMJCH6Gq9 RRGqqJGJT53uHZ8115gEmkJBZw4FG+As0OddSbazd5Udr1PDYArlJLjG2y8c5cFY+dcJ t2AFN0xjkGaQuSJ8jk7dkmpa+IEqRaVRzVoT48UuCT7aJ8hqhiJE+P6ibShoHirLyqWe GI1g== X-Forwarded-Encrypted: i=1; AJvYcCUYI4D8Y01Jma5kwGYLVcfVc7gYWBBhTIfaUkyHwm9DFmUlH4yDbUA86ggG7RiwgX4SMb1ayRmUpPSHfmc=@vger.kernel.org X-Gm-Message-State: AOJu0YxZRMXmFZb7b51B1hk++xEL9JBi/0HO1evb55PgpkmQ5Hqug/Ud CLgUmy/A8SEfRP+u1dOAKuoBPFD1AVGjAkhWEIh3OK4JpBRXEJNzTtn70hrchVz6v9ZhvO+5LgG jPE0= X-Gm-Gg: ASbGncsH29vTFrzrkOmeuFOK69S7GazBlFmjm59dXADgIPHw+fd4lyyD766YmKuYs4t gCfXEXUDS7JFUJNuBeR+9uTUGjjovSc2UvYRomiD5UV6+O+TbjYRQQOuFMs01pZZ5vDAECQRiQa /6c6q9buoW80qlpfSx7GLkJMdu0z4d+xVGbgl8+akvFTX94hIHYYC8BvHwKeze2CFQGTrk6UMDr Dx/ALkKTXEa0eWpMs/skyOaU5q2qUwzf+CDFfcbiHyfdvo+9ZhXhCwJEcWzsvGwJfW0Y6i6ambA jlrUQDZpXcqpz4Z379cJeYkybYCVCipwKi8dofMYdW8= 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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 =3D &mtk_rtc_ops; rtc->rtc_dev->range_min =3D RTC_TIMESTAMP_BEGIN_1900; rtc->rtc_dev->range_max =3D mktime64(2027, 12, 31, 23, 59, 59); - rtc->rtc_dev->start_secs =3D mktime64(1968, 1, 2, 0, 0, 0); - rtc->rtc_dev->set_start_time =3D true; =20 return devm_rtc_register_device(rtc->rtc_dev); } --=20 2.25.1 From nobody Fri Dec 19 09:44:13 2025 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF2542BEC4D for ; Fri, 11 Apr 2025 12:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744375020; cv=none; b=qakMijF5U+GsZuFURitxfC+O98wlY6aKfJHRPxR+RaWbgg0prVuRHUvLnin3ByYfaMR4jFZgahiPIrpSI9tTMhHtQv+wltyuMCQ/jxGBweiuCXn1vQgwMYLo5XKurCip3Ye289ZGZS+4SMMDm0QfWMTZXIeKk67xk1BXwwpVqoU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744375020; c=relaxed/simple; bh=7fUfH1eE+n+zmzKhP4D/88n0duk+DQJUKxhnlJl8LM8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J+zXs/zF4+GPU4YCr9dzx0V9ZjNAqFccbcSDZ6nxeaY4CM+Qv6e6Nk7CQfiZR1nTeEtE1HG0DmSHOL8CHFn+YyyQYapVTQgcFcUYZ0YxUp4CJWgnjyEUOkx3uYgKq2+nVHVJS+Sd0lSnfiICz2bFKSKrmLXli6XEi7R1pmDybl0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=0oQmKPpf; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="0oQmKPpf" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2255003f4c6so20850675ad.0 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=vger.kernel.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=0oQmKPpfP4qUut/3hcryutK5usIxOqRG+Md7deKTQaAVOsjsfZZwV7b33kreEL8HT5 5qJAHw5VhjVT6t3f2ttK/JNHTaLob9acgitQfTYdefpsf7gvYNjsV0QvJ3e3tHhO1g4L mMPqU9t8NnP+FM/MKVNd2EuJCJjBL9xVXms0GKzTvdFymq0zMI8b8QaWav8U9dDUQ+ja qtV9/9TrKKR+DM5OYwXmjoZDAj5FRdv0BqvHRnUXCJwbHfRW3X+VNkuV0wrS6BB1b27r PrCHiNuw2mbfiSLuhjB9p/NS/2jkkD8aErgCV5lGauY/I1MctF8VRsoTtxM74FmEsD+K e2Lw== 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=dCd5ZgUJmlrRP+relXOKs3ljhp07PD/4EJjhkJqvoYLMjjqHuS3VDe9kPB3Rz0Ode0 kKbvYz1HZqxzKt6P+Tpb437qRTC72GSqfKa1+9Te2ZEeKW6oquGwvAF4U6mbF+wDWv+e kNoGqwjjg656zDVdfDvUlSDN4fuwQEw4mOWRris4vIdRMTlpdntcEdL88GXRSJ9FH8Dc 1NQKCbrYywoBR/zNVXrHnzZYizC7UThe5w1aLIplcr0YdHhs/s5iyxyPHwd2AAFtUz15 Y/LJv/9ukMfDlYA2kwteAh3vVG/YAhMz5j/m6BkXc6HPNvNtudR0UZTriK09wwlsvF14 x3uQ== X-Forwarded-Encrypted: i=1; AJvYcCXxxsKJgv0J8Wj6kht0uTrQ2DZPN/A33/TLnx19MOlusE3JVy0S8LCnwrx5Pm7fDos57Kn4Jnb8lQG48L4=@vger.kernel.org X-Gm-Message-State: AOJu0YwWn/1LStxvsfWqmcYR7u7as0/+eq7am3OvnpPqmSBHs0UNEhrA fn+x20UNbAILrXPk4fv+4LaRLSDTIKUOjBYvuTdd/1i3of17wr3ZafoJUO0EnTlfwVkCUhSmXlE pGj0= X-Gm-Gg: ASbGncuuFwWwnq+cEQa52ILLYFKACW/82Pv95B6fGRS/LFkgXDnUSPLHBwRY/0eEknZ zZtC24g3rWEQs1+1Tn9DN6cGQDhIQrzcobJb7S2035MvkLmcIQGw0fKwg4yw9NgM+OiFP2jLgBL 0ynQXqhS6M7wno4yp9MN4vdV1mBrJZZaXWybj4by03FCIgDMNz0AQXDA+w9hN+YLmOKIhqA9fKw EVM4sy1tX0vyxB7Jnh8vZkEiPz2bN6gRrPP16bFwnVS9tO4z7/Q+q9jyMEAwkX3tUqoXjlx/nhi 5ZmS2FXM4jxx2HcL//r85dlZbzNaNzgKrF1a1bmi8Bo= 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 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 { =20 rtc { compatible =3D "mediatek,mt6357-rtc"; + start-year =3D <1942>; }; =20 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 { =20 mt6358rtc: rtc { compatible =3D "mediatek,mt6358-rtc"; + start-year =3D <1968>; }; =20 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 { =20 mt6359rtc: mt6359rtc { compatible =3D "mediatek,mt6358-rtc"; + start-year =3D <1968>; }; }; }; --=20 2.25.1