* According to the spec, it should be enough to poll for this 1 us.
         * However, extensive testing shows that this can take longer.
         */
-       if (wait_for_us(intel_de_read(display, LCPLL_CTL) &
-                       LCPLL_CD_SOURCE_FCLK_DONE, 100))
+       ret = intel_de_wait_custom(display, LCPLL_CTL,
+                                  LCPLL_CD_SOURCE_FCLK_DONE, LCPLL_CD_SOURCE_FCLK_DONE,
+                                  100, 0, NULL);
+       if (ret)
                drm_err(display->drm, "Switching to FCLK failed\n");
 
        intel_de_rmw(display, LCPLL_CTL,
        intel_de_rmw(display, LCPLL_CTL,
                     LCPLL_CD_SOURCE_FCLK, 0);
 
-       if (wait_for_us((intel_de_read(display, LCPLL_CTL) &
-                        LCPLL_CD_SOURCE_FCLK_DONE) == 0, 1))
+       ret = intel_de_wait_custom(display, LCPLL_CTL,
+                                  LCPLL_CD_SOURCE_FCLK_DONE, 0,
+                                  1, 0, NULL);
+       if (ret)
                drm_err(display->drm, "Switching back to LCPLL failed\n");
 
        intel_pcode_write(display->drm, HSW_PCODE_DE_WRITE_FREQ_REQ,