drm/i915: Check for invalid cloning earlier during modeset
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 22 Jun 2016 18:57:09 +0000 (21:57 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 7 Jul 2016 10:10:31 +0000 (13:10 +0300)
commite25148d01d58a7e6a51fc93eea5595c0798f2e9b
treeb0def6fbd95873c44f39f7a14b65d43a402bf4dc
parent3f1c928f92a8cdeaca6c2ff7a14dfeb2a5272601
drm/i915: Check for invalid cloning earlier during modeset

Move the encoder cloning check to happen earlier in the modeset. The
main benefit will be that the debug output from a failed modeset will
be less confusing as output_types can not indicate an invalid
configuration during the later computation stages.

For instance, what happened to me was kms_setmode was attempting one
of its invalid cloning checks during which it asked for DP+VGA cloning
on HSW. In this case the DP .compute_config() was executed after
the FDI .compute_config() leaving the DP link clock (1.62 in this case)
in port_clock, and then later the FDI BW computation tried to use that
as the FDI link clock (which should always be 2.7). 1.62 x 2 wasn't
enough for the mode it was trying to use, and so it ended up rejecting
the modeset, not because of an invalid cloning configuration, but
because of supposedly running out of FDI bandwidth. Took me a while
to figure out what had actually happened.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466621833-5054-12-git-send-email-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/intel_display.c