Skip to content
  • Paulo Zanoni's avatar
    drm/i915: don't write 0 to DIP control at HDMI init · 9d32d165
    Paulo Zanoni authored
    At this time, the HDMI port is enabled, and the DIP control register
    specification says we need to disable the port *before* disabling the
    DIPs. Also, while doing this we risk telling the HW to send the AVI
    DIPs once (not every VSync), which really seems to confuse the HW and
    trigger bugs where the DIPs are not sent.
    
    This code was here just to set the DIP register to a 'known state'
    before using it, but since now the set_infoframes functions already
    set the control registers to a known state, this code can go away.
    
    Also, the previous code disables *all* the DIP registers for *each*
    HDMI port, so we end disabling each DIP register more than once.
    
    This patch solves a problem I can reproduce on my IVB machine. When I
    boot it with just a single HDMI monitor, the AVI InfoFrames are not
    sent. With this patch, the InfoFrames are sent. Previously, I wrote a
    patch to 'touch the DIP registers after we enable the HDMI port' to
    solve this same problem, but that patch doesn't seem to be needed
    anymore after this patch.
    
    All this patch does is revert a chunk of the following commit:
    
        commit 64a8fc01
        Author: Jesse Barnes <jbarnes@virtuousgeek.org>
        Date:   Thu Sep 22 11:16:00 2011 +0530
    
            drm/i915: fix ILK+ infoframe support
    
    So bugs that can be bisected to that commit may be fixed now.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43256
    
    
    Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    9d32d165