linux/drivers/gpu/drm/amd/display/amdgpu_dm
Fangzhi Zuo 876fcc4222 drm/amd/display: Validate DSC After Enable All New CRTCs
Before enabling new crtc, stream_count in dc_state does not sync with
that in drm_atomic_state. Validating dsc in such case would leave newly
added stream not jointly participating in dsc optimization with existing
streams, but simply using default initialized vcpi all the time which
gives wrong dsc determination decision.

Consider the scenaio where one 4k60 connected to the dock under dp-alt mode.
Since dp-alt mode is 2-lane setup, stream 1 consumes 63 slots with dsc needed.
Then hook up a second 4k60 to the dock.
stream 2 connected with 65 slot initialized by default without dsc.  dsc
pre validate will not jointly optimize stream 2 with stream 1 before
crtc 2 added into the dc_state. That leads to stream 2 not getting dsc
optimization, and trigger atomic_check failure all the time, as 65 > 63
limit.

After getting all new crtcs added into the state, stream_count in
dc_state correctly reflect that in drm_atomic_state which comes up with
correct dsc decision.

Fixes: 71be4b16d3 ("drm/amd/display: dsc validate fail not pass to atomic check")
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: Roman Li <Roman.Li@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Fangzhi Zuo <Jerry.Zuo@amd.com>
Tested-by: Mark Broadworth <mark.broadworth@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2022-10-10 17:32:55 -04:00
..
amdgpu_dm_color.c Documentation/amdgpu_dm: Add DM color correction documentation 2022-08-16 18:14:32 -04:00
amdgpu_dm_crc.c drm/amd/display: add connector type check for CRC source set 2021-12-01 17:08:47 -05:00
amdgpu_dm_crc.h
amdgpu_dm_crtc.c drm/amd/display: Copy crc_skip_count when duplicating CRTC state 2022-07-25 17:18:08 -04:00
amdgpu_dm_crtc.h drm/amd/display: Create a file dedicated for CRTC 2022-07-25 09:31:01 -04:00
amdgpu_dm_debugfs.c drm/amd/display: fix memory leak when using debugfs_lookup() 2022-09-07 22:28:30 -04:00
amdgpu_dm_debugfs.h drm/amd/display: Move connector debugfs to drm 2022-05-23 11:27:44 +03:00
amdgpu_dm_hdcp.c drm/amd/display: Reboot while unplug hdcp enabled dp from mst hub 2022-07-25 17:15:50 -04:00
amdgpu_dm_hdcp.h
amdgpu_dm_helpers.c drm/amd/display: Refactor edp panel power sequencer(PPS) codes 2022-09-19 15:13:08 -04:00
amdgpu_dm_irq_params.h drm/amd/display: Use vblank control events for PSR enable/disable 2021-08-16 15:35:56 -04:00
amdgpu_dm_irq.c drm/amd/display: do not disable an invalid irq source in hdp finish 2022-05-10 17:53:12 -04:00
amdgpu_dm_irq.h
amdgpu_dm_mst_types.c Merge tag 'amd-drm-next-6.1-2022-09-08' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2022-09-12 19:17:41 +10:00
amdgpu_dm_mst_types.h drm/amd/display: add mst port output bw check 2022-06-21 18:17:23 -04:00
amdgpu_dm_plane.c Merge tag 'amd-drm-next-6.1-2022-09-08' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2022-09-12 19:17:41 +10:00
amdgpu_dm_plane.h drm/amd/display: Include missing header 2022-08-22 16:47:09 -04:00
amdgpu_dm_pp_smu.c drm/amd/pm: create a new holder for those APIs used only by legacy ASICs(si/kv) 2022-01-14 17:51:14 -05:00
amdgpu_dm_psr.c drm/amd/display: explicitly disable psr_feature_enable appropriately 2022-10-10 17:09:30 -04:00
amdgpu_dm_psr.h drm/amd/display: Delay PSR entry 2021-06-21 17:45:14 -04:00
amdgpu_dm_services.c
amdgpu_dm_trace.h drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
amdgpu_dm.c drm/amd/display: Validate DSC After Enable All New CRTCs 2022-10-10 17:32:55 -04:00
amdgpu_dm.h drm/amd/display: Don't adjust VRR unnecessarily 2022-09-13 14:33:00 -04:00
dc_fpu.c drm/amd/display: Re-arrange FPU code structure for dcn2x 2021-10-06 15:49:24 -04:00
dc_fpu.h drm/amd/display: Add DC_FP helper to check FPU state 2021-08-05 21:17:59 -04:00
Makefile drm/amd/display: Create a file dedicated for CRTC 2022-07-25 09:31:01 -04:00