• Jani Nikula's avatar
    drm/i915/dp: workaround BIOS eDP bpp clamping issue · c6cd2ee2
    Jani Nikula authored
    This isn't a real fix to the problem, but rather a stopgap measure while
    trying to find a proper solution.
    
    There are several laptops out there that fail to light up the eDP panel
    in UEFI boot mode. They seem to be mostly IVB machines, including but
    apparently not limited to Dell XPS 13, Asus TX300, Asus UX31A, Asus
    UX32VD, Acer Aspire S7. They seem to work in CSM or legacy boot.
    
    The difference between UEFI and CSM is that the BIOS provides a
    different VBT to the kernel. The UEFI VBT typically specifies 18 bpp and
    1.62 GHz link for eDP, while CSM VBT has 24 bpp and 2.7 GHz link. We end
    up clamping to 18 bpp in UEFI mode, which we can fit in the 1.62 Ghz
    link, and for reasons yet unknown fail to light up the panel.
    
    Dithering from 24 to 18 bpp itself seems to work; if we use 18 bpp with
    2.7 GHz link, the eDP panel lights up. So essentially this is a link
    speed issue, and *not* a bpp clamping issue.
    
    The bug raised its head since
    commit 657445fe
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Sat May 4 10:09:18 2013 +0200
    
        Revert "drm/i915: revert eDP bpp clamping code changes"
    
    which started clamping bpp *before* computing the link requirements, and
    thus affecting the required bandwidth. Clamping after the computations
    kept the link at 2.7 GHz.
    
    Even though the BIOS tells us to use 18 bpp through the VBT, it happily
    boots up at 24 bpp and 2.7 GHz itself! Use this information to
    selectively ignore the VBT provided value.
    
    We can't ignore the VBT eDP bpp altogether, as there are other laptops
    that do require the clamping to be used due to EDID reporting higher bpp
    than the panel can support.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59841
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67950Tested-by: default avatarUlf Winkelvos <ulf@winkelvos.de>
    Tested-by: default avatarjkp <jkp@iki.fi>
    CC: stable@vger.kernel.org
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    c6cd2ee2
intel_dp.c 101 KB