mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 04:28:10 -04:00
drm/i915/cdclk: Reorder bxt_sanitize_cdclk()
Make the sequence of steps in bxt_sanitize_cdclk() more logical by grouping things related to the check on the value of CDCLK_CTL into a single "block". Also, this will make an upcoming change replacing that block with a single function call easier to follow. v2: - Improve body of commit message to be more self-contained. Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240105140538.183553-4-gustavo.sousa@intel.com
This commit is contained in:
committed by
Matt Roper
parent
7af2f3e55c
commit
ebb9c4240d
@@ -2060,20 +2060,6 @@ static void bxt_sanitize_cdclk(struct drm_i915_private *dev_priv)
|
||||
dev_priv->display.cdclk.hw.cdclk == dev_priv->display.cdclk.hw.bypass)
|
||||
goto sanitize;
|
||||
|
||||
/* DPLL okay; verify the cdclock
|
||||
*
|
||||
* Some BIOS versions leave an incorrect decimal frequency value and
|
||||
* set reserved MBZ bits in CDCLK_CTL at least during exiting from S4,
|
||||
* so sanitize this register.
|
||||
*/
|
||||
cdctl = intel_de_read(dev_priv, CDCLK_CTL);
|
||||
/*
|
||||
* Let's ignore the pipe field, since BIOS could have configured the
|
||||
* dividers both synching to an active pipe, or asynchronously
|
||||
* (PIPE_NONE).
|
||||
*/
|
||||
cdctl &= ~bxt_cdclk_cd2x_pipe(dev_priv, INVALID_PIPE);
|
||||
|
||||
/* Make sure this is a legal cdclk value for the platform */
|
||||
cdclk = bxt_calc_cdclk(dev_priv, dev_priv->display.cdclk.hw.cdclk);
|
||||
if (cdclk != dev_priv->display.cdclk.hw.cdclk)
|
||||
@@ -2084,6 +2070,20 @@ static void bxt_sanitize_cdclk(struct drm_i915_private *dev_priv)
|
||||
if (vco != dev_priv->display.cdclk.hw.vco)
|
||||
goto sanitize;
|
||||
|
||||
/*
|
||||
* Some BIOS versions leave an incorrect decimal frequency value and
|
||||
* set reserved MBZ bits in CDCLK_CTL at least during exiting from S4,
|
||||
* so sanitize this register.
|
||||
*/
|
||||
cdctl = intel_de_read(dev_priv, CDCLK_CTL);
|
||||
|
||||
/*
|
||||
* Let's ignore the pipe field, since BIOS could have configured the
|
||||
* dividers both synching to an active pipe, or asynchronously
|
||||
* (PIPE_NONE).
|
||||
*/
|
||||
cdctl &= ~bxt_cdclk_cd2x_pipe(dev_priv, INVALID_PIPE);
|
||||
|
||||
if (DISPLAY_VER(dev_priv) >= 20)
|
||||
expected = MDCLK_SOURCE_SEL_CDCLK_PLL;
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user