From patchwork Wed Aug 16 13:39:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821793 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=QgSe0DIC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5b00Xfz1yXY for ; Wed, 16 Aug 2023 23:40:34 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245610AbjHPNkB (ORCPT ); Wed, 16 Aug 2023 09:40:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245603AbjHPNjo (ORCPT ); Wed, 16 Aug 2023 09:39:44 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9BD7B9; Wed, 16 Aug 2023 06:39:43 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1bdf4752c3cso15352565ad.2; Wed, 16 Aug 2023 06:39:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193183; x=1692797983; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=cPyeOQTHUIBx8cc+Tlz/Akt92G3Epi3WuhjRpP+czGE=; b=QgSe0DICMVH4IRWluBGO8+2roayy19LAu2pzIAEfoOXM9/KUE+DK17tR/W7tBbYDzN Z6D4KoHxn5GZgQ1nhLeseANBQ3XfnmKv/tgNOcoPRdFO3ovB1/W9Y8kBvvjMJzajxhET 7+/Q6v3m9FZW3Aiw3IApFrlBXl3ocGZSUtJnL66sP6YiyCpirPV9vy6hwG+dqk5nO/sP CbrSgay46oSwBjrRiEl3VS1ac2g6L5qZG+qmCQaS/0eCjBBAz7Xd5aHJk8Y1/FRJOUrN OitiJrGWGJTYG1sWh2yn8oETYxbAYHXrOlsvz0739sQzToQskoQM3cnIW3cnZA0s7kot xZHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193183; x=1692797983; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cPyeOQTHUIBx8cc+Tlz/Akt92G3Epi3WuhjRpP+czGE=; b=ZY0NUvv8NkyODcsrxHXd1MjSExUoib4Xv7Ex77FlSvupjZnTsNbslaoiBpSzQUB3d1 gozbJuaJOgIdl7+MAblzh9pLLukvBIoISPsUYzb5osHBEc4kePaZHEwUa5EGr33KEV/a PCKx45LY+LxoeZaG8gKtpzPzDysrxNcafjbanmGx+ah9Vm0IBnnAacv+7xn+qqJdTd6T eUGQ0yPA7irFY0L08/3/vnbBAl8yK99ITuCALLdVfyia6oe95nG9GT791HANfp3VKE0m zH3gUdGDr3lPntWrHemXKglnqysliSsQ4O3HzjNosTAtpn5Uv2gb8oLV1WvAmYJmmTIm nJUA== X-Gm-Message-State: AOJu0YwYxHBWOXK3pLz2EXHCd28iIIhCrKcL2F3GQjJ143F9Zlk4ph1o ffB0J6HAIGzI/o9L/5IdQbM= X-Google-Smtp-Source: AGHT+IFAKTyPIvG2X5mhnjPAwP1/DDgYxP4XOiqgVhuJxWMcc5SaOG0HL7HBB90p8koUe9URm+73Aw== X-Received: by 2002:a17:902:f687:b0:1bc:239:a7e3 with SMTP id l7-20020a170902f68700b001bc0239a7e3mr1873820plg.44.1692193183233; Wed, 16 Aug 2023 06:39:43 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id z17-20020a170903019100b001bbb25dd3a7sm13109199plg.187.2023.08.16.06.39.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:42 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 1/7] rtc: Add support for limited alarm timer offsets Date: Wed, 16 Aug 2023 06:39:30 -0700 Message-Id: <20230816133936.2150294-2-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org Some alarm timers are based on time offsets, not on absolute times. In some situations, the amount of time that can be scheduled in the future is limited. This may result in a refusal to suspend the system, causing substantial battery drain. Some RTC alarm drivers remedy the situation by setting the alarm time to the maximum supported time if a request for an out-of-range timeout is made. This is not really desirable since it may result in unexpected early wakeups. To reduce the impact of this problem, let RTC drivers report the maximum supported alarm timer offset. The code setting alarm timers can then decide if it wants to reject setting alarm timers to a larger value, if it wants to implement recurring alarms until the actually requested alarm time is met, or if it wants to accept the limited alarm time. Only introduce the necessary variable into struct rtc_device. Code to set and use the variable will follow with subsequent patches. Cc: Brian Norris Signed-off-by: Guenter Roeck --- include/linux/rtc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 1fd9c6a21ebe..b6d000ab1e5e 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -146,6 +146,7 @@ struct rtc_device { time64_t range_min; timeu64_t range_max; + timeu64_t range_max_offset; time64_t start_secs; time64_t offset_secs; bool set_start_time; From patchwork Wed Aug 16 13:39:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821796 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=J8j7FKA5; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5b6ZHdz1yXY for ; Wed, 16 Aug 2023 23:40:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245616AbjHPNkC (ORCPT ); Wed, 16 Aug 2023 09:40:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245606AbjHPNjq (ORCPT ); Wed, 16 Aug 2023 09:39:46 -0400 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99204B9; Wed, 16 Aug 2023 06:39:45 -0700 (PDT) Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-26b0b92e190so4152610a91.1; Wed, 16 Aug 2023 06:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193185; x=1692797985; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=BAeAZMPWPQ44R7uqdMO5/pae/vXEz5lKsT8ey03vQrU=; b=J8j7FKA5EEOum/SzG20r4GdRcUBht0i+n/qtxvJF2Nj1DcGqrNsTlgx+IeeqveQAn3 5i0FIV891WXnEOyJesC++tgV/kc2X96a9bCNF3+3iLCZgs18DijoPmOurhPR0yBjKR7J imliiLKDhLgzkjE22qVvZGt0DA3qXjsyIvDeGlRgKHhdNyjW5alAIyz4vvYDRZ5NLWcz YlwoovhQX/5mX64kl1Iw+6+n7FSrfpvlelX2VRKCSVqn+9ojml91/00S1F9y+t9krBfK 9OroM+N9SQitIlNaENuNKJRiLGJh63NYC6K8IZRAu1FubcZvS8eAdze6kJcTXCQ8VjTe E5QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193185; x=1692797985; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BAeAZMPWPQ44R7uqdMO5/pae/vXEz5lKsT8ey03vQrU=; b=eTLcuP3TulN0rkT6n6whq/onV1BQ19SCC3QFtexkHb1Z6wRNC4sSY0J5KNUB4/4Vqm VGaRCPBt08yn0AaIOzq7OtIRP8YrVeEBnE7r5zyWIY0NRtNNLdeDsJv1ZjRDbObv9lyN TfYTO7lPVn+gKhvXhoKKkaXRjs51RGnzkokNKTX3WJbr/3JnlZ0G8Ns1PMgad9Kn+NL0 wvUpVZ570SM/cX8f73ayjTX3quu1dMYSMJ4NtXi9or4UiDB4UBzkVUAp0321aSWBCzcM 24co4gbhZv1Hn4i+au3Pef6HHDwep9gDF29M6bOjyZV2MQKLT83/UrzVgS5WTWKYDdLL 8rRg== X-Gm-Message-State: AOJu0Yy9QA1XgMdAR0jav6w42oozF/oL83Ku2+qJIJDbfCpZPtaDf/l2 9s9JF7MhtUw47dJ3Mk1dxz2+DsXiK54= X-Google-Smtp-Source: AGHT+IHBZNrLU/iY1lISdkWjk0pti9fq9RpxLjFSYHnDjPKoLDjyVMAWxluCc+IVWXPODrTbYfXgMQ== X-Received: by 2002:a17:90b:1014:b0:268:2af6:e48c with SMTP id gm20-20020a17090b101400b002682af6e48cmr2723405pjb.4.1692193184943; Wed, 16 Aug 2023 06:39:44 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id v20-20020a17090ac91400b0026b30377c14sm8512957pjt.6.2023.08.16.06.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:44 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 2/7] rtc: alarmtimer: Use maximum alarm time offset Date: Wed, 16 Aug 2023 06:39:31 -0700 Message-Id: <20230816133936.2150294-3-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org Some userspace applications use timerfd_create() to request wakeups after a long period of time. For example, a backup application may request a wakeup once per week. This is perfectly fine as long as the system does not try to suspend. However, if the system tries to suspend and the system's RTC does not support the required alarm timeout, the suspend operation will fail with an error such as rtc_cmos 00:01: Alarms can be up to one day in the future PM: dpm_run_callback(): platform_pm_suspend+0x0/0x4a returns -22 alarmtimer alarmtimer.4.auto: platform_pm_suspend+0x0/0x4a returned -22 after 117 usecs PM: Device alarmtimer.4.auto failed to suspend: error -22 This results in a refusal to suspend the system, causing substantial battery drain on affected systems. To fix the problem, use the maximum alarm time offset as reported by rtc drivers to set the maximum alarm time. While this will result in brief spurious wakeups from suspend, it is still much better than not suspending at all. Cc: Brian Norris Signed-off-by: Guenter Roeck --- kernel/time/alarmtimer.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 8d9f13d847f0..cc31998a34b9 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -290,6 +290,19 @@ static int alarmtimer_suspend(struct device *dev) rtc_timer_cancel(rtc, &rtctimer); rtc_read_time(rtc, &tm); now = rtc_tm_to_ktime(tm); + + /* + * If the RTC alarm timer only supports a limited time offset, set + * the alarm time to the maximum supported value. + * The system will wake up earlier than necessary and is expected + * to go back to sleep if it has nothing to do. + * It would be desirable to handle such early wakeups without fully + * waking up the system, but it is unknown if this is even possible. + */ + if (rtc->range_max_offset && + rtc->range_max_offset * MSEC_PER_SEC < ktime_to_ms(min)) + min = ms_to_ktime(rtc->range_max_offset * MSEC_PER_SEC); + now = ktime_add(now, min); /* Set alarm, if in the past reject suspend briefly to handle */ From patchwork Wed Aug 16 13:39:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821795 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=j+6XEUXT; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5b4TPlz1yNr for ; Wed, 16 Aug 2023 23:40:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245618AbjHPNkC (ORCPT ); Wed, 16 Aug 2023 09:40:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245607AbjHPNjs (ORCPT ); Wed, 16 Aug 2023 09:39:48 -0400 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCE3726A9; Wed, 16 Aug 2023 06:39:46 -0700 (PDT) Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-2685bcd046eso3603934a91.3; Wed, 16 Aug 2023 06:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193186; x=1692797986; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=ihRosdJY/MK1unL/lNrVSe4a2dGQokFzFvZLgmQopPI=; b=j+6XEUXTsqdJvltiCc3RvWq8Xnv9msec9ucrjipAkY0kRTmSTVx1T+O1TOMiifO6gO 5ktmZjLTQ0wfS2qlhKcLhyaDF8ms++nZySlKpH0U8rCiL6w00YSSgDEhFONND6VolTPL byWnVQpd0HOLTjzONjNZnhsK+hdKRWALNz9jrC6o4KVNqRbkrOQOX0EqswwMaX8RTqpr 6dWmqO7P78sQAoW5hhY+gBI9AKlLchnhV42KqNC8Lw+fFO+UWJSDKhuY6+PiRojLRVnr vaqQ4Qdc4KL7h8Qjyfa2r4WeiwhCSXKrEHV15v2NyCu7rkV3B9hPq7bDeLKxEFtS3c5U fwmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193186; x=1692797986; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ihRosdJY/MK1unL/lNrVSe4a2dGQokFzFvZLgmQopPI=; b=IbMA74ZnaFSApDT0iK0stNFQGdxj8etBA9uumiQsoq4fwHwsU6c9kXsNhIA07EszC1 rd8Xffltr8zwUSRyVe2yO0nj79z93/FaTl3JR0Jdt34Ddz07tn51uNuiBrhydNqfX/qr PTngcLl/biGNHVtdvzCyAquPqXytuObw5CRH2E3AndYhiWEjO+sXrgJeaM7jwRcHGKmP Ym4G0o3EgLhbVOJBNK/4x0BJXsQzmio2ifDBKEH4OG+Ia/OkZmXd6rmSPb4/KqdhOc5C NihNr/ErRP1VngDLDslr0kWvrzGE8c9sZY3Jjt3WpATMXA/hgfPM7Jj9yJzr5nTeriCr z0jQ== X-Gm-Message-State: AOJu0YxwBaWwjLonozAKtEP27meVQgxldsMHC8v1mheCsfxvjMcesLJW QnJ9iElTgE8KU0sDfhKQ4dE= X-Google-Smtp-Source: AGHT+IGMO4nj1foQwnCaomc9HozibnzXeEy7aZNnvHy+1Ii11lxEc3obNmdcpHAYsL1dtgB28BTMRw== X-Received: by 2002:a17:90b:144:b0:26b:5334:5ee9 with SMTP id em4-20020a17090b014400b0026b53345ee9mr1273363pjb.36.1692193186333; Wed, 16 Aug 2023 06:39:46 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id pj1-20020a17090b4f4100b002696bd123e4sm11244252pjb.46.2023.08.16.06.39.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:45 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 3/7] rtc: cros-ec: Detect and report supported alarm window size Date: Wed, 16 Aug 2023 06:39:32 -0700 Message-Id: <20230816133936.2150294-4-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org The RTC on some older Chromebooks can only handle alarms less than 24 hours in the future. The only way to find out is to try to set an alarm further in the future. If that fails, assume that the RTC connected to the EC can only handle less than 24 hours of alarm window, and report that value to the RTC core. After that change, it is no longer necessary to limit the alarm time when setting it. Report any excessive alarms to the caller instead. Cc: Brian Norris Signed-off-by: Guenter Roeck --- drivers/rtc/rtc-cros-ec.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/drivers/rtc/rtc-cros-ec.c b/drivers/rtc/rtc-cros-ec.c index 998ab8606f0b..a257a24e8223 100644 --- a/drivers/rtc/rtc-cros-ec.c +++ b/drivers/rtc/rtc-cros-ec.c @@ -182,21 +182,15 @@ static int cros_ec_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) ret = cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, alarm_offset); if (ret < 0) { - if (ret == -EINVAL && alarm_offset >= SECS_PER_DAY) { - /* - * RTC chips on some older Chromebooks can only handle - * alarms up to 24h in the future. Try to set an alarm - * below that limit to avoid suspend failures. - */ - ret = cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, - SECS_PER_DAY - 1); - } - - if (ret < 0) { - dev_err(dev, "error setting alarm in %u seconds: %d\n", - alarm_offset, ret); - return ret; - } + dev_err(dev, "error setting alarm in %u seconds: %d\n", + alarm_offset, ret); + /* + * The EC code returns -EINVAL if the alarm time is too + * far in the future. Convert it to the expected error code. + */ + if (ret == -EINVAL) + ret = -ERANGE; + return ret; } return 0; @@ -355,6 +349,20 @@ static int cros_ec_rtc_probe(struct platform_device *pdev) cros_ec_rtc->rtc->ops = &cros_ec_rtc_ops; cros_ec_rtc->rtc->range_max = U32_MAX; + /* + * The RTC on some older Chromebooks can only handle alarms less than + * 24 hours in the future. The only way to find out is to try to set an + * alarm further in the future. If that fails, assume that the RTC + * connected to the EC can only handle less than 24 hours of alarm + * window. + */ + ret = cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, SECS_PER_DAY * 2); + if (ret == -EINVAL) + cros_ec_rtc->rtc->range_max_offset = SECS_PER_DAY - 1; + + (void)cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, + EC_RTC_ALARM_CLEAR); + ret = devm_rtc_register_device(cros_ec_rtc->rtc); if (ret) return ret; From patchwork Wed Aug 16 13:39:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821794 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=C4NKz8S2; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5b2N8Mz1yXZ for ; Wed, 16 Aug 2023 23:40:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245602AbjHPNkD (ORCPT ); Wed, 16 Aug 2023 09:40:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42186 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245609AbjHPNjt (ORCPT ); Wed, 16 Aug 2023 09:39:49 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 459C726A9; Wed, 16 Aug 2023 06:39:48 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1bdf7086ae5so16019805ad.0; Wed, 16 Aug 2023 06:39:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193188; x=1692797988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=oscugnf7qYaTZOb13U9ax19uPvy15y4ztIfQsoTuemg=; b=C4NKz8S2dkpWNgwFeQmkOLjPwyXB2iURVjCpQ73Sa5SYRQEjIRSFZkXJV17gS6ppfG etzuAmbwu94iRIMEuqQdmVd73tTyXvyqJd7wBVNUoL4It95ok5sKs4YF3iEXC7BnQ1lE 7UmKVCEHWgGebJ16Od3m8lfc1Inl/OFqt8wLn0hDLSUpK8n3ZqsVANSFkesUI7EncayZ 6zw8MDCGSToRyvnVXuadnKjst7LTvrNNZSCX32IiUjOaN++Vb/1WI+vZUyAw9vJMo1dO MaV3mgE4pGTCUxje2bS0xZDNqpQYB5dTAka55kHTzaXTwHUhVFKBfpjCJegRp6/DG4IN 3oYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193188; x=1692797988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oscugnf7qYaTZOb13U9ax19uPvy15y4ztIfQsoTuemg=; b=ELyaDrVOw2A5kSFsFBR+lKpw4E5k8CHEilru8m/BWuTL+UIbc73maZgnJJiZuotbvw gGHOpU3SsGts1hBiJnKmYIn78cmnw5QRo2PkE+uPoKJ3IOTfJ1CTxH0yjm0wqkxGGLo2 QX9+8aOAjNRhBR3eUqReIxgLhuwZilKY6f7rkAKJVAgOEd0kIgfOzp5SfsboAsGXtpY0 IwIMZGGp0aPD+TSaLpkxNlJ9UmTdNAJi0t9wIvJc+t1MjOltYAzgAv0nACKp8xU34jd/ XlOoFmlF9uz2tPA7Z93U+f5uiOeKICp/51Ee7ogVOVYZDjssZ8ZcPga2uY0YXhQbvp9x DtiQ== X-Gm-Message-State: AOJu0Yy37Bj6l3ySemJSxlhmBjS76kOT+sXFXK4LBpjF2JQbamq3R0lS YB8ynoRXArC5pd4PECQHtv172L/ltCk= X-Google-Smtp-Source: AGHT+IE9o2BFl+XSfkXzpZE3w/IEWeczET+nJDuzj9eYjAN8CUJekT0r5nLPfNh05AT8k+Z6CzUjWg== X-Received: by 2002:a17:902:e5cc:b0:1bc:5197:73c5 with SMTP id u12-20020a170902e5cc00b001bc519773c5mr2172551plf.54.1692193187739; Wed, 16 Aug 2023 06:39:47 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id b4-20020a170902d50400b001bb9b5e86b7sm13173773plg.91.2023.08.16.06.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:47 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 4/7] rtc: cmos: Report supported alarm limit to rtc infrastructure Date: Wed, 16 Aug 2023 06:39:33 -0700 Message-Id: <20230816133936.2150294-5-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org The alarm window supported by the cmos RTC depends on the chip and its configuration. Report the limit to the RTC core. Cc: Brian Norris Signed-off-by: Guenter Roeck --- drivers/rtc/rtc-cmos.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index c9416fe8542d..c565dc4d5bf5 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c @@ -913,6 +913,10 @@ static inline void cmos_check_acpi_rtc_status(struct device *dev, #define INITSECTION __init #endif +#define SECS_PER_DAY (24 * 60 * 60) +#define SECS_PER_MONTH (28 * SECS_PER_DAY) +#define SECS_PER_YEAR (365 * SECS_PER_DAY) + static int INITSECTION cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq) { @@ -1019,6 +1023,13 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq) goto cleanup0; } + if (cmos_rtc.mon_alrm) + cmos_rtc.rtc->range_max_offset = SECS_PER_YEAR - 1; + else if (cmos_rtc.day_alrm) + cmos_rtc.rtc->range_max_offset = SECS_PER_MONTH - 1; + else + cmos_rtc.rtc->range_max_offset = SECS_PER_DAY - 1; + rename_region(ports, dev_name(&cmos_rtc.rtc->dev)); if (!mc146818_does_rtc_work()) { From patchwork Wed Aug 16 13:39:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821798 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=gR/P4n3J; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5c3zZGz1yNr for ; Wed, 16 Aug 2023 23:40:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245623AbjHPNkD (ORCPT ); Wed, 16 Aug 2023 09:40:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245612AbjHPNju (ORCPT ); Wed, 16 Aug 2023 09:39:50 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9D05DB9; Wed, 16 Aug 2023 06:39:49 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1bdeb022738so18736305ad.0; Wed, 16 Aug 2023 06:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193189; x=1692797989; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=zuVG9z6rD8Z1emOxzWF+Wu0OPR+5zNm8bc9i/xho5n0=; b=gR/P4n3JUiSjnD3JC+BhiEuJub4OnAyFEDcQPCBTBJ+0ZcBpplxVi6H03t9I0ZOrJ2 MRd8jhrbALXaQswEGEJW3P5kzv8zxOdH1R+1MHsfJNlWi8160irvmhMF3znVO2ga4upo zC9HakHJcPJhex0w6fFAHTxWU4iFWCjlsn1v3jPFs9mzbRuAPDrjp8ejOnwVPbZuKVWw Ah1J+L9d1wiQxgB2NvzvNG4kLHuyxYaLNeYQum3yIsjL+gxNyMuslXVNFniaJ7jbJT4Y QW+Aj4iLsXxkQ0cLbCPG9GBQIP+fdezdn9mN+r4RdgPhCFGfV/Qn5Zs1DMakq5YaMkib xBCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193189; x=1692797989; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zuVG9z6rD8Z1emOxzWF+Wu0OPR+5zNm8bc9i/xho5n0=; b=QA605yz+lmXGwGe3oCVCnxH8xL2BfmCNfkWLRNJJdTky85Ko2k/1guUJOlNkQIXTEk knU0S1vnH7F7ize/SZSGDzyyaCzNBIQdYssenThcUOSd9Cmb361upbBPSjQhODaTGDU2 Cu2i4f8lQxhGBx5HTPbD2AG1/xwskLB5tcb5uXgYVxPoU5u9VXhKWre55oK5/LnhU0Uw nwlri8T9n477SPWtWYHSAGHoVY0KCMWR3nq6HwznAXJrgxFmDmFN8lCau43FoRjZ9r/1 YjCR++VgZCih6YemKcZA2HNFuy5sc+io1rswFlmBiHOPF+jBJKl0IXa/Z3TJSzRdFBJE Su0A== X-Gm-Message-State: AOJu0Yx6otaPESgfAXc7XQZ2rUToTtpUibM6ux7dMTUmJBcE4Uv0YfLA umrx2gZ9FGwx6z5cx8d+cnU= X-Google-Smtp-Source: AGHT+IEPuLNkCufxHrJfhz867CjjmhL9Y/QzQqqkZxRk6npZqHl4KzD/LbskCjEwCmQgYdkpITpgsQ== X-Received: by 2002:a17:902:ea0c:b0:1b2:676d:1143 with SMTP id s12-20020a170902ea0c00b001b2676d1143mr3272394plg.15.1692193189077; Wed, 16 Aug 2023 06:39:49 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id r2-20020a170902be0200b001bbbbda70ccsm13138970pls.158.2023.08.16.06.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:48 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 5/7] rtc: tps6586x: Report maximum alarm limit to rtc core Date: Wed, 16 Aug 2023 06:39:34 -0700 Message-Id: <20230816133936.2150294-6-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org tps6586x only supports alarms up to 16,383 seconds in the future. Report the limit to the RTC core. Cc: Brian Norris Signed-off-by: Guenter Roeck --- drivers/rtc/rtc-tps6586x.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/rtc/rtc-tps6586x.c b/drivers/rtc/rtc-tps6586x.c index 9f14e2475747..11f822d1b337 100644 --- a/drivers/rtc/rtc-tps6586x.c +++ b/drivers/rtc/rtc-tps6586x.c @@ -252,6 +252,7 @@ static int tps6586x_rtc_probe(struct platform_device *pdev) rtc->rtc->ops = &tps6586x_rtc_ops; rtc->rtc->range_max = (1ULL << 30) - 1; /* 30-bit seconds */ + rtc->rtc->range_max_offset = ALM1_VALID_RANGE_IN_SEC; rtc->rtc->start_secs = mktime64(2009, 1, 1, 0, 0, 0); rtc->rtc->set_start_time = true; From patchwork Wed Aug 16 13:39:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821797 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=DUz9cIY+; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5c1sgPz1yXZ for ; Wed, 16 Aug 2023 23:40:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245627AbjHPNkE (ORCPT ); Wed, 16 Aug 2023 09:40:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245613AbjHPNjv (ORCPT ); Wed, 16 Aug 2023 09:39:51 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2078AB9; Wed, 16 Aug 2023 06:39:51 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1bc0d39b52cso40934825ad.2; Wed, 16 Aug 2023 06:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193190; x=1692797990; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=gfkxgCro4+L45RC2QsVAG3wTRHrrj5/vZOr+R6i9gWw=; b=DUz9cIY+fwZ2URaZU3pCgx+LgQ6oNQI4z44tjyMxO0IxdmMXMSwoDiCqUaj/zDFH0l O/bjrvn7M9uZguMH6udcSjeBq9QWSavVweUwykwtgYyf60xQi9kScBH78i9FloiTKWKx 6jpTJY71jy1bbw/IQGWGYzuGJmgVL0cw+Z8SFzwnvQsDwuq3Tkwd9AyPX/dB6/2+6pf0 1D0eRbV9pFboS+Md2/SBZ4U6oS/ttaF+nNOnK4bIS+4OgosjmSh1lpJ6bl95/VufEltu EPR+aj4fj65RNtxSEisnrdKWIX9IScDR8gUnjaCf665WNZ122gUj2uaZ01YCLZTyReVe 5cNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193190; x=1692797990; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gfkxgCro4+L45RC2QsVAG3wTRHrrj5/vZOr+R6i9gWw=; b=RrLCgmeFPIMiPo+sAJGgvFF7ted19Gt23f8o5ozefsDOAKMsp0jgIVhVVll/mvLxbC LB2EmYtN9/p2TC7/OkUVLNjOfZLQ1vfIsMHYhTxWgBuiIFAjNCFIqfdJJCWacjlatZwh hE95hrcJ+MZzyxsvBgiF8QWabzXJLfA7CvDLobSgzTDre7aR9AhBye3Fuj36Rh7LJN5p 31190cEd0ulBBohlhXe2tRa4p7Ow31a/qzAiyF0/aU6ifNLwx7MBoAyPabW0cbVpUZ0P Esbe/uZN+khlS9+okXxqqV/u5VHqKqaeFYTP2HQn/Sf9qho8FvnEP149gcZYHmkAfTRc PuyQ== X-Gm-Message-State: AOJu0Yz5ErzLQvD283johkdX0CKW9qMm4HOI1S1Lx6kMxFNIk4nZ5fdM SuFAVQjZn2o9ThA5lGRpBjY= X-Google-Smtp-Source: AGHT+IFj6fQJuykGL8H52OYKdULc3bpM1hqabBo/wnKyxLuffi6wgNK/fMzNTtsy9xxHDq9AJm6PAg== X-Received: by 2002:a17:902:bc41:b0:1be:e8d4:19ae with SMTP id t1-20020a170902bc4100b001bee8d419aemr1668262plz.36.1692193190575; Wed, 16 Aug 2023 06:39:50 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id x20-20020a170902ea9400b001b9de67285dsm13203209plb.156.2023.08.16.06.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:50 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 6/7] rtc: ds1305: Report maximum alarm limit to rtc core Date: Wed, 16 Aug 2023 06:39:35 -0700 Message-Id: <20230816133936.2150294-7-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org DS1305 only supports alarms up to 24 hours in the future. Report the limit to the RTC core. If the alarm is too large when trying to set an alarm, return -ERANGE instead of -EDOM to align with error codes returned by other rtc drivers. Cc: Brian Norris Signed-off-by: Guenter Roeck --- drivers/rtc/rtc-ds1305.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c index ed9360486953..1d9bbf4e06cb 100644 --- a/drivers/rtc/rtc-ds1305.c +++ b/drivers/rtc/rtc-ds1305.c @@ -337,7 +337,7 @@ static int ds1305_set_alarm(struct device *dev, struct rtc_wkalrm *alm) if (later <= now) return -EINVAL; if ((later - now) > 24 * 60 * 60) - return -EDOM; + return -ERANGE; /* disable alarm if needed */ if (ds1305->ctrl[0] & DS1305_AEI0) { @@ -691,6 +691,7 @@ static int ds1305_probe(struct spi_device *spi) ds1305->rtc->ops = &ds1305_ops; ds1305->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; ds1305->rtc->range_max = RTC_TIMESTAMP_END_2099; + ds1305->rtc->range_max_offset = 24 * 60 * 60; ds1305_nvmem_cfg.priv = ds1305; status = devm_rtc_register_device(ds1305->rtc); From patchwork Wed Aug 16 13:39:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 1821799 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=ofao/P4C; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4RQq5c64BNz1yXY for ; Wed, 16 Aug 2023 23:40:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245603AbjHPNkE (ORCPT ); Wed, 16 Aug 2023 09:40:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245614AbjHPNjx (ORCPT ); Wed, 16 Aug 2023 09:39:53 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79718B9; Wed, 16 Aug 2023 06:39:52 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1bdbbede5d4so43268625ad.2; Wed, 16 Aug 2023 06:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692193192; x=1692797992; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=d76yf0kkuPRC+AKKl4TWbiPw6wxbxULc4AbwlRwABp4=; b=ofao/P4CjXWnKglZi97/m/ldfLwEYmeJpsXEgm7iicojJ3kBRebh/1vvCmwoBXXF/8 cSVzLXbJtOZlNzHGWCoDKIFPYKCWfPhcJndcZScTasqitnrju39Zcp5VtvhoTSC3byZ1 JiSAQf/ZsU9KrQ755WkaOAFsQA5WP6PIBDdw6nlC4yGn4jgf2i08f/F6RRNZrCJqa/FI Q3io3+ha2Jv5OcvQVkGTFP4hRDJsqHmWwJKj38gTx+M59Oqx17R4crASBxO154cFnFT8 eUKQAN67DT8g6cpuwgUPuB37j1fF19G9dTCyo/NdNpsHYLdtUUhmRy9pO6IB9Ei5NJaN y3JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692193192; x=1692797992; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=d76yf0kkuPRC+AKKl4TWbiPw6wxbxULc4AbwlRwABp4=; b=ORLiyIQr/0NJUbQFeOGuYVoNz/wMNzSewh+l3iy89qy+87Kry3AsIsVxvBZ7CT8/qy aBe1zPT0LXmpFZYDClZ8JA0RkkCBt6NDwfzbsh2CT2PJuh5TZxwWNKJYhwg9nOIsZ0Pi SEQoGvpWm+NXsWij64pGzUUYNWkJeUkkk6gan+tKl5/I+nVic6dTMBiXXqKnVEoY2kfp o2SJGOuLaLx51wIagddfpSx6hnCKAzBEnmXmCLAFTx+G5q0yrRJoY3tcaHABtja0QPwc o3FDIx6uJ09GO0+qmuHl2eijmcjdyiz35ejCuLtC8K5XIDxdY6q0Rgbzpa+/sxG6g65u oPlA== X-Gm-Message-State: AOJu0YytodPJ93WD9NMtowgKbmAJIEJWYC24TartIZgxNEovX5vN9urg zHLpYrcFw6O1QHeNUpd/djI= X-Google-Smtp-Source: AGHT+IFD5zg4/aOd5Hc54/80YC6ZfwUPWqQT0UFrjbGHBB+jwT4nylLCL6IFSKVOJfuFyOkdH3deNw== X-Received: by 2002:a17:902:c245:b0:1be:f53c:7d0e with SMTP id 5-20020a170902c24500b001bef53c7d0emr1326538plg.17.1692193191918; Wed, 16 Aug 2023 06:39:51 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id q23-20020a170902bd9700b001b03f208323sm13136251pls.64.2023.08.16.06.39.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Aug 2023 06:39:51 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Alexandre Belloni Cc: Alessandro Zummo , Benson Leung , Miquel Raynal , Thomas Gleixner , John Stultz , Stephen Boyd , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Norris , Guenter Roeck Subject: [PATCH 7/7] rtc: rzn1: Report maximum alarm limit to rtc core Date: Wed, 16 Aug 2023 06:39:36 -0700 Message-Id: <20230816133936.2150294-8-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230816133936.2150294-1-linux@roeck-us.net> References: <20230816133936.2150294-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org RZN1 only supports alarms up to one week in the future. Report the limit to the RTC core. Cc: Brian Norris Signed-off-by: Guenter Roeck Reviewed-by: Miquel Raynal --- drivers/rtc/rtc-rzn1.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/rtc/rtc-rzn1.c b/drivers/rtc/rtc-rzn1.c index dca736caba85..c2cc3774ebb8 100644 --- a/drivers/rtc/rtc-rzn1.c +++ b/drivers/rtc/rtc-rzn1.c @@ -351,6 +351,7 @@ static int rzn1_rtc_probe(struct platform_device *pdev) rtc->rtcdev->range_min = RTC_TIMESTAMP_BEGIN_2000; rtc->rtcdev->range_max = RTC_TIMESTAMP_END_2099; + rtc->rtcdev->range_max_offset = 7 * 86400; rtc->rtcdev->ops = &rzn1_rtc_ops; set_bit(RTC_FEATURE_ALARM_RES_MINUTE, rtc->rtcdev->features); clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->rtcdev->features);