• Paulo Zanoni's avatar
    drm/i915: init the DP panel power seq variables earlier · 0095e6dc
    Paulo Zanoni authored
    Our driver has two different ways of waiting for panel power
    sequencing delays. One of these ways is through
    ironlake_wait_panel_status, which implicitly uses the values written
    to our registers. The other way is through the functions that call
    intel_wait_until_after, and on this case we do direct msleep() calls
    on the intel_dp->xxx_delay variables.
    
    Function intel_dp_init_panel_power_sequencer is responsible for
    initializing the _delay variables and deciding which values we need to
    write to the registers, but it does not write these values to the
    registers. Only at intel_dp_init_panel_power_sequencer_registers we
    actually do this write.
    
    Then problem is that when we call intel_dp_i2c_init, we will get some
    I2C calls, which will trigger a VDD enable, which will make use of the
    panel power sequencing registers and the _delay variables, so we need
    to have both ready by this time. Today, when this happens, the _delay
    variables are zero (because they were not computed) and the panel
    power sequence registers contain whatever values were written by the
    BIOS (which are usually correct).
    
    What this patch does is to make sure that function
    intel_dp_init_panel_power_sequencer is called earlier, so by the time
    we call intel_dp_i2c_init, the _delay variables will already be
    initialized. The actual registers won't contain their final values,
    but at least they will contain the values set by the BIOS.
    
    The good side is that we were reading the values, but were not using
    them for anything (because we were just skipping the msleep(0) calls),
    so this "fix" shouldn't fix any real existing bugs. I was only able to
    identify the problem because I added some debug code to check how much
    time time we were saving with my previous patch.
    
    Regression introduced by:
        commit ed92f0b2
        Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
        Date:   Wed Jun 12 17:27:24 2013 -0300
            drm/i915: extract intel_edp_init_connector
    
    v2: - Rewrite commit message.
    Reviewed-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>
    0095e6dc
intel_dp.c 106 KB