linux/drivers/gpu/drm/amd/display/dc
David Francis c238bfe0be drm/amd/display: If one stream full updates, full update all planes
[Why]
On some compositors, with two monitors attached, VT terminal
switch can cause a graphical issue by the following means:

There are two streams, one for each monitor. Each stream has one
plane

current state:
	M1:S1->P1
	M2:S2->P2

The user calls for a terminal switch and a commit is made to
change both planes to linear swizzle mode. In atomic check,
a new dc_state is constructed with new planes on each stream

new state:
	M1:S1->P3
	M2:S2->P4

In commit tail, each stream is committed, one at a time. The first
stream (S1) updates properly, triggerring a full update and replacing
the state

current state:
	M1:S1->P3
	M2:S2->P4

The update for S2 comes in, but dc detects that there is no difference
between the stream and plane in the new and current states, and so
triggers a fast update. The fast update does not program swizzle,
so the second monitor is corrupted

[How]
Add a flag to dc_plane_state that forces full updates

When a stream undergoes a full update, set this flag on all changed
planes, then clear it on the current stream

Subsequent streams will get full updates as a result

Signed-off-by: David Francis <David.Francis@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Roman Li <Roman.Li@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet Lakha@amd.com>
Acked-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2019-04-14 23:45:43 -05:00
..
basics drm/amd/display: Convert remaining loggers off dc_logger 2018-07-13 14:48:42 -05:00
bios drm/amd/display/dc/bios_parser2: Mark expected switch fall-throughs 2019-02-18 18:01:00 -05:00
calcs drm/amd/display: don't call dm_pp_ function from an fpu block 2019-03-06 15:31:20 -05:00
core drm/amd/display: If one stream full updates, full update all planes 2019-04-14 23:45:43 -05:00
dce drm/amd/display: extending AUX SW Timeout 2019-04-11 10:03:08 -05:00
dce80 Linux 5.0 2019-03-04 12:02:55 +10:00
dce100 Linux 5.0 2019-03-04 12:02:55 +10:00
dce110 drm/amd/display: Refactor for setup periodic interrupt. 2019-02-19 15:58:27 -05:00
dce112 drm/amd/display: fix eDP fast bootup for pre-raven asic 2019-01-25 16:15:36 -05:00
dce120 drm/amd/display: fix eDP fast bootup for pre-raven asic 2019-01-25 16:15:36 -05:00
dcn10 drm/amd/display: Fix negative cursor pos programming (v2) 2019-04-08 10:33:40 -05:00
dml Revert "drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines" 2019-01-29 15:16:18 -05:00
gpio drm/amd/display: add gpio lock/unlock 2019-02-05 21:16:23 -05:00
inc drm/amd/display: Refactor for setup periodic interrupt. 2019-02-19 15:58:27 -05:00
irq Revert "drm/amdgpu/display: Replace CONFIG_DRM_AMD_DC_DCN1_0 with CONFIG_X86" 2018-08-21 14:32:28 -05:00
virtual drm/amd/display: Pass signal directly to enable_tmds_output 2018-03-07 16:27:20 -05:00
dc_bios_types.h drm/amd/display: Connect dig_fe to otg directly instead of calling bios 2019-01-25 16:15:37 -05:00
dc_ddc_types.h drm/amd/display: Move i2c and aux structs into dc_ddc_types.h 2018-06-15 12:23:38 -05:00
dc_dp_types.h drm/amd/display: Set link rate set if eDP ver >= 1.4. 2019-01-14 15:40:08 -05:00
dc_helper.c drm/amd/display: refactor reg_update 2019-01-14 15:38:40 -05:00
dc_hw_types.h drm/amd/display: Introduce DC VM interface 2019-01-25 16:15:36 -05:00
dc_link.h drm/amd/display: add way to determine if link is active 2019-02-06 13:30:59 -05:00
dc_stream.h drm/amd/display: Refactor for setup periodic interrupt. 2019-02-19 15:58:27 -05:00
dc_types.h drm/amd/display: Add monitor patch for backlight off 2019-02-05 21:16:23 -05:00
dc.h drm/amd/display: If one stream full updates, full update all planes 2019-04-14 23:45:43 -05:00
dm_event_log.h drm/amd/display: Add customizable tracing event 2018-11-30 12:02:49 -05:00
dm_helpers.h drm/amd/display: Poll pending down rep before clear payload allocation table 2019-01-28 11:43:46 -05:00
dm_pp_smu.h drm/amd/display: Add a PP_SMU_VER_MAX enum 2019-01-14 15:04:31 -05:00
dm_services_types.h drm/amd/display: change the max clock level to 16 2019-01-25 16:15:35 -05:00
dm_services.h drm/amd/display: Add tracing to dc 2018-12-05 17:49:49 -05:00
irq_types.h drm/amd/display: Add Vline1 interrupt source to InterruptManager 2019-01-28 11:44:10 -05:00
Makefile drm/amd/display: Introduce DC VM interface 2019-01-25 16:15:36 -05:00
os_types.h amd-gpu: Don't undefine READ and WRITE 2018-10-24 00:36:12 +01:00