diff --git a/drivers/rtc/rtc-imxdi.c b/drivers/rtc/rtc-imxdi.c
index 1f4820e..7f207cd 100644
--- a/drivers/rtc/rtc-imxdi.c
+++ b/drivers/rtc/rtc-imxdi.c
@@ -410,13 +410,6 @@ static int dryice_rtc_probe(struct platform_device *pdev)
 	 * Initialize dryice hardware
 	 */
 
-	/* put dryice into valid state */
-	if (__raw_readl(imxdi->ioaddr + DSR) & DSR_NVF) {
-		rc = di_write_wait(imxdi, DSR_NVF | DSR_SVF, DSR);
-		if (rc)
-			goto err;
-	}
-
 	/* mask all interrupts */
 	__raw_writel(0, imxdi->ioaddr + DIER);
 
@@ -427,6 +420,13 @@ static int dryice_rtc_probe(struct platform_device *pdev)
 		goto err;
 	}
 
+	/* put dryice into valid state */
+	if (__raw_readl(imxdi->ioaddr + DSR) & DSR_NVF) {
+		rc = di_write_wait(imxdi, DSR_NVF | DSR_SVF, DSR);
+		if (rc)
+			goto err;
+	}
+
 	/* initialize alarm */
 	rc = di_write_wait(imxdi, DCAMR_UNSET, DCAMR);
 	if (rc)
