• Daniel Vetter's avatar
    drm/i915: implement IBX hdmi transcoder select workaround · 7a87c289
    Daniel Vetter authored
    Bspec Vol 3, Part 3, Section 3.8.1.1, bit 30:
    
    "[DevIBX] Writing to this bit only takes effect when port is enabled.
    Due to hardware issue it is required that this bit be cleared when port
    is disabled. To clear this bit software must temporarily enable this
    port on transcoder A."
    
    Unfortunately the public Bspec misses totally out on the same language
    for HDMIB. Internal Bspec also mentions that one of the bad
    side-effects is that DPx can fail to light up on transcoder A if HDMIx
    is disabled but using transcoder B.
    
    I've found this while reviewing Bsepc. We already implement the same
    workaround for the DP ports.
    
    Also replace a magic 1 with PIPE_B I've found while looking through the
    code.
    
    v2: Implement suggestions from Chris Wilson:
    - add pipe variable to cut down on code noise
    - write the reg value twice to w/a hw issues (Bspec is unclear on
      which bit actually require the write twice stuff, but better be
      paranoid about it)
    - untangle the if logic
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    7a87c289
intel_hdmi.c 27.1 KB