]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/i915/power: use intel_de_wait_custom() instead of wait_for_us()
authorJani Nikula <jani.nikula@intel.com>
Thu, 31 Jul 2025 10:05:12 +0000 (13:05 +0300)
committerJani Nikula <jani.nikula@intel.com>
Fri, 1 Aug 2025 08:37:10 +0000 (11:37 +0300)
Prefer the register read specific wait function over i915 wait_for_us().

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://lore.kernel.org/r/154b681d9545b26453920b155656a65ce685da2a.1753956266.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_display_power.c

index 273054c2232524be08f464aa8ba682e9d41e6976..2c2b23a138cc94b8b2e3cb76f4e252c31d3776c4 100644 (file)
@@ -1278,6 +1278,7 @@ static void hsw_disable_lcpll(struct intel_display *display,
                              bool switch_to_fclk, bool allow_power_down)
 {
        u32 val;
+       int ret;
 
        assert_can_disable_lcpll(display);
 
@@ -1287,8 +1288,10 @@ static void hsw_disable_lcpll(struct intel_display *display,
                val |= LCPLL_CD_SOURCE_FCLK;
                intel_de_write(display, LCPLL_CTL, val);
 
-               if (wait_for_us(intel_de_read(display, LCPLL_CTL) &
-                               LCPLL_CD_SOURCE_FCLK_DONE, 1))
+               ret = intel_de_wait_custom(display, LCPLL_CTL,
+                                          LCPLL_CD_SOURCE_FCLK_DONE, LCPLL_CD_SOURCE_FCLK_DONE,
+                                          1, 0, NULL);
+               if (ret)
                        drm_err(display->drm, "Switching to FCLK failed\n");
 
                val = intel_de_read(display, LCPLL_CTL);
@@ -1324,6 +1327,7 @@ static void hsw_restore_lcpll(struct intel_display *display)
 {
        struct drm_i915_private __maybe_unused *dev_priv = to_i915(display->drm);
        u32 val;
+       int ret;
 
        val = intel_de_read(display, LCPLL_CTL);
 
@@ -1358,8 +1362,10 @@ static void hsw_restore_lcpll(struct intel_display *display)
        if (val & LCPLL_CD_SOURCE_FCLK) {
                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");
        }