drm/i915: Call intel_update_active_dpll() for both bigjoiner pipes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 5 Nov 2021 21:21:56 +0000 (23:21 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 9 Nov 2021 22:40:10 +0000 (00:40 +0200)
commitc68dac968c460b89a4f6e3617ee5defbcd96eead
treebf3e7d6e76eede9e1f3634f170f6010453ab22e4
parent115e0f687d29649b8805e3417e089e785b0ea61d
drm/i915: Call intel_update_active_dpll() for both bigjoiner pipes

Currently we're only calling intel_update_active_dpll() for the
bigjoiner master pipe but not for the slave. With TC ports this
leads to the two pipes end up trying to use different PLLs
(TC vs. TBT). What's worse we're enabling the PLL that didn't get
intel_update_active_dpll() called on it at the spot where we
need the clocks turned on. So we turn on the wrong PLL and the
DDI is now trying to source its clock from the other PLL which is
still disabled. Naturally that doesn't end so well and the DDI
fails to start up.

The state checker also gets a bit unhappy (which is a good thing)
when it notices that one of the pipes was using the wrong PLL.

Let's fix this by remembering to call intel_update_active_dpll()
for both pipes. That should get the correct PLL turned on when
we need it, and the state checker should also be happy.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4434
Fixes: e12d6218fda2 ("drm/i915: Reduce bigjoiner special casing")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211105212156.5697-1-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
drivers/gpu/drm/i915/display/intel_ddi.c