From: Stéphane Marchesin <marcheu@xxxxxxxxxxxx> i915 resume relies on vt switch in kernel 3.8. This is wrong on systems which don't vt switch, like Chrome OS. Instead, we just save and restore the state properly across suspend/resume by: - not disabling everthying on suspend - forcing a modeset on resume - forcing a restore of the cursor state BUG=chromium:221562 TEST=display is on after resume and I see a cursor Change-Id: I4b59e91ac4770b847aa0821d1fd5394d7176af3c Reviewed-on: https://gerrit.chromium.org/gerrit/50922 Reviewed-by: Sonny Rao <sonnyrao@xxxxxxxxxxxx> Commit-Queue: Stéphane Marchesin <marcheu@xxxxxxxxxxxx> Tested-by: Stéphane Marchesin <marcheu@xxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_drv.c | 5 ++--- drivers/gpu/drm/i915/intel_display.c | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 7610fbc..f31b530 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -483,8 +483,6 @@ static int i915_drm_freeze(struct drm_device *dev) cancel_delayed_work_sync(&dev_priv->rps.delayed_resume_work); - intel_modeset_disable(dev); - drm_irq_uninstall(dev); } @@ -563,7 +561,8 @@ static int __i915_drm_thaw(struct drm_device *dev) mutex_unlock(&dev->struct_mutex); intel_modeset_init_hw(dev); - intel_modeset_setup_hw_state(dev, false); + intel_modeset_setup_hw_state(dev, true); + drm_irq_install(dev); } diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 0d0b3b3..5dca437 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -9367,6 +9367,10 @@ void intel_modeset_setup_hw_state(struct drm_device *dev, crtc = to_intel_crtc(dev_priv->pipe_to_crtc_mapping[pipe]); intel_set_mode(&crtc->base, &crtc->base.mode, crtc->base.x, crtc->base.y, crtc->base.fb); + + /* Force-cycle the cursor */ + crtc->cursor_visible = false; + intel_crtc_update_cursor(crtc, true); } i915_redisable_vga(dev); -- 1.8.3.2 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx