Merge tag 'fixes-for-v4.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi...
[firefly-linux-kernel-4.4.55.git] / drivers / rtc / rtc-opal.c
index 6fbf9e617151d1d2376816e725c2c55e8b7e61eb..df39ce02a99d33f9b5c606b187ab374567290dae 100644 (file)
@@ -152,10 +152,10 @@ exit:
 /* Set Timed Power-On */
 static int opal_set_tpo_time(struct device *dev, struct rtc_wkalrm *alarm)
 {
-       u64 h_m_s_ms = 0, token;
+       u64 h_m_s_ms = 0;
        struct opal_msg msg;
        u32 y_m_d = 0;
-       int rc;
+       int token, rc;
 
        tm_to_opal(&alarm->time, &y_m_d, &h_m_s_ms);
 
@@ -199,8 +199,9 @@ static int opal_rtc_probe(struct platform_device *pdev)
 {
        struct rtc_device *rtc;
 
-       if (pdev->dev.of_node && of_get_property(pdev->dev.of_node, "has-tpo",
-                                                NULL)) {
+       if (pdev->dev.of_node &&
+           (of_property_read_bool(pdev->dev.of_node, "wakeup-source") ||
+            of_property_read_bool(pdev->dev.of_node, "has-tpo")/* legacy */)) {
                device_set_wakeup_capable(&pdev->dev, true);
                opal_rtc_ops.read_alarm = opal_get_tpo_time;
                opal_rtc_ops.set_alarm = opal_set_tpo_time;