drm/i915: Implement display w/a #1143
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 22 Jan 2018 17:41:31 +0000 (19:41 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 24 Jan 2018 18:09:29 +0000 (20:09 +0200)
commit0519c102f5285476d7868a387bdb6c58385e4074
tree3e5adb8d546c50537447b3b76ce329200127018a
parentc19e1124e7e8cb1f8fbb685fd9b7d0a42087bd62
drm/i915: Implement display w/a #1143

Apparently SKL/KBL/CFL need some manual help to get the
programmed HDMI vswing to stick. Implement the relevant
workaround (display w/a #1143).

Note that the relevant chicken bits live in a transcoder register
even though the bits affect a specific DDI port rather than a
specific transcoder. Hence we must pick the correct transcoder
register instance based on the port rather than based on the
cpu_transcoder.

Also note that for completeness I included support for DDI A/E
in the code even though we never have HDMI on those ports.

v2: CFL needs the w/a as well (Rodrigo and Art)

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Art Runyan <arthur.j.runyan@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180122174131.28046-1-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_ddi.c