Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp4175546pxb; Tue, 17 Nov 2020 13:24:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJxLt5cT8duxKMdAKkni0v6OkDQKwC4ble8yDqZOkY244mlKMmVZlm28EjUNUtZKSy3faKBo X-Received: by 2002:a50:da08:: with SMTP id z8mr22006181edj.170.1605648271956; Tue, 17 Nov 2020 13:24:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605648271; cv=none; d=google.com; s=arc-20160816; b=CjQwaB0jga8niYOo7p75+TuxmFIzOVcenIycnoBafKE2jAZ4SBfesx9VKg1XXdScGX SoYH+WPcsNO/9+ruZtAcYku9lJKaJZciC8eAW4ffZI4kZHZjtlek9epxqx8by/UWhPZg sAzCg1gER7NU4W+2b5nuSi+8e2AKmuDNggDp4HfFuZAhHHxDPvISqUC/m5VAPmWPumzB 35HeDxn05zDt+RFL2oj6Sya4WqQpdele4cp/ffl8/Ot/W9m+Q9oARXGc7yIUnxpnOYVH 0k5pl/FgAZ2jNsDEeMl9gjRMa2HeL39cYqJz8smhtA8be/mHb0+Acfa5S2v+PgNQ6SDD 3PWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=JFzgRQhqmBo0krTAO9Oc7BxqHZ3ADjRjo8kstcQA/Nk=; b=oD/IQwruJSrFOQ2eMYxfuvt6rMBx+BuXfDg5c/5DJHd3z2JSQF1vXWflF5bxO3pQMv sGifqNoGIC9b3rc+3uba5dC3KLJtcnPjiXi6SbQEy/NyOFdjeFsdud5p+lnKLEi/t0Eg zyLO7JYAqO3NL1g57D08xBfLx8mx41T6xTzez+ADM0huXjokx9nIoLahBFuWkylUvBCl /C01uBiSoOjIGYnS87Atyy6k+n546gADMiOHMTunLdva4ApsAJmSJSOvgPeKEUyMbcbF DfUfB2eSlmdanFQR3AuJgY5y9ahsBqJU/Aw0cgLYMBbNa07uWgxeGj4+FKTyI5b6BEe1 sdoA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n3si16962228eda.283.2020.11.17.13.24.10; Tue, 17 Nov 2020 13:24:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727257AbgKQVWU (ORCPT + 99 others); Tue, 17 Nov 2020 16:22:20 -0500 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:50137 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726035AbgKQVWT (ORCPT ); Tue, 17 Nov 2020 16:22:19 -0500 X-Originating-IP: 86.194.74.19 Received: from localhost (lfbn-lyo-1-997-19.w86-194.abo.wanadoo.fr [86.194.74.19]) (Authenticated sender: alexandre.belloni@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 56F93FF802; Tue, 17 Nov 2020 21:22:17 +0000 (UTC) From: Alexandre Belloni To: Alessandro Zummo , Alexandre Belloni , Orson Zhai , Baolin Wang , Chunyan Zhang Cc: Bartosz Golaszewski , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] rtc: sc27xx: Always read normal alarm Date: Tue, 17 Nov 2020 22:22:01 +0100 Message-Id: <20201117212201.1288608-1-alexandre.belloni@bootlin.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The RTC core only reads the alarm from the hardware at boot time, to know whether an alarm was already set before booting. It keeps track of all the alarms after that so there is no need to ever read the auxiliary alarm. Commit 3822d1bb0df1 ("rtc: sc27xx: Always read normal alarm when registering RTC device") already effectively removed the capability to read the auxiliary alarm a .read_alarm is always called with rtc->registered set to false. Signed-off-by: Alexandre Belloni --- drivers/rtc/rtc-sc27xx.c | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c index 6e65f68ea86d..a953bc0a5a5b 100644 --- a/drivers/rtc/rtc-sc27xx.c +++ b/drivers/rtc/rtc-sc27xx.c @@ -299,33 +299,6 @@ static int sprd_rtc_set_secs(struct sprd_rtc *rtc, enum sprd_rtc_reg_types type, sts_mask); } -static int sprd_rtc_read_aux_alarm(struct device *dev, struct rtc_wkalrm *alrm) -{ - struct sprd_rtc *rtc = dev_get_drvdata(dev); - time64_t secs; - u32 val; - int ret; - - ret = sprd_rtc_get_secs(rtc, SPRD_RTC_AUX_ALARM, &secs); - if (ret) - return ret; - - rtc_time64_to_tm(secs, &alrm->time); - - ret = regmap_read(rtc->regmap, rtc->base + SPRD_RTC_INT_EN, &val); - if (ret) - return ret; - - alrm->enabled = !!(val & SPRD_RTC_AUXALM_EN); - - ret = regmap_read(rtc->regmap, rtc->base + SPRD_RTC_INT_RAW_STS, &val); - if (ret) - return ret; - - alrm->pending = !!(val & SPRD_RTC_AUXALM_EN); - return 0; -} - static int sprd_rtc_set_aux_alarm(struct device *dev, struct rtc_wkalrm *alrm) { struct sprd_rtc *rtc = dev_get_drvdata(dev); @@ -415,16 +388,9 @@ static int sprd_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) u32 val; /* - * Before RTC device is registered, it will check to see if there is an - * alarm already set in RTC hardware, and we always read the normal - * alarm at this time. - * - * Or if aie_timer is enabled, we should get the normal alarm time. - * Otherwise we should get auxiliary alarm time. + * The RTC core checks to see if there is an alarm already set in RTC + * hardware, and we always read the normal alarm at this time. */ - if (rtc->rtc && rtc->rtc->registered && rtc->rtc->aie_timer.enabled == 0) - return sprd_rtc_read_aux_alarm(dev, alrm); - ret = sprd_rtc_get_secs(rtc, SPRD_RTC_ALARM, &secs); if (ret) return ret; -- 2.28.0