linux/drivers/gpu/drm/i915
Imre Deak e3de42b684 drm/i915: force full modeset if the connector is in DPMS OFF mode
Currently the driver's assumed behavior for a modeset with an attached
FB is that the corresponding connector will be switched to DPMS ON mode
if it happened to be in DPMS OFF (or another power save mode). This
wasn't enforced though if only the FB changed, everything else (format,
connector etc.) remaining the same. In this case we only set the new FB
base and left the connector in the old power save mode.

Fix this by forcing a full modeset whenever there is an attached FB and
any affected connector is in a power save mode.

V_2: Run the test for encoders in power save mode outside the the
test for fb change: user space may have just disabled the encoders
but left everything else in place. Make sure the connector list is
not empty before running this test.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Egbert Eich <eich@suse.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61642
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59834
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59339
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64178
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
[danvet: Apply Jani's s/connector_off/is_crtc_connector_off bikeshed.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-05-22 09:09:22 +02:00
..
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_debugfs.c drm/i915: Scale ring, rather than ia, frequency on Haswell 2013-04-18 09:43:26 +02:00
i915_dma.c drm/i915: Map registers before GTT init 2013-04-18 09:43:12 +02:00
i915_drv.c drm/i915: Adding more reserved PCI IDs for Haswell. 2013-05-21 12:08:03 +02:00
i915_drv.h drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
i915_gem_context.c drm/i915: Use MLC (l3$) for context objects 2013-04-18 09:43:11 +02:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c drm/i915: fix dmabuf vmap support 2013-05-01 16:09:31 +10:00
i915_gem_evict.c drm/i915: Create a gtt structure 2013-01-17 22:33:56 +01:00
i915_gem_execbuffer.c Merge tag 'drm-intel-next-2013-03-23' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-04-05 10:18:13 +10:00
i915_gem_gtt.c Revert "drm/i915: Calculate correct stolen size for GEN7+" 2013-05-07 18:59:09 +02:00
i915_gem_stolen.c Revert "drm/i915: set dummy page for stolen objects" 2013-03-27 17:13:44 +01:00
i915_gem_tiling.c drm/i915: Increase max fence pitch limit to 256KB on IVB+ 2013-04-18 09:43:20 +02:00
i915_gem.c drm/i915: Always normalize return timeout for wait_timeout_ioctl 2013-04-30 10:50:32 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: Add Reenable Timer to turn Hotplug Detection back on (v4) 2013-04-18 09:43:30 +02:00
i915_reg.h Revert "drm/i915: Calculate correct stolen size for GEN7+" 2013-05-07 18:59:09 +02:00
i915_suspend.c drm/i915: don't save/restore PCH_LVDS on LPT 2013-03-17 21:53:10 +01:00
i915_sysfs.c drm/i915: Return stored value from max freq sysfs entry 2013-04-18 09:43:21 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
i915_ums.c drm/i915: move DP save/restore into i915_ums.c 2013-01-31 11:50:04 +01:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_bios.h drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_crt.c Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-04-22 18:48:45 +10:00
intel_ddi.c drm/i915: hsw: fix link training for eDP on port-A 2013-05-04 10:24:56 +02:00
intel_display.c drm/i915: force full modeset if the connector is in DPMS OFF mode 2013-05-22 09:09:22 +02:00
intel_dp.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-05-13 07:59:59 -07:00
intel_drv.h drm/i915: hsw: fix link training for eDP on port-A 2013-05-04 10:24:56 +02:00
intel_dvo.c drm/i915: Fall back to bit banging mode for DVO transmitter detection 2013-04-19 16:31:41 +02:00
intel_fb.c drm/i915: clear the stolen fb before resuming 2013-05-07 22:25:11 +02:00
intel_hdmi.c drm/i915: avoid full modeset when changing the color range properties 2013-04-23 13:52:57 +02:00
intel_i2c.c drm/i915: Don't touch South Display when PCH_NOP 2013-04-08 20:53:00 +02:00
intel_lvds.c drm/i915: ensure single initialization and cleanup of backlight device 2013-04-18 09:43:23 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c ACPI: Remove acpi_device dependency in acpi_device_set_id() 2013-03-24 23:49:38 +01:00
intel_overlay.c Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-02-08 11:08:10 +10:00
intel_panel.c drm/i915: ensure single initialization and cleanup of backlight device 2013-04-18 09:43:23 +02:00
intel_pm.c drm/i915: Fix pipe enabled mask for pipe C in WM calculations 2013-05-01 21:17:22 +02:00
intel_ringbuffer.c drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ 2013-02-20 00:21:47 +01:00
intel_ringbuffer.h Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-01-17 20:34:08 +10:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sdvo.c drm/i915: avoid full modeset when changing the color range properties 2013-04-23 13:52:57 +02:00
intel_sprite.c drm/i915: sprite support for ValleyView v4 2013-04-02 20:28:53 +02:00
intel_tv.c drm/i915: (re)init HPD interrupt storm statistics 2013-04-18 09:43:29 +02:00
Makefile drm/i915: extract ums suspend/resume into i915_ums.c 2013-01-31 11:50:03 +01:00