• Chris Wilson's avatar
    drm/i915: Do not clobber config status after a forced restore of hw state · edd5b133
    Chris Wilson authored
    We call intel_modeset_setup_hw_state() along two paths, driver
    load/resume and after a lid event notification. During initialisation of
    the driver, it is imperative that we reset the config state. This
    correctly sets up the initial connector statuses and prepares the
    hardware for a thorough probing. However, during a lid event, we only
    want to undo the damage caused by the bios by resetting our last known
    mode. In this cirumstance, we do not want to clobber our desired state.
    
    In order to try and keep sanity between the config state and our own
    tracking, do the drm_mode_config_reset() first along the load/resume
    paths before reading out the hw state and apply any definite known
    corrections.
    
    v2: "As discussed on irc I don't think we should force the connector
    state to anything here: Imo connector->status should reflect what we
    believe to be the true output connection state, whereas connector->encoder
    reflects whether this connector is wired up to a pipe. And since we no
    longer reject modeset on disconnected connectors and never nuked the pipe
    if the connector gets disconnected there's no reason for that - such policy
    is userspace's job.
    
    This regression has been introduced in
    
    commit 2e938892
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Thu Oct 11 20:08:24 2012 +0200
    
        drm/i915/crt: explicitly set up HOTPLUG_BITS on resume"
    so sayeth Daniel.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: stable@vger.kernel.org (v3.8 and later)
    Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    edd5b133
i915_drv.c 29.8 KB