• Paulo Zanoni's avatar
    drm/i915: get power domain in case the BIOS enabled eDP VDD · 63635217
    Paulo Zanoni authored
    If I unplug the eDP monitor, the BIOS of my machine will enable the
    VDD bit, then when the driver loads it will think VDD is enabled. It
    will detect that the eDP is not enabled and return false from
    intel_edp_init_connector. This will trigger a call to
    edp_panel_vdd_off_sync(), which trigger a WARN saying that the
    refcount of the power domain is less than zero.
    
    The problem happens because the driver gets a refcount whenever it
    enables the VDD bit, and puts the refcount whenever it disables the
    VDD bit. But on this case, the BIOS enabled VDD, so all we do is to
    call put() without calling get() first, so the code added is there to
    make sure we always have the get() in case the BIOS enabled the bit.
    
    This regression was introduced in
    commit e9cb81a2
    Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Date:   Thu Nov 21 13:47:23 2013 -0200
    
        drm/i915: get a runtime PM reference when the panel VDD is on
    
    v2: - Rebase
    
    Tested-by: Chris Wilson <chris@chris-wilson.co.uk> (v1)
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Cc: stable@vger.kernel.org (v3.13+)
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    63635217
intel_dp.c 109 KB