Commit be76865d authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'rtc-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux

Pull RTC fixes from Alexandre Belloni:

 - Various alarm fixes for da9063, cros-ec and sh

 - sd3078 manufacturer name fix as this was introduced this cycle

* tag 'rtc-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  rtc: da9063: set uie_unsupported when relevant
  rtc: sd3078: fix manufacturer name
  rtc: sh: Fix invalid alarm warning for non-enabled alarm
  rtc: cros-ec: Fail suspend/resume if wake IRQ can't be configured
parents f654f0fc 882c5e55
...@@ -667,9 +667,9 @@ config RTC_DRV_S5M ...@@ -667,9 +667,9 @@ config RTC_DRV_S5M
will be called rtc-s5m. will be called rtc-s5m.
config RTC_DRV_SD3078 config RTC_DRV_SD3078
tristate "ZXW Crystal SD3078" tristate "ZXW Shenzhen whwave SD3078"
help help
If you say yes here you get support for the ZXW Crystal If you say yes here you get support for the ZXW Shenzhen whwave
SD3078 RTC chips. SD3078 RTC chips.
This driver can also be built as a module. If so, the module This driver can also be built as a module. If so, the module
......
...@@ -298,7 +298,7 @@ static int cros_ec_rtc_suspend(struct device *dev) ...@@ -298,7 +298,7 @@ static int cros_ec_rtc_suspend(struct device *dev)
struct cros_ec_rtc *cros_ec_rtc = dev_get_drvdata(&pdev->dev); struct cros_ec_rtc *cros_ec_rtc = dev_get_drvdata(&pdev->dev);
if (device_may_wakeup(dev)) if (device_may_wakeup(dev))
enable_irq_wake(cros_ec_rtc->cros_ec->irq); return enable_irq_wake(cros_ec_rtc->cros_ec->irq);
return 0; return 0;
} }
...@@ -309,7 +309,7 @@ static int cros_ec_rtc_resume(struct device *dev) ...@@ -309,7 +309,7 @@ static int cros_ec_rtc_resume(struct device *dev)
struct cros_ec_rtc *cros_ec_rtc = dev_get_drvdata(&pdev->dev); struct cros_ec_rtc *cros_ec_rtc = dev_get_drvdata(&pdev->dev);
if (device_may_wakeup(dev)) if (device_may_wakeup(dev))
disable_irq_wake(cros_ec_rtc->cros_ec->irq); return disable_irq_wake(cros_ec_rtc->cros_ec->irq);
return 0; return 0;
} }
......
...@@ -480,6 +480,13 @@ static int da9063_rtc_probe(struct platform_device *pdev) ...@@ -480,6 +480,13 @@ static int da9063_rtc_probe(struct platform_device *pdev)
da9063_data_to_tm(data, &rtc->alarm_time, rtc); da9063_data_to_tm(data, &rtc->alarm_time, rtc);
rtc->rtc_sync = false; rtc->rtc_sync = false;
/*
* TODO: some models have alarms on a minute boundary but still support
* real hardware interrupts. Add this once the core supports it.
*/
if (config->rtc_data_start != RTC_SEC)
rtc->rtc_dev->uie_unsupported = 1;
irq_alarm = platform_get_irq_byname(pdev, "ALARM"); irq_alarm = platform_get_irq_byname(pdev, "ALARM");
ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL, ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL,
da9063_alarm_event, da9063_alarm_event,
......
...@@ -374,7 +374,7 @@ static int sh_rtc_set_time(struct device *dev, struct rtc_time *tm) ...@@ -374,7 +374,7 @@ static int sh_rtc_set_time(struct device *dev, struct rtc_time *tm)
static inline int sh_rtc_read_alarm_value(struct sh_rtc *rtc, int reg_off) static inline int sh_rtc_read_alarm_value(struct sh_rtc *rtc, int reg_off)
{ {
unsigned int byte; unsigned int byte;
int value = 0xff; /* return 0xff for ignored values */ int value = -1; /* return -1 for ignored values */
byte = readb(rtc->regbase + reg_off); byte = readb(rtc->regbase + reg_off);
if (byte & AR_ENB) { if (byte & AR_ENB) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment