summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/display/intel_cx0_phy.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index 2c87c58812da..7288065d2461 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -2671,15 +2671,18 @@ static int intel_c20pll_calc_state(const struct intel_crtc_state *crtc_state,
hw_state->cx0pll.use_c10 = false;
hw_state->cx0pll.lane_count = crtc_state->lane_count;
- /* try computed C20 HDMI tables before using consolidated tables */
- if (!is_dp)
- /* TODO: Update SSC state for HDMI as well */
- err = intel_c20_compute_hdmi_tmds_pll(crtc_state, &hw_state->cx0pll.c20);
-
+ /*
+ * Try the ideal C20 HDMI tables before computing them, since the calculated
+ * values, although correct, may not be optimal.
+ */
if (err)
err = intel_c20pll_calc_state_from_table(crtc_state, encoder,
&hw_state->cx0pll);
+ /* TODO: Update SSC state for HDMI as well */
+ if (!is_dp && err)
+ err = intel_c20_compute_hdmi_tmds_pll(crtc_state, &hw_state->cx0pll.c20);
+
if (err)
return err;