From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A9BAC7112B for ; Thu, 17 Aug 2023 22:56:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355923AbjHQW4D (ORCPT ); Thu, 17 Aug 2023 18:56:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356014AbjHQWz7 (ORCPT ); Thu, 17 Aug 2023 18:55:59 -0400 Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66C7835A9; Thu, 17 Aug 2023 15:55:42 -0700 (PDT) Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-688731c6331so266544b3a.3; Thu, 17 Aug 2023 15:55:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312942; x=1692917742; 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=Afm+NiQNwJNxgSHXManGFdzn5pURQHFJTt32TcppGRs=; b=Qyi6pFUNh1WiwiFaT6NtB8p7aE8o7i4rTB8QYfHdMQ/sLh+XSnK6f17r3EM7sUwhBm PSA+Lw1/nH6QnJXHJO5b2JBdcugJB/CSCeLSrBdYZ0l8ZGyCy08FkCFTyG+zTzL5C8fj O2tEE1eD3wgL+ICyx8tgmCLAexobW8h+qBzyhv7Il8ECcofWNNgOy86Ekza3hlANGdVs sO8BsNRqtEpcvWskRb8YtO6YDe1sNyR21G7UkC0Y26eG49SqMj4Giw3wWz+dJZ6aglbW C76yOTNalvw8ehBCltWjEO3LNDo1cLiq/nZqAURLjGkRymCFH397a7dB03igx/QUiouW KPuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312942; x=1692917742; 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=Afm+NiQNwJNxgSHXManGFdzn5pURQHFJTt32TcppGRs=; b=UM6oLNAGt8UuIUYZzN9kLvDJtHPY61VaOrLDcSqC7yNmYSIhZyRINYdvxBeqdmFTKn jwKUTpWwri76jjqqFEwxudbV3jBpMJ6L1g4CuMoiFQx++2DZ4j3tSwibKWtrh2I8ZAR/ RvAJB0AWIYQ+RZLjRF984wC2I66tlriE9bEnTAX5ZYv2xnSZwuy10EXflJ4T5WTR5HXw /SvTor1FcV3JEMluAS3UUIg4D4AvYGNqDg6qrW0km2ZwQWw1H5/HAWggHclVrsToKSpU ezHzGjcxYCE2kx6i1KdsWwikKaYzz3tuuaz+IyuZTIgPWE2Yi1IwC9r/UyGj99vpnTw/ mwZA== X-Gm-Message-State: AOJu0YwonPwCWdvkyynoo7I2mJLyBhKU48u7SGq1gTHQIT8ediCZ/TMg 19aPKlV4f1NLQCoG095wjVg= X-Google-Smtp-Source: AGHT+IHXh5+8SBzcT5WXArnodjpAZ7fEmqjKq7ISWtld10M57mTeB1UG1Kpm+3MdJ8wt65OdEJxe4Q== X-Received: by 2002:a05:6a20:3d84:b0:135:4858:681 with SMTP id s4-20020a056a203d8400b0013548580681mr1423362pzi.9.1692312941837; Thu, 17 Aug 2023 15:55:41 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id a21-20020aa780d5000000b00689f10adef9sm275424pfn.67.2023.08.17.15.55.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55:41 -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 v2 1/7] rtc: Add support for limited alarm timer offsets Date: Thu, 17 Aug 2023 15:55:31 -0700 Message-Id: <20230817225537.4053865-2-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 --- v2: Rename range_max_offset -> alarm_offset_max include/linux/rtc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 1fd9c6a21ebe..4c0bcbeb1f00 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -146,6 +146,7 @@ struct rtc_device { =20 time64_t range_min; timeu64_t range_max; + timeu64_t alarm_offset_max; time64_t start_secs; time64_t offset_secs; bool set_start_time; --=20 2.39.2 From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A85F6C71134 for ; Thu, 17 Aug 2023 22:57:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355988AbjHQW4n (ORCPT ); Thu, 17 Aug 2023 18:56:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355931AbjHQW4E (ORCPT ); Thu, 17 Aug 2023 18:56:04 -0400 Received: from mail-oa1-x36.google.com (mail-oa1-x36.google.com [IPv6:2001:4860:4864:20::36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEA2535AD; Thu, 17 Aug 2023 15:55:44 -0700 (PDT) Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-1c5046642b4so153944fac.1; Thu, 17 Aug 2023 15:55:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312943; x=1692917743; 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=XfRFkZNYpcFtEpCJ6592jYz9YhXnTUHLdeGPiNrj2fk=; b=MXRCzbCTeWNzNbEDyd8SMiVUQsEtHfbcb6hBK9mJqHcFVGk3X1Cm8T6cZJsg4eap+5 xj2m86LAyvS6tMx3s0RSLf0LDwThu3a1V38VfwFhGQDfludVBQXo8Bj0vL8xUEEpBTm5 3g1puHO6TFf7goWKkmfUflJnt0dADKb5JwDmeamQ/muMRcYpe/bJ3dZR4n2wQkZumkDI 9gQmUZV1xwtBL8a6BIxlAUIkDsZThyQoVTfA+0qwuS5gketBeD4dk0MBsoBLRDtpfVp3 kJOAJnBQnSBkxXBysbcHxFlcE2y4FK+mfWONZRFT5F99JkqOEBW/69bsTVsl4BiOuvAh /C6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312943; x=1692917743; 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=XfRFkZNYpcFtEpCJ6592jYz9YhXnTUHLdeGPiNrj2fk=; b=FXGwI9Kwh/rEpLIdk++OHAmUobPPDXWv8ntqQhx29X4AJ8sWH0kYMY+HKQBf3z/DPr EMot4XsZTQaffbHXZ5GN1O+Al5MVSsq7jlUXLmWjsWU3HF8/YFTBVnvT62FF0SbiZH1Y aViL6bgKq5p0pECZnVOn2q+H1z9gW9S8TpBroSt064Em+ZIRnvwtl7y8XoxWRKVbfWwH iUYkrt/EkMLBWRWCtErdD2pqd1odkpfDgp/VbWf3smXEGrLFTwhtkf7OfL79gOeA32rW 2O32SA86+e/p09mc3LtI+ptoRKGrouFH3HpioBZB4Q1BLoTp/w3kod2BLUrHRj+bQAL8 W6lw== X-Gm-Message-State: AOJu0Yx0DK/HDO4o+85Bg+z4UHPBoXHb5L82eTXkLwrWN2VmuEzekZnr /IEBwm5w/gJDgCfJxl8MTsQ= X-Google-Smtp-Source: AGHT+IGecaZOASaYD6zXgLwsM0W8IL7sV2ZlDZ4eoU13hQxg2omBb9E8fKlB7FZOMNsQwyzsYT6sqQ== X-Received: by 2002:a05:6870:e304:b0:1c8:baa5:a50f with SMTP id z4-20020a056870e30400b001c8baa5a50fmr1043267oad.27.1692312943209; Thu, 17 Aug 2023 15:55:43 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id z15-20020a17090a014f00b0026d214a2b33sm1829850pje.7.2023.08.17.15.55.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55: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 v2 2/7] rtc: alarmtimer: Use maximum alarm time offset Date: Thu, 17 Aug 2023 15:55:32 -0700 Message-Id: <20230817225537.4053865-3-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 aft= er 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 --- v2: Rename range_max_offset -> alarm_offset_max kernel/time/alarmtimer.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 8d9f13d847f0..895e3a6d6444 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 =3D 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->alarm_offset_max && + rtc->alarm_offset_max * MSEC_PER_SEC < ktime_to_ms(min)) + min =3D ms_to_ktime(rtc->alarm_offset_max * MSEC_PER_SEC); + now =3D ktime_add(now, min); =20 /* Set alarm, if in the past reject suspend briefly to handle */ --=20 2.39.2 From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55238C71130 for ; Thu, 17 Aug 2023 22:57:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355932AbjHQW4g (ORCPT ); Thu, 17 Aug 2023 18:56:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355929AbjHQW4E (ORCPT ); Thu, 17 Aug 2023 18:56:04 -0400 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FF6B35B1; Thu, 17 Aug 2023 15:55:45 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-689f4fb1c29so251043b3a.0; Thu, 17 Aug 2023 15:55:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312945; x=1692917745; 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=LCpfZdhHwN0cJ+dKIsv8sSvOZjIO9PxxqA+4oQjnM2c=; b=ilxaw/kk+wQ56M9gruMq3WlbQMjm1mlNVsiS3TpqtyhI+7ws52oiYRWnDpo1TiEnoO NjAHeoLjz3bPI1N9II6wjG5JIN/6fFdZHpUcIdrm7XOACBuijD6CEu2YBKowx8y1WavM 9B6srPxqHmYx++F+X0MmUX8x7YFROoJA4jpK26jVUcsl9qBphNywWMeEmG+h7rpyW548 SUYB/aoOJC6ZryQn1CuLHKQUNLKxqDAhL23Dcn8Ws9viS7DHbHWSJoRmGuOnOWB92h3f heZH7AjuKz2kh3i0PpnoSHNBbvN5lRuFWp4rHPErmQR12jefTMSMemuIswI1+jzxuC1D 3nsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312945; x=1692917745; 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=LCpfZdhHwN0cJ+dKIsv8sSvOZjIO9PxxqA+4oQjnM2c=; b=CVqJG7zf1N4clVI/5L29azsuRxhkAwIlPu029tAbKowjJuTBByEWO93foJahaBPDAw M1A1hH81Wb6/L8jMo1LPXebCvAEV9pOYFAhJtzQcvw7v4yI1wdWIZ7CzyzavRXFvgOlz SYFSiTRjtc5Hjbg9hXSOS1NgiYMFzMo8u+yOrYGKsCC5k2af/PJnLZU2vY0/naUNshVo sAf8oGlKiw+BAzs7NjrGfvyDofcrX3t0RBsuVPqV5q/lrtGtNW81DGNA3LsYuh7IKwM6 zeHQNizN2lznNmLu/bE1gGC1acgd5G+9iUhAhxp5jAJ5FHpkeDHsgZGBQfTqNEbbNqxX thAQ== X-Gm-Message-State: AOJu0Yw2CwPhLgwHvfSXx+YG5JlTG43h9zbT4juF2bRE36ZoEkt6ENhB 5GjsX38VHpUtJv6CmmnprkcMpDkMXl8= X-Google-Smtp-Source: AGHT+IETSID4NTxh1GiMk0DRJbSIuuhVaQubNKekj5/hyAnYhj29A0UccByf7pSk/0VFXkGd5NbmDA== X-Received: by 2002:a62:87c2:0:b0:688:66e0:2ea2 with SMTP id i185-20020a6287c2000000b0068866e02ea2mr4526903pfe.14.1692312944557; Thu, 17 Aug 2023 15:55:44 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id x8-20020aa793a8000000b00640ddad2e0dsm273722pff.47.2023.08.17.15.55.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55: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 v2 3/7] rtc: cros-ec: Detect and report supported alarm window size Date: Thu, 17 Aug 2023 15:55:33 -0700 Message-Id: <20230817225537.4053865-4-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 --- v2: Rename range_max_offset -> alarm_offset_max 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..0cd397c04ff0 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) =20 ret =3D cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, alarm_offset); if (ret < 0) { - if (ret =3D=3D -EINVAL && alarm_offset >=3D 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 =3D 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 =3D=3D -EINVAL) + ret =3D -ERANGE; + return ret; } =20 return 0; @@ -355,6 +349,20 @@ static int cros_ec_rtc_probe(struct platform_device *p= dev) cros_ec_rtc->rtc->ops =3D &cros_ec_rtc_ops; cros_ec_rtc->rtc->range_max =3D U32_MAX; =20 + /* + * 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 =3D cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, SECS_PER_DAY * 2); + if (ret =3D=3D -EINVAL) + cros_ec_rtc->rtc->alarm_offset_max =3D SECS_PER_DAY - 1; + + (void)cros_ec_rtc_set(cros_ec, EC_CMD_RTC_SET_ALARM, + EC_RTC_ALARM_CLEAR); + ret =3D devm_rtc_register_device(cros_ec_rtc->rtc); if (ret) return ret; --=20 2.39.2 From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7A42BC71132 for ; Thu, 17 Aug 2023 22:57:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355964AbjHQW4l (ORCPT ); Thu, 17 Aug 2023 18:56:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355935AbjHQW4F (ORCPT ); Thu, 17 Aug 2023 18:56:05 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E4BB3A86; Thu, 17 Aug 2023 15:55:46 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1bee82fab5aso2700275ad.3; Thu, 17 Aug 2023 15:55:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312946; x=1692917746; 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=oBswWeic/lo4KfdmWov/kNdO9T86copP+2hJMykbXoU=; b=SkFvGImlqWNj7k34nqFQ0h98ZUGV0d/dBxQ/TCfwPQJFUW2xvaBQgORu9wRoxqFTB6 zj4mWDkCrU6t3meRpjTUmUsmnC/sDXkqoFesuLocHt005vmRQzOI40MQjQRN1JC60wZX d4+KusfOGcATN9sZliVHVD9vHGAq6gkSByL/plmCiNElMXC27/BO0p/Rw1eKjQbzkd/l pP6bdRd23JTnGMGW3Bs/M+I5Xr0yMyAKxvSvLJDaH7SS0d9aRy7f+RgAvUmQFMVmVvKi 8ZFBeDdf+8WvG3+1F15iL1eATbVw2c7gi4Ew7+Gy7v0vcqLLv6w4NDH27+RqQ31s07GG SqYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312946; x=1692917746; 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=oBswWeic/lo4KfdmWov/kNdO9T86copP+2hJMykbXoU=; b=axFT9YhWC+w1W3VQyC2GB7EdrUBtRE2UC3L6++ql16Ye6Y5HChH5zTJCIzmQdhN+fu Np1CX+TazP4L2mpQlJzAVPkxRe3D7XLuiBN3foD3HO+UTxOBwqS5nBEFpgfZONTmp1NP MNIo+Ak23JIwuWZlA68Sss6dGTuqSes+HgNRZjE9TvZBfi38D8Vp1lXYc+qBySEgn/il 3DLJ/tccTbgTes4JuIjuBPkTTFYvRPlPAzatO84gXe5rriojEpIvS5hiUy8YrkR6wj8l 9pHNV6zMGfKKi0M1ay+sfKbqKZpg+nECCsv9dHdw6frUfiaLdTkISCzQRZlroKwhFQOF 3VhQ== X-Gm-Message-State: AOJu0YzE04bf7WgA+FZZFrdywM87N9EmcuNr+JzPMujSDqEcASTS5e14 U5YXvj0Hbi/r0MD8caJ2FSE= X-Google-Smtp-Source: AGHT+IH/z7EPJYgQZK9t5l7bkg+hRtsW1dDieYTbI0lqpjOZ7BlFEpRYNW6bHMH6bWrXqay6elvAPQ== X-Received: by 2002:a17:902:b783:b0:1b8:8dbd:e1a0 with SMTP id e3-20020a170902b78300b001b88dbde1a0mr807488pls.13.1692312945903; Thu, 17 Aug 2023 15:55:45 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id iz22-20020a170902ef9600b001b9da42cd7dsm282552plb.279.2023.08.17.15.55.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55: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 v2 4/7] rtc: cmos: Report supported alarm limit to rtc infrastructure Date: Thu, 17 Aug 2023 15:55:34 -0700 Message-Id: <20230817225537.4053865-5-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 --- v2: Rename range_max_offset -> alarm_offset_max 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..228fb2d11c70 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 d= evice *dev, #define INITSECTION __init #endif =20 +#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 *p= orts, int rtc_irq) goto cleanup0; } =20 + if (cmos_rtc.mon_alrm) + cmos_rtc.rtc->alarm_offset_max =3D SECS_PER_YEAR - 1; + else if (cmos_rtc.day_alrm) + cmos_rtc.rtc->alarm_offset_max =3D SECS_PER_MONTH - 1; + else + cmos_rtc.rtc->alarm_offset_max =3D SECS_PER_DAY - 1; + rename_region(ports, dev_name(&cmos_rtc.rtc->dev)); =20 if (!mc146818_does_rtc_work()) { --=20 2.39.2 From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 64710C71133 for ; Thu, 17 Aug 2023 22:57:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355944AbjHQW4i (ORCPT ); Thu, 17 Aug 2023 18:56:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355938AbjHQW4H (ORCPT ); Thu, 17 Aug 2023 18:56:07 -0400 Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AEE983592; Thu, 17 Aug 2023 15:55:47 -0700 (PDT) Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1bdc19b782aso2721895ad.0; Thu, 17 Aug 2023 15:55:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312947; x=1692917747; 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=MTlnm6sGIO31jUGXUD0CO65f2YiL6ybxcsMLmHiDeHU=; b=kwlm7mNhxTgprppiKt7Pvjl1pFLb5htxS+x3HzcvYrhNovyMFHGVCvlMGSWusXGkXs 2jGxl8bnzrbEkrEqrt1+IDWh4VroLHYpInimpsCWCb2nAK/WcXBF6iynFxVtHSV1RAf/ yCOm1qAPxdGASYIxKVdp2uORGTmQ2lCg2I88BOKJWkZRk01qeguSAH4HABEjPZ4rq+R3 y1AbcPXaCccPPYyEzpl+1h4KuvzlXvGYFaczGtk89OTAi2H0WJqJTE0K2L5/JqAtDO8K 3olNb9zkqfHiXQAt/QXW2aPxuB18SVxMRvbIFTntlnsRsqkf/jbe7w+V1KLt6Mxx6XJq niOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312947; x=1692917747; 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=MTlnm6sGIO31jUGXUD0CO65f2YiL6ybxcsMLmHiDeHU=; b=cS72ZSjFR7DvEvFDjG59DqhYYjt+FwWMXRx9mbwMzI9znX5LsMfyTTWG1gH4dvoe/0 GWQImAbeHLmGR4n2A6wvuqOFNxgj0vbQCVvP4ayu0pgVtqO0CwAycWER4zonx24rAkww h/27SMFwoldYDAsd7ogYpZ8LcGViqCRZhiXxDYtyX7e1HSWT5cSJz43n9/TxwKSoUhuC w/QYOyW3PxWfvAhcGegYeYuhizD8T6rp6OJIN/HJvuqWI4AmVo2Yc0kSd3saVwwmUIJc H69Vnw6qcnTP0OwzKIKieeHvJtPGjgPtsjv/wFTgD8dL0YyU1JXMwemXyAE491NOrXGZ 2Shw== X-Gm-Message-State: AOJu0YxXPlMAq1ng8+q9RikSNFgnn+YkK8fnBtyTN7reK4mggKeN7Tq5 RzGkBkHadAomeYXTkMbdNgY= X-Google-Smtp-Source: AGHT+IFn+oYy10wGoisjfnlfb0srVFvmaNBXWiaTt2UPVed+845FW9/w9Oa4qB0bN7y41x6tmth99g== X-Received: by 2002:a17:903:2644:b0:1b5:5059:e733 with SMTP id je4-20020a170903264400b001b55059e733mr705405plb.17.1692312947173; Thu, 17 Aug 2023 15:55:47 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id j15-20020a170902da8f00b001bba7aab826sm287927plx.163.2023.08.17.15.55.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55:46 -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 v2 5/7] rtc: tps6586x: Report maximum alarm limit to rtc core Date: Thu, 17 Aug 2023 15:55:35 -0700 Message-Id: <20230817225537.4053865-6-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 --- v2: Rename range_max_offset -> alarm_offset_max 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..20faf08c254c 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 *p= dev) =20 rtc->rtc->ops =3D &tps6586x_rtc_ops; rtc->rtc->range_max =3D (1ULL << 30) - 1; /* 30-bit seconds */ + rtc->rtc->alarm_offset_max =3D ALM1_VALID_RANGE_IN_SEC; rtc->rtc->start_secs =3D mktime64(2009, 1, 1, 0, 0, 0); rtc->rtc->set_start_time =3D true; =20 --=20 2.39.2 From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98C69C71136 for ; Thu, 17 Aug 2023 22:57:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355993AbjHQW4o (ORCPT ); Thu, 17 Aug 2023 18:56:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355940AbjHQW4I (ORCPT ); Thu, 17 Aug 2023 18:56:08 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2EB823594; Thu, 17 Aug 2023 15:55:49 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1bf1935f6c2so2389855ad.1; Thu, 17 Aug 2023 15:55:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312948; x=1692917748; 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=t6uAKnykE3/ora4oCsRY4juR6xwaJtjAdt7QYyhHpdk=; b=dc79vIJ/WE76Iq/R8Hs//FI+ZVKEBsQG/wRy6+H3AS3pjo5mxFFWHPjcr+uC0+9SZV O0LQHcTD3LaoAcJ3St+DFoNawCOow0fdMF3SRtxiPJ9LZs+SfXyloexmeYD7u8PT+qe5 ExTUHE80thV6RImHv4GQ4Q+yZWDYLfY6SMn8JhfSFqPDvcFDDBRBfEkwMNlFnCnKMGrb SCovuXYCH6b4HOa99WCrHQppVyzffxzYRU7Ftvjg+gKXfizlWEEYIflT24IiVYnJHoCe B2rAkPP4XBKm3+GzAzPYWryR2jorrEye1wj079OmczNuBlIligdNxkV4zjD+MGp0+nw5 9MlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312948; x=1692917748; 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=t6uAKnykE3/ora4oCsRY4juR6xwaJtjAdt7QYyhHpdk=; b=b7421w9u12KkF4Rw7/Up4PtVSIeeAM9KhxA5A72E6vtZhjoYdNU2kYFkUtFRW2yx/G cHIQDxhdXyCMeu4UUKiHy4UL3tSXoBZTEM1T6CZTAXrowN1k3BZg2CkOsJWEHsQJFZTb tBsgVpSSy/h5joV6360sIFB+eEYAM6HNwO4eRS5eNd0D1iNdPMSNkBlMzPGF7KNqtDaU XKLWEGhAUrCRNqXTFRNaIRNsXJ9qDr+q2gTn3dNj6k8q/YZ+m5ce5qfIZsgkcSz5D5lk 5t26SqQ4X9cPUjG0mgbXUdTIDRejHQ+bS9j9Bzx5kyC6BfECqwKNmaLfCUEHXIcYPgNx p2ZA== X-Gm-Message-State: AOJu0YzKYXQiIoXt+eDGUL6Ss6eAHpzV/RrSwJBOPfhK4fDzkbCEGiPo ep2vUMX00+ZNPim3c5SlykA= X-Google-Smtp-Source: AGHT+IHxHgBCh+okSlstB38ITdbHEzRb7AOaLFKIZ6UTfREW8hAnGtFjaVRP6mnij4jiZY9TIvb8Sw== X-Received: by 2002:a17:902:f0c4:b0:1bb:cd5a:ba53 with SMTP id v4-20020a170902f0c400b001bbcd5aba53mr3814702pla.14.1692312948529; Thu, 17 Aug 2023 15:55:48 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id y23-20020a170902b49700b001bb9aadfb04sm282269plr.220.2023.08.17.15.55.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55: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 v2 6/7] rtc: ds1305: Report maximum alarm limit to rtc core Date: Thu, 17 Aug 2023 15:55:36 -0700 Message-Id: <20230817225537.4053865-7-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" DS1305 only supports alarms up to 24 hours in the future. Report the limit to the RTC core, and use the reported limit to validate the requested alarm time when setting it. 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 --- v2: Rename range_max_offset -> alarm_offset_max Use the new variable to validate the limit when setting the alarm drivers/rtc/rtc-ds1305.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c index ed9360486953..d4de401548b4 100644 --- a/drivers/rtc/rtc-ds1305.c +++ b/drivers/rtc/rtc-ds1305.c @@ -336,8 +336,8 @@ static int ds1305_set_alarm(struct device *dev, struct = rtc_wkalrm *alm) /* make sure alarm fires within the next 24 hours */ if (later <=3D now) return -EINVAL; - if ((later - now) > 24 * 60 * 60) - return -EDOM; + if ((later - now) > ds1305->rtc->alarm_offset_max) + return -ERANGE; =20 /* 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 =3D &ds1305_ops; ds1305->rtc->range_min =3D RTC_TIMESTAMP_BEGIN_2000; ds1305->rtc->range_max =3D RTC_TIMESTAMP_END_2099; + ds1305->rtc->alarm_offset_max =3D 24 * 60 * 60; =20 ds1305_nvmem_cfg.priv =3D ds1305; status =3D devm_rtc_register_device(ds1305->rtc); --=20 2.39.2 From nobody Wed Dec 17 21:06:44 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C9968C7113B for ; Thu, 17 Aug 2023 22:57:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356004AbjHQW4p (ORCPT ); Thu, 17 Aug 2023 18:56:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355946AbjHQW4K (ORCPT ); Thu, 17 Aug 2023 18:56:10 -0400 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9032A3A82; Thu, 17 Aug 2023 15:55:50 -0700 (PDT) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1bee82fad0fso2595255ad.2; Thu, 17 Aug 2023 15:55:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692312950; x=1692917750; 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=jjEQDL946xgGUJAzfsyFPr1apPg18WStQIZsR3DmfU4=; b=sxBOeW/rizPWbjiPLMxAk5U9+4S7kA+IKo6PLdUGh1nAHynXu4Cy98YcoPELIZdFpM 276r7Da3Z/NCExbqCfse6c5yqCfmSY/+XBpfNHwtcW67b80qmoaRXMx9SSOHSGypTo9C FLB+t7UId0qW5QYNzVgQCcFFtHKe3dhOLAoY0a5dj85fuEh8n13f/bbFS2xpMCm3VC8N LZMxUKxU9vkv/QPDRLgAMkUHKJCYWoqqeVX6IDEwbjjto43yrexm64v+1r61p7xBdzAP DsPkz6+YPq9sm4BHuFaOCj/TRVxZIZajyb9fpizanZwswt1/r5rZOnSn0I/XcV8IUMFg mh0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692312950; x=1692917750; 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=jjEQDL946xgGUJAzfsyFPr1apPg18WStQIZsR3DmfU4=; b=RJMz+XnqRRVW7HpAzrdBZijcaShzWksbCHA7PI8x2flnpPlgdktjEmztZx6xIyi3Ab L0h2dz7zVOnMQn1vGO90Ic+W+5S+G79khNQwy+q0SKj3wiq1HyXjHB0YW8lRKE0FLPut 4FnyG0kCsI3uqar2YWv+lYIZNKhDkH3J2Ti8e4FJDSdcKO/WphXG1E395dum38YT/zR9 UIneOWrDHwhMt6z74aYoswn8O/8nh06bf0tR+EcIqQPgyTgRLiqF118RP/i1hygvoiUO 43/9Gc4SwDQmhYAk5kM9+368c091hOsO5r1I/UAv0ljtiusVPv7VJNRox9YoXSaA9NRh ioig== X-Gm-Message-State: AOJu0YxkH5cvOJKu5poL4AzSOuUT3PxO+0dNWYoTNv5GxNBCmza7HCVx Nbw2tKJKWBFYGmo7osKb/NI= X-Google-Smtp-Source: AGHT+IG/Wnfiq+DYaLHKd8m6+SMPhdUy5ef7fWwjXDlFsqmmnP7r8TZ8PYH3y/sXF8epkg0ER55x/Q== X-Received: by 2002:a17:902:d38d:b0:1bf:3094:32eb with SMTP id e13-20020a170902d38d00b001bf309432ebmr828426pld.50.1692312949935; Thu, 17 Aug 2023 15:55:49 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id q6-20020a170902a3c600b001bbd8cf6b57sm294962plb.230.2023.08.17.15.55.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Aug 2023 15:55:49 -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 v2 7/7] rtc: rzn1: Report maximum alarm limit to rtc core Date: Thu, 17 Aug 2023 15:55:37 -0700 Message-Id: <20230817225537.4053865-8-linux@roeck-us.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230817225537.4053865-1-linux@roeck-us.net> References: <20230817225537.4053865-1-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" RZN1 only supports alarms up to one week in the future. Report the limit to the RTC core and use the reported limit to validate the requested alarm time when setting it. Cc: Brian Norris Signed-off-by: Guenter Roeck Reviewed-by: Miquel Raynal --- v2: Rename range_max_offset -> alarm_offset_max Use the new variable to validate the limit when setting the alarm drivers/rtc/rtc-rzn1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-rzn1.c b/drivers/rtc/rtc-rzn1.c index dca736caba85..c0f448bce145 100644 --- a/drivers/rtc/rtc-rzn1.c +++ b/drivers/rtc/rtc-rzn1.c @@ -227,7 +227,7 @@ static int rzn1_rtc_set_alarm(struct device *dev, struc= t rtc_wkalrm *alrm) return ret; =20 /* We cannot set alarms more than one week ahead */ - farest =3D rtc_tm_to_time64(&tm_now) + (7 * 86400); + farest =3D rtc_tm_to_time64(&tm_now) + rtc->rtcdev->alarm_offset_max; alarm =3D rtc_tm_to_time64(tm); if (time_after(alarm, farest)) return -ERANGE; @@ -351,6 +351,7 @@ static int rzn1_rtc_probe(struct platform_device *pdev) =20 rtc->rtcdev->range_min =3D RTC_TIMESTAMP_BEGIN_2000; rtc->rtcdev->range_max =3D RTC_TIMESTAMP_END_2099; + rtc->rtcdev->alarm_offset_max =3D 7 * 86400; rtc->rtcdev->ops =3D &rzn1_rtc_ops; set_bit(RTC_FEATURE_ALARM_RES_MINUTE, rtc->rtcdev->features); clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->rtcdev->features); --=20 2.39.2