drm/i915/xe2lpd: Update bxt_sanitize_cdclk()
authorGustavo Sousa <gustavo.sousa@intel.com>
Fri, 5 Jan 2024 14:05:35 +0000 (11:05 -0300)
committerMatt Roper <matthew.d.roper@intel.com>
Mon, 8 Jan 2024 18:55:44 +0000 (10:55 -0800)
commitbdb7a38a8f409cdc3acdfc1935d09e31735e3ab4
treea1ca0d7cb4f13b98644d731f7294abb3d0150c14
parentd544d000a3cbf845825508dafe0aebe7f93f0e04
drm/i915/xe2lpd: Update bxt_sanitize_cdclk()

With Xe2_LPD, there were changes to the way CDCLK_CTL must be
programmed. Those were reflected on _bxt_set_cdclk() with commit
3d3696c0fed1 ("drm/i915/lnl: Start using CDCLK through PLL"), but
bxt_sanitize_cdclk() was left out.

This was causing some issues when loading the driver with a pre-existing
active display configuration: the driver would mistakenly take the
current value of CDCLK_CTL as wrong and the sanitization would be
triggered.

In a scenario where the display was already configured with a high
CDCLKC and had plane(s) enabled, FIFO underrun errors were reported,
because the current sanitization code selects the minimum possible
CDCLK.

Fix that by updating bxt_sanitize_cdclk() to match the changes made in
_bxt_set_cdclk(). Ideally, we would have a common function to derive the
value for CDCLK_CTL, but that can be done in a future change.

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-2-gustavo.sousa@intel.com
drivers/gpu/drm/i915/display/intel_cdclk.c