mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-24 21:39:58 +00:00
[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> |
||
|---|---|---|
| .. | ||
| basics | ||
| bios | ||
| calcs | ||
| core | ||
| dce | ||
| dce80 | ||
| dce100 | ||
| dce110 | ||
| dce112 | ||
| dce120 | ||
| dcn10 | ||
| dml | ||
| gpio | ||
| inc | ||
| irq | ||
| virtual | ||
| dc_bios_types.h | ||
| dc_ddc_types.h | ||
| dc_dp_types.h | ||
| dc_helper.c | ||
| dc_hw_types.h | ||
| dc_link.h | ||
| dc_stream.h | ||
| dc_types.h | ||
| dc.h | ||
| dm_event_log.h | ||
| dm_helpers.h | ||
| dm_pp_smu.h | ||
| dm_services_types.h | ||
| dm_services.h | ||
| irq_types.h | ||
| Makefile | ||
| os_types.h | ||