Commit 6d13a797 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/power: use intel_de_wait_custom() instead of wait_for_us()



Prefer the register read specific wait function over i915 wait_for_us().

Reviewed-by: default avatarGustavo Sousa <gustavo.sousa@intel.com>
Link: https://lore.kernel.org/r/154b681d9545b26453920b155656a65ce685da2a.1753956266.git.jani.nikula@intel.com


Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent cc2cce4a
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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");
	}