mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
rtc: s3c: Set year, month, day value for setting alarm
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 <[email protected]> Signed-off-by: MyungJoo Ham <[email protected]> Signed-off-by: KyungMin Park <[email protected]> [k.kozlowski: Rebase and test the patch, update commit message] Signed-off-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Alexandre Belloni <[email protected]>
This commit is contained in:
parent
62c8c20af9
commit
fb4ac3c14b
1 changed files with 16 additions and 0 deletions
|
|
@ -302,6 +302,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 +329,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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue