linux_dsm_epyc7002/drivers/gpu/drm
Maarten Lankhorst 7397489399 drm/i915: Fix modeset handling during gpu reset, v5.
This function would call drm_modeset_lock_all, while the suspend/resume
functions already have their own locking. Fix this by factoring out
__intel_display_resume, and calling the atomic helpers for duplicating
atomic state and disabling all crtc's during suspend.

Changes since v1:
- Deal with -EDEADLK right after lock_all and clean up calls
  to hw readout.
- Always take all modeset locks so updates during gpu reset are blocked.
Changes since v2:
- Fix deadlock in intel_update_primary_planes.
- Move WARN_ON(EDEADLK) to __intel_display_resume.
- pctx -> ctx
- only call __intel_display_resume on success in intel_display_resume.
Changes since v3:
- Rebase on top of dev_priv -> dev change.
- Use drm_modeset_lock_all_ctx instead of drm_modeset_lock_all.
Changes since v4 [by vsyrjala]:
- Deal with skip_intermediate_wm
- Update comment w.r.t. mode_config.mutex vs. ->detect()
- Rebase due to INTEL_GEN() etc.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fixes: e2c8b8701e ("drm/i915: Use atomic helpers for suspend, v2.")
Cc: stable@vger.kernel.org
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1470428910-12125-2-git-send-email-ville.syrjala@linux.intel.com
2016-08-05 23:28:27 +03:00
..
amd drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events 2016-07-29 14:37:13 -04:00
arc drm/arc: Remove redundant dev_err call in arcpgu_load() 2016-07-19 15:33:50 -04:00
arm drm/arm: mali-dp: Fix error return code in malidp_bind() 2016-07-28 12:59:56 +02:00
armada drm/armada: make fbdev support really optional 2016-07-18 09:11:33 +02:00
ast Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
atmel-hlcdc Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
bochs Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
bridge Merge tag 'topic/drm-misc-2016-07-28' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-30 05:26:07 +10:00
cirrus Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
etnaviv drm/etnaviv: Optimize error handling in etnaviv_gem_new_userptr() 2016-07-22 13:51:49 -04:00
exynos GPU-DRM-Exynos: Delete an unnecessary check before the function call "vunmap" 2016-07-21 14:06:33 -04:00
fsl-dcu Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
gma500 drm/gma500: remove unnecessary stub for fb_ioctl() 2016-07-28 10:04:03 +02:00
hisilicon drm/hisilicon: Fix ADE vblank on/off handling 2016-07-12 14:17:03 +02:00
i2c drm/i2c: adv7511: Move to bridge folder 2016-07-13 14:24:35 +05:30
i810
i915 drm/i915: Fix modeset handling during gpu reset, v5. 2016-08-05 23:28:27 +03:00
imx imx-drm ldb mode set fix 2016-07-30 05:45:30 +10:00
mediatek Merge tag 'topic/drm-misc-2016-07-14' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-15 11:01:37 +10:00
mga
mgag200 drm/mgag200: Delete an unnecessary check before drm_gem_object_unreference_unlocked() 2016-07-22 11:23:39 -04:00
msm drm/msm: Delete an unnecessary check before drm_gem_object_unreference() 2016-07-16 10:29:35 -04:00
nouveau Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
omapdrm GPU-DRM-OMAP: Delete unnecessary checks before two function calls 2016-07-22 10:27:59 +02:00
panel drm/panel: simple: Add support for Starry KR122EA0SRA panel 2016-07-11 14:30:43 +02:00
qxl drm/qxl: Delete an unnecessary check before drm_gem_object_unreference_unlocked() 2016-07-22 11:23:39 -04:00
r128
radeon drm/radeon: Remove deprecated create_singlethread_workqueue 2016-07-29 14:36:55 -04:00
rcar-du Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
rockchip Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
savage
shmobile drm/shmobile: make fbdev support really optional 2016-07-18 09:11:37 +02:00
sis drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
sti drm/sti: use new Reset API 2016-07-26 10:25:00 -04:00
sun4i Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-27 10:33:08 +10:00
tdfx
tegra Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
tilcdc drm/tilcdc: make fbdev support really optional 2016-07-18 09:11:38 +02:00
ttm drm/ttm: partial revert "cleanup ttm_tt_(unbind|destroy)" v3 2016-07-29 14:37:04 -04:00
udl drm/udl: make fbdev support really optional 2016-07-18 09:11:40 +02:00
vc4 Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc 2016-07-19 09:27:29 +02:00
vgem drm/vgem: Fix non static symbol warning 2016-07-19 15:01:52 +02:00
via drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
virtio drm/virtio: Fix non static symbol warning 2016-07-19 15:44:10 -04:00
vmwgfx Merge tag 'topic/drm-misc-2016-07-28' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-07-30 05:26:07 +10:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c
drm_atomic.c drm/atomic: Delete an unnecessary check before drm_property_unreference_blob() 2016-07-20 13:23:39 -04:00
drm_auth.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_bridge.c
drm_bufs.c drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
drm_cache.c drm: Restore double clflush on the last partial cacheline 2016-07-12 15:57:13 +02:00
drm_context.c
drm_crtc_helper.c Linux 4.7-rc5 2016-07-02 15:56:01 +10:00
drm_crtc_internal.h Revert "drm: Resurrect atomic rmfb code" 2016-07-14 15:18:15 +02:00
drm_crtc.c drm: drm_connector->s/connector_id/index/ for consistency 2016-07-19 21:51:17 +02:00
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c drm_aux-dev: fix error handling in drm_dp_aux_dev_init() 2016-07-12 14:10:57 +02:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: aux ->transfer() can return 0, deal with it 2016-07-29 14:13:03 +10:00
drm_dp_mst_topology.c drm/dp-mst: Missing kernel doc 2016-07-19 10:31:53 +02:00
drm_drv.c drm: Do a full device unregister when unplugging 2016-07-12 13:01:49 +02:00
drm_edid_load.c
drm_edid.c
drm_encoder_slave.c
drm_fb_cma_helper.c Merge branch 'for-next' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next 2016-07-02 16:21:35 +10:00
drm_fb_helper.c drm/fb-helper: Reduce READ_ONCE(master) to lockless_dereference 2016-06-22 10:07:28 +02:00
drm_flip_work.c
drm_fops.c drm: Clean up drm_crtc.h 2016-06-21 21:43:28 +02:00
drm_fourcc.c
drm_gem_cma_helper.c
drm_gem.c
drm_global.c
drm_hashtab.c
drm_info.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_internal.h drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_ioc32.c
drm_ioctl.c drm: Don't overwrite user ioctl arg unless requested 2016-07-14 10:12:50 +02:00
drm_irq.c drm: Extract&Document drm_irq.h 2016-07-19 10:29:47 +02:00
drm_kms_helper_common.c
drm_legacy.h
drm_lock.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_memory.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_mipi_dsi.c drm/dsi: Make set_tear_scanline command consistent 2016-07-12 13:19:26 +02:00
drm_mm.c
drm_modes.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_plane_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_platform.c drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
drm_prime.c
drm_probe_helper.c
drm_rect.c
drm_scatter.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_simple_kms_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vm.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_vma_manager.c
Kconfig
Makefile