linux/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 drm/radeon/atom: initialize more atom interpretor elements to 0 2013-07-30 17:24:12 -04:00
atom.h
atombios.h drm/radeon: atombios.h updates for hawaii 2013-11-08 12:33:45 -05:00
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
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 drm/radeon/dpm: fetch the max clk from voltage dep tables helper 2013-09-23 10:29:51 -04:00
btcd.h drm/radeon/dpm: use the driver state for dpm debugfs 2014-02-06 12:22:46 -05:00
cayman_blit_shaders.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
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 drm/radeon/dpm: track uvd gated state for ci 2013-08-30 16:31:06 -04:00
ci_smc.c drivers: gpu: Include appropriate header file in ci_smc.c 2014-01-07 12:29:04 -05:00
cik.c drm/radeon: update cik init for Mullins. 2014-05-06 12:19:59 +02:00
cik_blit_shaders.c drm/radeon: Add CP init for CIK (v7) 2013-06-25 17:50:28 -04:00
cik_blit_shaders.h drm/radeon: Add CP init for CIK (v7) 2013-06-25 17:50:28 -04:00
cik_reg.h drm/radeon: add indirect accessors for dift registers on CIK 2013-08-30 16:30:09 -04:00
cik_sdma.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
cikd.h drm/radeon: use pflip irq on R600+ v2 2014-05-01 12:27:42 +02:00
clearstate_cayman.h drm/radeon: convert SI,CIK to use sumo_rlc functions 2013-08-30 16:30:08 -04:00
clearstate_ci.h drm/radeon: implement clock and power gating for CIK (v3) 2013-08-30 16:30:08 -04:00
clearstate_defs.h drm/radeon: properly set up the RLC on ON/LN/TN (v3) 2013-06-27 10:49:18 -04:00
clearstate_evergreen.h drm/radeon: convert SI,CIK to use sumo_rlc functions 2013-08-30 16:30:08 -04:00
clearstate_si.h drm/radeon: add clearstate init for verde power gating 2013-06-27 19:16:31 -04:00
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 drm/radeon/dpm: add pre/post_set_power_state callback (BTC) 2013-06-27 19:16:19 -04:00
dce6_afmt.c drm/radeon: fix audio pin counts for DCE6+ (v2) 2014-04-08 17:43:48 +02:00
evergreen.c drm/radeon: use pflip irq on R600+ v2 2014-05-01 12:27:42 +02:00
evergreen_blit_shaders.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
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
evergreend.h drm/radeon: implement pci config reset for evergreen/cayman (v2) 2014-01-08 18:42:23 -05:00
Kconfig drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
kv_dpm.c drm/radeon: dpm updates for KV/KB 2014-05-06 12:20:02 +02:00
kv_dpm.h drm/radeon/dpm: handle bapm on kb/kv 2013-09-11 11:44:38 -04:00
kv_smc.c drm/radeon/dpm: handle bapm on kb/kv 2013-09-11 11:44:38 -04:00
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.c Linux 3.14-rc7 2014-03-18 19:12:31 +10: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 drm/radeon/dpm: implement vblank_too_short callback for si 2013-07-08 17:41:11 -04:00
ni_reg.h
nid.h drm/radeon: fix surface sync in fence on cayman (v2) 2014-01-20 18:20:56 -05:00
nislands_smc.h drm/radeon/kms: add dpm support for cayman (v5) 2013-06-27 19:16:10 -04:00
ObjectID.h drm/radeon: upstream ObjectID.h updates (v2) 2013-06-26 16:11:34 -04:00
ppsmc.h drm/radeon/dpm: handle bapm on trinity 2013-09-11 11:44:37 -04:00
pptable.h drm/radeon: fix pptable.h portability 2014-01-03 11:34:21 -05:00
r100.c drm: Replace crtc fb with primary plane fb (v3) 2014-04-01 20:18:28 -04:00
r100_track.h drm/radeon: use common next_reloc function 2013-01-31 16:24:45 -05:00
r100d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r200.c drm/radeon: remove struct radeon_bo_list 2014-03-04 14:34:34 +01:00
r300.c Linux 3.14-rc7 2014-03-18 19:12:31 +10:00
r300_cmdbuf.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
r300_reg.h
r300d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r420.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
r420d.h
r500_reg.h drm/radeon: disable the crtcs in mc_stop (r5xx-r7xx) (v2) 2013-04-22 10:39:09 -04:00
r520.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
r520d.h
r600.c drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path 2014-05-06 12:18:41 +02:00
r600_audio.c drm/radeon: change audio enable logic 2014-02-27 14:21:31 -05:00
r600_blit.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
r600_blit_shaders.c
r600_blit_shaders.h drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
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 drm/radeon: add indirect accessors for UVD CTX registers 2013-06-27 19:16:30 -04:00
r600d.h drm/radeon: set the full cache bit for fences on r7xx+ 2014-01-20 18:20:56 -05:00
radeon.h drm/radeon: fix DCE83 check for mullins 2014-05-20 14:41:58 +02: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 drm/radeon/benchmark: allow same domains for dma copy 2013-03-15 18:47:18 -04:00
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 drm/radeon/cik: add hw cursor support (v2) 2013-06-26 16:11:38 -04:00
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 treewide: Fix typo in printk 2013-05-28 12:02:13 +02:00
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 drm/radeon: add runtime PM support (v2) 2013-11-01 12:43:14 -04:00
radeon_irq.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_irq_kms.c drm: Kill DRM_IRQ_ARGS 2013-12-18 11:33:46 +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 drm/sysfs: sort out minor and connector device object lifetimes. 2013-10-22 09:37:40 +01:00
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 drm/radeon: remove stale gem->driver_private access 2013-08-19 09:34:47 +10:00
radeon_reg.h drm/radeon/cik: add hw cursor support (v2) 2013-06-26 16:11:38 -04:00
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.h drm/radeon: add ring to fence trace functions 2014-01-29 15:23:03 -05:00
radeon_trace_points.c
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
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 drm/radeon: Use direct mapping for fast fb access on RS690 2013-04-09 10:31:31 -04:00
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 drm/radeon/kms: add dpm support for rs780/rs880 2013-06-27 10:49:25 -04:00
rs780d.h drm/radeon/dpm: add debugfs support for RS780/RS880 (v3) 2013-07-17 16:47:52 -04:00
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 drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
rv6xxd.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
rv515d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
rv730_dpm.c drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv730d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv740_dpm.c drm/radeon/dpm/rv7xx: restructure code 2013-06-27 19:16:12 -04:00
rv740d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv770.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
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 drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
rv770_smc.h drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
rv770d.h drm/radeon: implement pci config reset for r6xx/7xx (v3) 2014-01-08 18:42:22 -05:00
si.c drm/radeon: use pflip irq on R600+ v2 2014-05-01 12:27:42 +02: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 drm/radeon/kms: add dpm support for SI (v7) 2013-06-27 19:40:05 -04:00
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
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.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04:00
smu7_discrete.h drm/radeon: add dpm support for CI dGPUs (v2) 2013-08-30 16:30:29 -04:00
smu7_fusion.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04:00
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 drm/radeon/sumo add helper to go from vid7 to vid2 2013-08-30 16:30:10 -04:00
sumo_smc.c drm/radeon/dpm: make some functions static for sumo 2014-01-07 12:55:50 -05:00
sumod.h drm/radeon: add dpm UVD handling for sumo asics 2013-06-27 19:15:48 -04:00
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 drm/radeon/dpm: add bapm callback for trinity 2013-09-11 11:44:39 -04:00
trinity_smc.c drm/radeon/dpm: make some functions static for TN 2014-01-07 12:55:57 -05:00
trinityd.h drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
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 drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume 2013-08-30 16:31:12 -04:00
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