linux_dsm_epyc7002/drivers/gpu/drm/radeon
Daniel Vetter 18ee37a485 drm/radeon: Resume fbcon last
So a few people complained that

commit 177cf92de4
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Apr 1 22:14:59 2014 +0200

    drm/crtc-helpers: fix dpms on logic

which was merged into 3.15-rc1, broke resume on radeons. Strangely git
bisect lead everyone to

commit 25f397a429
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Jul 19 18:57:11 2013 +0200

    drm/crtc-helper: explicit DPMS on after modeset

which was merged long ago and actually part of 3.14.

Digging deeper I've noticed (again) that the call to
drm_helper_resume_force_mode in the radeon resume handlers was a no-op
previously because everything gets shut down on suspend. radeon does
this with explicit calls to drm_helper_connector_dpms with DPMS_OFF.
But with 177c we now force the dpms state to ON, so suddenly
resume_force_mode actually forced the crtcs back on.

This is the intention of the change after all, the problem is that
radeon resumes the fbdev console layer _before_ restoring the display,
through calling fb_set_suspend. And fbcon does an immediate ->set_par,
which in turn causes the same forced mode restore to happen.

Two concurrent modeset operations didn't lead to happiness. Fix this
by delaying the fbcon resume until the end of the readeon resum
functions.

v2: Fix up a bit of the spelling fail.

References: https://lkml.org/lkml/2014/5/29/1043
References: https://lkml.org/lkml/2014/5/2/388
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=74751
Tested-by: Ken Moffat <zarniwhoop@ntlworld.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Cc: Ken Moffat <zarniwhoop@ntlworld.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@gmail.com>
2014-05-31 09:19:51 +10:00
..
reg_srcs drm/radeon: allow geom rings to be setup on r600/r700 (v2) 2014-02-06 12:13:52 +10:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c
atom.h
atombios_crtc.c drm/radeon: modesetting updates for Mullins. 2014-05-06 12:20:04 +02:00
atombios_dp.c drm/radeon/dp: check for errors in dpcd reads 2014-05-01 12:28:09 +02:00
atombios_encoders.c drm/radeon/atom: rework encoder enable/disable sequence 2014-03-25 13:13:17 +01:00
atombios_i2c.c drivers: gpu: Move prototype declaration to header file radeon_mode.h from atombios_i2c.c 2014-01-07 11:45:39 -05:00
atombios.h
avivod.h
btc_dpm.c drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
btc_dpm.h
btcd.h drm/radeon/dpm: use the driver state for dpm debugfs 2014-02-06 12:22:46 -05:00
cayman_blit_shaders.c
cayman_blit_shaders.h
ci_dpm.c drm/radeon: re-enable mclk dpm on R7 260X asics 2014-04-17 13:59:53 +02:00
ci_dpm.h
ci_smc.c drivers: gpu: Include appropriate header file in ci_smc.c 2014-01-07 12:29:04 -05:00
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h
cik_sdma.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
cik.c drm/radeon: update cik init for Mullins. 2014-05-06 12:19:59 +02:00
cikd.h drm/radeon: use pflip irq on R600+ v2 2014-05-01 12:27:42 +02:00
clearstate_cayman.h
clearstate_ci.h
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h
cypress_dpm.c drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
cypress_dpm.h
dce6_afmt.c drm/radeon: fix audio pin counts for DCE6+ (v2) 2014-04-08 17:43:48 +02:00
evergreen_blit_shaders.c
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: remove struct radeon_bo_list 2014-03-04 14:34:34 +01:00
evergreen_dma.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
evergreen_hdmi.c drm/radeon: change audio enable logic 2014-02-27 14:21:31 -05:00
evergreen_reg.h drm/radeon: add VRAM debugfs access v3 2013-12-24 16:12:47 -05:00
evergreen_smc.h drm/radeon/dpm: fix typo in EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 2014-03-06 16:46:58 -05:00
evergreen.c drm/radeon: use pflip irq on R600+ v2 2014-05-01 12:27:42 +02:00
evergreend.h drm/radeon: implement pci config reset for evergreen/cayman (v2) 2014-01-08 18:42:23 -05:00
Kconfig
kv_dpm.c drm/radeon: dpm updates for KV/KB 2014-05-06 12:20:02 +02:00
kv_dpm.h
kv_smc.c
Makefile drm/radeon: separate gart and vm functions 2014-03-03 11:03:34 +01:00
mkregtable.c mkregtable: Fix sscanf handling 2014-01-10 15:28:10 +01:00
ni_dma.c drm/radeon: drop radeon_ring_force_activity 2014-02-18 17:50:00 +01:00
ni_dpm.c Merge branch 'drm-next-3.15' of git://people.freedesktop.org/~deathsimple/linux into drm-next 2014-02-27 14:39:30 +10:00
ni_dpm.h
ni_reg.h
ni.c Linux 3.14-rc7 2014-03-18 19:12:31 +10:00
nid.h drm/radeon: fix surface sync in fence on cayman (v2) 2014-01-20 18:20:56 -05:00
nislands_smc.h
ObjectID.h
ppsmc.h
pptable.h drm/radeon: fix pptable.h portability 2014-01-03 11:34:21 -05:00
r100_track.h
r100.c drm: Replace crtc fb with primary plane fb (v3) 2014-04-01 20:18:28 -04:00
r100d.h
r200.c drm/radeon: remove struct radeon_bo_list 2014-03-04 14:34:34 +01:00
r300_cmdbuf.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
r300_reg.h
r300.c Linux 3.14-rc7 2014-03-18 19:12:31 +10:00
r300d.h
r420.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
r420d.h
r500_reg.h
r520.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
r520d.h
r600_audio.c drm/radeon: change audio enable logic 2014-02-27 14:21:31 -05:00
r600_blit_shaders.c
r600_blit_shaders.h
r600_blit.c
r600_cp.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
r600_cs.c drm/radeon: remove struct radeon_bo_list 2014-03-04 14:34:34 +01:00
r600_dma.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
r600_dpm.c drm/radeon/pm: don't walk the crtc list before it has been initialized (v2) 2014-04-22 16:51:19 +02:00
r600_dpm.h drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
r600_hdmi.c drm/radeon: enable speaker allocation setup on dce3.2 2014-02-27 14:21:37 -05:00
r600_reg.h
r600.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
r600d.h drm/radeon: set the full cache bit for fences on r7xx+ 2014-01-20 18:20:56 -05:00
radeon_acpi.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
radeon_acpi.h
radeon_agp.c
radeon_asic.c drm/radeon: add Mullins chip family 2014-05-06 12:19:57 +02:00
radeon_asic.h drm/radeon: fill in set_vce_clocks for CIK asics 2014-02-18 16:11:35 +01:00
radeon_atombios.c drm/radeon/DCE4+: clear bios scratch dpms bit (v2) 2014-01-29 16:10:53 -05:00
radeon_atpx_handler.c drm/radeon: fix ATPX detection on non-VGA GPUs 2014-04-22 16:51:20 +02:00
radeon_benchmark.c
radeon_bios.c drm/radeon: handle non-VGA class pci devices with ATRM 2014-05-20 14:42:00 +02:00
radeon_clocks.c
radeon_combios.c drivers: gpu: Move prototype declarations to header file radeon_mode.h from radeon_atombios.c and radeon_combios.c 2014-01-07 13:06:31 -05:00
radeon_connectors.c drm/radeon/dp: switch to the common i2c over aux code 2014-04-08 16:12:40 +02:00
radeon_cp.c drm: Kill DRM_*MEMORYBARRIER 2013-12-18 11:35:21 +10:00
radeon_cs.c drm/radeon: don't allow RADEON_GEM_DOMAIN_CPU for command submission 2014-05-30 14:21:49 +02:00
radeon_cursor.c
radeon_device.c drm/radeon: Resume fbcon last 2014-05-31 09:19:51 +10:00
radeon_display.c drm/radeon: lower the ref * post PLL maximum once more 2014-05-30 14:13:30 +02:00
radeon_drv.c Merge branch 'drm-next-3.15-wip' of git://people.freedesktop.org/~deathsimple/linux into drm-next 2014-04-19 11:16:02 +10:00
radeon_drv.h drm: Kill DRM_IRQ_ARGS 2013-12-18 11:33:46 +10:00
radeon_encoders.c
radeon_family.h drm/radeon: add Mullins chip family 2014-05-06 12:19:57 +02:00
radeon_fb.c
radeon_fence.c drm/radeon: cleanup the fence ring locking code 2014-02-28 10:53:18 +01:00
radeon_gart.c drm/radeon: separate gart and vm functions 2014-03-03 11:03:34 +01:00
radeon_gem.c drm/radeon: deduplicate code in radeon_gem_busy_ioctl 2014-03-03 10:57:10 +01:00
radeon_i2c.c drm/radeon/dp: switch to the common i2c over aux code 2014-04-08 16:12:40 +02:00
radeon_ioc32.c
radeon_irq_kms.c drm: Kill DRM_IRQ_ARGS 2013-12-18 11:33:46 +10:00
radeon_irq.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_kms.c drm/radeon: avoid segfault on device open when accel is not working. 2014-05-20 14:42:06 +02:00
radeon_legacy_crtc.c drm: Replace crtc fb with primary plane fb (v3) 2014-04-01 20:18:28 -04:00
radeon_legacy_encoders.c
radeon_legacy_tv.c
radeon_mem.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_mode.h drm/radeon/dp: switch to the common i2c over aux code 2014-04-08 16:12:40 +02:00
radeon_object.c drm/radeon: fix buffer placement under memory pressure v2 2014-05-20 14:42:02 +02:00
radeon_object.h drm/radeon: drop non blocking allocations from sub allocator 2014-03-03 11:26:39 +01:00
radeon_pm.c drm/radeon/pm: don't allow debugfs/sysfs access when PX card is off (v2) 2014-05-20 14:42:08 +02:00
radeon_prime.c
radeon_reg.h
radeon_ring.c drm/radeon: clear needs_reset flag if IB test fails 2014-04-03 12:35:40 +02:00
radeon_sa.c drm/radeon: drop non blocking allocations from sub allocator 2014-03-03 11:26:39 +01:00
radeon_semaphore.c drm/radeon: drop non blocking allocations from sub allocator 2014-03-03 11:26:39 +01:00
radeon_state.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_test.c drm/radeon: initial VCE support v4 2014-02-18 16:11:22 +01:00
radeon_trace_points.c
radeon_trace.h drm/radeon: add ring to fence trace functions 2014-01-29 15:23:03 -05:00
radeon_ttm.c Merge branch 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux into drm-next 2014-03-18 19:17:02 +10:00
radeon_ucode.h drm/radeon: update cik init for Mullins. 2014-05-06 12:19:59 +02:00
radeon_uvd.c drm/radeon: add Mullins UVD support. 2014-05-06 12:20:00 +02:00
radeon_vce.c drm/radeon: check VCE relocation buffer range v3 2014-05-20 14:40:46 +02:00
radeon_vm.c drm/radeon: only allocate necessary size for vm bo list 2014-05-30 14:21:54 +02:00
radeon.h drm/radeon: fix DCE83 check for mullins 2014-05-20 14:41:58 +02:00
rs100d.h
rs400.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
rs400d.h
rs600.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
rs600d.h
rs690.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
rs690d.h
rs780_dpm.c drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
rv515d.h
rv730_dpm.c
rv730d.h
rv740_dpm.c
rv740d.h
rv770_dma.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
rv770_dpm.c Merge branch 'drm-next-3.15' of git://people.freedesktop.org/~deathsimple/linux into drm-next 2014-02-27 14:39:30 +10:00
rv770_dpm.h drm/radeon/dpm: switch on new late_enable callback 2013-12-24 17:56:50 -05:00
rv770_smc.c
rv770_smc.h
rv770.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
rv770d.h drm/radeon: implement pci config reset for r6xx/7xx (v3) 2014-01-08 18:42:22 -05:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
si_dpm.c Merge branch 'drm-next-3.15' of git://people.freedesktop.org/~deathsimple/linux into drm-next 2014-02-27 14:39:30 +10:00
si_dpm.h
si_reg.h
si_smc.c drivers: gpu: Include appropriate header file in si_smc.c and remove prototype declaration from header file sislands_smc.h 2014-01-07 11:45:38 -05:00
si.c drm/radeon: use pflip irq on R600+ v2 2014-05-01 12:27:42 +02:00
sid.h drm/radeon: fix register typo on si 2014-05-20 14:42:04 +02:00
sislands_smc.h drivers: gpu: Include appropriate header file in si_smc.c and remove prototype declaration from header file sislands_smc.h 2014-01-07 11:45:38 -05:00
smu7_discrete.h
smu7_fusion.h
smu7.h
sumo_dpm.c drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
sumo_dpm.h
sumo_smc.c drm/radeon/dpm: make some functions static for sumo 2014-01-07 12:55:50 -05:00
sumod.h
trinity_dpm.c drm/radeon/dpm: move platform caps fetching to a separate function 2014-02-18 16:11:30 +01:00
trinity_dpm.h
trinity_smc.c drm/radeon/dpm: make some functions static for TN 2014-01-07 12:55:57 -05:00
trinityd.h
uvd_v1_0.c drm/radeon/uvd: use lower clocks on old UVD to boot v2 2014-05-01 10:17:44 +02:00
uvd_v2_2.c drm/radeon: remove useless return 2014-02-06 12:22:48 -05:00
uvd_v3_1.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
uvd_v4_2.c
vce_v1_0.c drm/radeon: drop drivers copy of the rptr 2014-02-18 17:49:19 +01:00
vce_v2_0.c drm/radeon: add support for vce 2.0 clock gating 2014-02-18 16:11:44 +01:00