]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/rtc/rtc-snvs.c
ceph: single workqueue for inode related works
[mirror_ubuntu-bionic-kernel.git] / drivers / rtc / rtc-snvs.c
index d8ef9e052c4fc71f38a871a8293271cb469d495b..9af591d5223c3af8c6293a5f20704dc1da20d76e 100644 (file)
@@ -132,20 +132,23 @@ static int snvs_rtc_set_time(struct device *dev, struct rtc_time *tm)
 {
        struct snvs_rtc_data *data = dev_get_drvdata(dev);
        unsigned long time;
+       int ret;
 
        rtc_tm_to_time(tm, &time);
 
        /* Disable RTC first */
-       snvs_rtc_enable(data, false);
+       ret = snvs_rtc_enable(data, false);
+       if (ret)
+               return ret;
 
        /* Write 32-bit time to 47-bit timer, leaving 15 LSBs blank */
        regmap_write(data->regmap, data->offset + SNVS_LPSRTCLR, time << CNTR_TO_SECS_SH);
        regmap_write(data->regmap, data->offset + SNVS_LPSRTCMR, time >> (32 - CNTR_TO_SECS_SH));
 
        /* Enable RTC again */
-       snvs_rtc_enable(data, true);
+       ret = snvs_rtc_enable(data, true);
 
-       return 0;
+       return ret;
 }
 
 static int snvs_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
@@ -288,7 +291,11 @@ static int snvs_rtc_probe(struct platform_device *pdev)
        regmap_write(data->regmap, data->offset + SNVS_LPSR, 0xffffffff);
 
        /* Enable RTC */
-       snvs_rtc_enable(data, true);
+       ret = snvs_rtc_enable(data, true);
+       if (ret) {
+               dev_err(&pdev->dev, "failed to enable rtc %d\n", ret);
+               goto error_rtc_device_register;
+       }
 
        device_init_wakeup(&pdev->dev, true);