syss_done = ddata->cfg.syss_mask;
 
        if (syss_offset >= 0) {
-               error = readx_poll_timeout(sysc_read_sysstatus, ddata, rstval,
-                                          (rstval & ddata->cfg.syss_mask) ==
-                                          syss_done,
-                                          100, MAX_MODULE_SOFTRESET_WAIT);
+               error = readx_poll_timeout_atomic(sysc_read_sysstatus, ddata,
+                               rstval, (rstval & ddata->cfg.syss_mask) ==
+                               syss_done, 100, MAX_MODULE_SOFTRESET_WAIT);
 
        } else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
-               error = readx_poll_timeout(sysc_read_sysconfig, ddata, rstval,
-                                          !(rstval & sysc_mask),
-                                          100, MAX_MODULE_SOFTRESET_WAIT);
+               error = readx_poll_timeout_atomic(sysc_read_sysconfig, ddata,
+                               rstval, !(rstval & sysc_mask),
+                               100, MAX_MODULE_SOFTRESET_WAIT);
        }
 
        return error;