drm/i915: fix EDID/sink-based bpp clamping
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 2 Jun 2013 11:26:24 +0000 (13:26 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 4 Jun 2013 11:52:39 +0000 (13:52 +0200)
commit1b829e05469963301736df69f0a2a2c3d3fb2225
treeb2c4771f770f5a4dec9b136b658334d1ed90cbf7
parent050f7aeb129c1b9fb63dd523ca9bc1101bbae6cc
drm/i915: fix EDID/sink-based bpp clamping

Since this is run in the compute config stage we need to check
the new_ pointers, i.e the stage output routing, not the current
modeset layout. Also there was a little logic bug in properly skipping
connectors: The old code did not skip any unused connectors and so
clamped to whatever was left in there (usually 0 if that connector
hasn't seen a EDID 1.4 screen ever since boot-up).

This has been broken when moving the pipe bpp selection in

commit 4e53c2e010e531b4a014692199e978482d471c7e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Mar 27 00:44:58 2013 +0100

    drm/i915: precompute pipe bpp before touching the hw

To avoid too much casting switch from drm_ to intel_ types.

Also add a bit of debug output to help reconstructing what's going
on.

v2: Try to clarify this a bit:
- s/pipe_config_set_bpp/compute_baseline_pipe_bpp/ to make it clearer
  at which stage this function is run. Also add a comment about what
  it does.
- Extract the sink clamping into it's own function.

v3: Actually make it compile.

v4: Split out all the prep refactoring to make the bugfix stick out
really badly. Also elaborate a bit in the commit message about the
nature of the bugfix.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c