• Daniel Vetter's avatar
    drm/i915: reorder edp disabling to fix ivb MacBook Air · 35a38556
    Daniel Vetter authored
    eDP is tons of fun. It turns out that at least the new MacBook Air 5,1
    model absolutely doesn't like the new force vdd dance we've introduced
    in
    
    commit 6cb49835
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Sun May 20 17:14:50 2012 +0200
    
        drm/i915: enable vdd when switching off the eDP panel
    
    But that patch also tried to fix some neat edp sequence issue with the
    force_vdd timings. Closer inspection reveals that we've raised
    force_vdd only to do the aux channel communication dp_sink_dpms. If we
    move the edp_panel_off below that, we don't need any force_vdd for the
    disable sequence, which makes the Air happy.
    
    Unfortunately the reporter of the original bug that the above commit
    fixed is travelling, so we can't test whether this regresses things.
    But my theory is that since we don't check for any power-off ->
    force_vdd-on delays in edp_panel_vdd_on, this was the actual
    root-cause of this failure. With that force_vdd dance completely
    eliminated, I'm hopeful the original bug stays fixed, too.
    
    For reference the old bug, which hopefully doesn't get broken by this:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=43163
    
    In any case, regression fixers win over plain bugfixes, so this needs
    to go in asap.
    
    v2: The crucial pieces seems to be to clear the force_vdd flag
    uncoditionally, too, in edp_panel_off. Looks like this is left behind
    by the firmware somehow.
    
    v3: The Apple firmware seems to switch off the panel on it's own, hence
    we still need to keep force_vdd on, but properly clear it when switching
    the panel off.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=45671Tested-by: default avatarRoberto Romer <sildurin@gmail.com>
    Tested-by: default avatarDaniel Wagner <wagi@monom.org>
    Tested-by: default avatarKeith Packard <keithp@keithp.com>
    Cc: stable@vger.kernel.org
    Cc: Keith Packard <keithp@keithp.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    35a38556
intel_dp.c 70.2 KB