Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752793AbbKALm3 (ORCPT ); Sun, 1 Nov 2015 06:42:29 -0500 Received: from mail-pa0-f53.google.com ([209.85.220.53]:33956 "EHLO mail-pa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751453AbbKALmZ (ORCPT ); Sun, 1 Nov 2015 06:42:25 -0500 Subject: Re: [PATCH v2] rtc: rtc-s3c: Set year, month, day value for setting alarm To: Alessandro Zummo , Alexandre Belloni , rtc-linux@googlegroups.com, linux-kernel@vger.kernel.org References: <1446378002-8343-1-git-send-email-k.kozlowski.k@gmail.com> Cc: Donggeun Kim , MyungJoo Ham , KyungMin Park From: Krzysztof Kozlowski Message-ID: <5635FA9C.6020206@gmail.com> Date: Sun, 1 Nov 2015 20:42:20 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1446378002-8343-1-git-send-email-k.kozlowski.k@gmail.com> Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2702 Lines: 77 W dniu 01.11.2015 o 20:40, Krzysztof Kozlowski pisze: > From: Donggeun Kim > > This patch sets year, month, day value for set_alarm function. > The current driver omits to set the values. > > This fixes setting wake alarm for dates different than current day. > Without the patch the alarm scheduled for tomorrow would fire today on > chosen time. > > Signed-off-by: Donggeun Kim > Signed-off-by: MyungJoo Ham > Signed-off-by: KyungMin Park > [k.kozlowski: Rebase and test the patch, update commit message] > Signed-off-by: Krzysztof Kozlowski > --- > drivers/rtc/rtc-s3c.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c > index 7cc8f73a3fe8..5604ebbef222 100644 > --- a/drivers/rtc/rtc-s3c.c > +++ b/drivers/rtc/rtc-s3c.c > @@ -149,6 +149,7 @@ static int s3c_rtc_setfreq(struct s3c_rtc *info, int freq) > if (!is_power_of_2(freq)) > return -EINVAL; > > + WARN_ON(1); Ehhh, this is debug. Sorry for the noise. These emails: dg77.kim@samsung.com and myungjoo.kim@samsung.com do not exist anymore. I'll replace the author with myself in that case. Best regards, Krzysztof > spin_lock_irq(&info->pie_lock); > > if (info->data->set_freq) > @@ -302,6 +303,7 @@ static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) > struct s3c_rtc *info = dev_get_drvdata(dev); > struct rtc_time *tm = &alrm->time; > unsigned int alrm_en; > + int year = tm->tm_year - 100; > > dev_dbg(dev, "s3c_rtc_setalarm: %d, %04d.%02d.%02d %02d:%02d:%02d\n", > alrm->enabled, > @@ -328,6 +330,21 @@ static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) > writeb(bin2bcd(tm->tm_hour), info->base + S3C2410_ALMHOUR); > } > > + if (year < 100 && year >= 0) { > + alrm_en |= S3C2410_RTCALM_YEAREN; > + writeb(bin2bcd(year), info->base + S3C2410_ALMYEAR); > + } > + > + if (tm->tm_mon < 12 && tm->tm_mon >= 0) { > + alrm_en |= S3C2410_RTCALM_MONEN; > + writeb(bin2bcd(tm->tm_mon + 1), info->base + S3C2410_ALMMON); > + } > + > + if (tm->tm_mday <= 31 && tm->tm_mday >= 1) { > + alrm_en |= S3C2410_RTCALM_DAYEN; > + writeb(bin2bcd(tm->tm_mday), info->base + S3C2410_ALMDATE); > + } > + > dev_dbg(dev, "setting S3C2410_RTCALM to %08x\n", alrm_en); > > writeb(alrm_en, info->base + S3C2410_RTCALM); > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/