mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-19 03:37:58 +07:00
drivers/rtc/rtc-ab8500.c: use UIE emulation
RTC: Fix to correct improper implementation of clock update irq (RTC_UIE) and enable UIE Emulation. [akpm@linux-foundation.org: checkpatch fixes] Signed-off-by: Ramesh Chandrasekaran <ramesh.chandrasekaran@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Cc: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
559a6fc050
commit
dc43d4a26b
drivers/rtc
@ -694,6 +694,7 @@ config RTC_DRV_AB3100
|
|||||||
config RTC_DRV_AB8500
|
config RTC_DRV_AB8500
|
||||||
tristate "ST-Ericsson AB8500 RTC"
|
tristate "ST-Ericsson AB8500 RTC"
|
||||||
depends on AB8500_CORE
|
depends on AB8500_CORE
|
||||||
|
select RTC_INTF_DEV_UIE_EMUL
|
||||||
help
|
help
|
||||||
Select this to enable the ST-Ericsson AB8500 power management IC RTC
|
Select this to enable the ST-Ericsson AB8500 power management IC RTC
|
||||||
support. This chip contains a battery- and capacitor-backed RTC.
|
support. This chip contains a battery- and capacitor-backed RTC.
|
||||||
|
@ -225,7 +225,8 @@ static int ab8500_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
|
|||||||
{
|
{
|
||||||
int retval, i;
|
int retval, i;
|
||||||
unsigned char buf[ARRAY_SIZE(ab8500_rtc_alarm_regs)];
|
unsigned char buf[ARRAY_SIZE(ab8500_rtc_alarm_regs)];
|
||||||
unsigned long mins, secs = 0;
|
unsigned long mins, secs = 0, cursec = 0;
|
||||||
|
struct rtc_time curtm;
|
||||||
|
|
||||||
if (alarm->time.tm_year < (AB8500_RTC_EPOCH - 1900)) {
|
if (alarm->time.tm_year < (AB8500_RTC_EPOCH - 1900)) {
|
||||||
dev_dbg(dev, "year should be equal to or greater than %d\n",
|
dev_dbg(dev, "year should be equal to or greater than %d\n",
|
||||||
@ -236,6 +237,18 @@ static int ab8500_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
|
|||||||
/* Get the number of seconds since 1970 */
|
/* Get the number of seconds since 1970 */
|
||||||
rtc_tm_to_time(&alarm->time, &secs);
|
rtc_tm_to_time(&alarm->time, &secs);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether alarm is set less than 1min.
|
||||||
|
* Since our RTC doesn't support alarm resolution less than 1min,
|
||||||
|
* return -EINVAL, so UIE EMUL can take it up, incase of UIE_ON
|
||||||
|
*/
|
||||||
|
ab8500_rtc_read_time(dev, &curtm); /* Read current time */
|
||||||
|
rtc_tm_to_time(&curtm, &cursec);
|
||||||
|
if ((secs - cursec) < 59) {
|
||||||
|
dev_dbg(dev, "Alarm less than 1 minute not supported\r\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert it to the number of seconds since 01-01-2000 00:00:00, since
|
* Convert it to the number of seconds since 01-01-2000 00:00:00, since
|
||||||
* we only have a small counter in the RTC.
|
* we only have a small counter in the RTC.
|
||||||
|
Loading…
Reference in New Issue
Block a user