1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/amd/display/dc
Wenjing Liu e5309d7f66 drm/amd/display: add DP sanity checks during enable stream
[why]
1. When HPD deassertion is pulled in the middle of
enabe stream link training, we will abort current training
and turn off PHY. This causes current link settings
to be zeroed this causes later stream enablement
sequence to fail as we prefer to carry on enablement
process despite of link training failure for SST.
2. When HPD is toggled after detection before before
the enable stream sequence as a result. There could be
a race condition where we could end up enable stream based
on the previous link even though the link is updated
after the HPD toggle. This causes an issue where our link
bandwidth is no longer enough to accommodate the timing
therefore causes us to oversubscribe MST payload time
slots. As discussed we decided to add basic sanity check
to make sure that our code can handle the oversubscription
failure silently without system hang.

[how]
1. Keep PHY powered on when HPD is deasserted during
enable stream and wait for the detection sequence to power
it off later.
2. Do not allocate payload if the required timeslot for
current timing is greater than 64 timeslots.

Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Reviewed-by: George Shen <George.Shen@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2022-06-07 16:09:57 -04:00
..
basics Revert "drm/amd/display: Unblank hubp based on plane visibility" 2021-02-18 16:43:10 -05:00
bios drm/amd/display: Fix USBC link creation 2022-06-03 16:43:38 -04:00
clk_mgr Revert "drm/amd/display: Pass the new context into disable OTG WA" 2022-06-07 16:09:41 -04:00
core drm/amd/display: add DP sanity checks during enable stream 2022-06-07 16:09:57 -04:00
dce drm/amd/display: PSRSU+DSC WA for specific TCON 2022-06-06 14:42:27 -04:00
dce60 drm/amd/display/dc/dce60/dce60_resource: Include our own header containing prototypes 2021-01-14 13:20:21 -05:00
dce80 drm/amd/display: Return last used DRR VTOTAL from DC 2021-06-08 12:20:12 -04:00
dce100 drm/amd/display/dc/dce100/dce100_resource: Include our own header containing prototypes 2021-01-14 13:20:20 -05:00
dce110 drm/amd/display: Implement DTBCLK ref switching on dcn32 2022-06-03 16:45:01 -04:00
dce112 drm/amd/display: Use NULL instead of 0 2022-02-24 17:26:20 -05:00
dce120 drm/amd/display: Return last used DRR VTOTAL from DC 2021-06-08 12:20:12 -04:00
dcn10 drm/amd/display: update cursor position to DMUB FW 2022-06-06 14:42:53 -04:00
dcn20 drm/amd/display: update cursor position to DMUB FW 2022-06-06 14:42:53 -04:00
dcn21 drm/amd/display: Fix memory leak in dcn21_clock_source_create 2022-04-21 15:59:52 -04:00
dcn30 drm/amd/display: update GSP1 generic info packet for PSRSU 2022-06-06 14:40:51 -04:00
dcn31 drm/amd/display: Blank eDP on enable drv if odm enabled 2022-06-07 16:09:51 -04:00
dcn32 drm/amdgpu/display: fix DCN3.2 Makefiles for non-x86 2022-06-06 14:43:38 -04:00
dcn201 drm/amd/display: fix if == else warning 2022-04-26 11:51:20 -04:00
dcn301 drm/amd/display: Move FPU associated DCN30 code to DML folder 2022-05-26 14:56:31 -04:00
dcn302 drm/amd/display: Move FPU associated DCN30 code to DML folder 2022-05-26 14:56:31 -04:00
dcn303 drm/amd/display: Move FPU associated DCN30 code to DML folder 2022-05-26 14:56:31 -04:00
dcn315 drm/amd/display: protect remaining FPU-code calls on dcn3.1.x 2022-04-28 17:44:02 -04:00
dcn316 drm/amd/display: protect remaining FPU-code calls on dcn3.1.x 2022-04-28 17:44:02 -04:00
dcn321 drm/amdgpu/display: fix DCN3.2 Makefiles for non-x86 2022-06-06 14:43:38 -04:00
dml drm/amd/display: Correct min comp buffer size 2022-06-07 16:09:53 -04:00
dsc drm/amd: Fix spelling typo in comments 2022-06-03 16:43:36 -04:00
gpio drm/amd/display: add GPIO changes for DCN32/321 2022-06-03 16:43:37 -04:00
hdcp drm/amd/display: Enforce DPCD Address ranges 2021-06-15 17:25:41 -04:00
inc drm/amd/display: add DP sanity checks during enable stream 2022-06-07 16:09:57 -04:00
irq drm/amd/display: add missing interrupt handlers for DCN32/DCN321 2022-06-03 16:44:14 -04:00
link drm/amd/display: revert Blank eDP on disable/enable drv 2022-06-01 15:56:48 -04:00
virtual drm/amd/display: add virtual_setup_stream_attribute decl to header 2022-04-19 13:58:32 -04:00
dc.h drm/amd/display: Blank eDP on enable drv if odm enabled 2022-06-07 16:09:51 -04:00
dc_bios_types.h drm/amd/display: Add dependant changes for DCN32/321 2022-06-03 16:43:38 -04:00
dc_ddc_types.h drm/amd/display: Support for DMUB AUX 2021-03-02 14:05:41 -05:00
dc_dmub_srv.c drm/amd/display: Add DMCUB source files and changes for DCN32/321 2022-06-03 16:43:37 -04:00
dc_dmub_srv.h drm/amd/display: Add DMCUB source files and changes for DCN32/321 2022-06-03 16:43:37 -04:00
dc_dp_types.h drm/amd/display: add support for handling 128b/132b link training test request 2022-04-05 10:29:48 -04:00
dc_dsc.h drm/amd/display: move bpp range decision in decide dsc bw range function 2021-09-14 15:57:09 -04:00
dc_edid_parser.c drm/amd/display: Add Freesync HDMI support to DMCU 2021-02-02 12:11:41 -05:00
dc_edid_parser.h drm/amd/display: Add Freesync HDMI support to DMCU 2021-02-02 12:11:41 -05:00
dc_helper.c drm/amd/display: Support synchronized indirect reg access 2022-01-25 18:00:35 -05:00
dc_hw_types.h drm/amd/display: Add dependant changes for DCN32/321 2022-06-03 16:43:38 -04:00
dc_link.h drm/amd/display: Blank eDP on enable drv if odm enabled 2022-06-07 16:09:51 -04:00
dc_stat.h drm/amd/display: DMUB Outbound Interrupt Process-X86 2021-07-08 15:14:36 -04:00
dc_stream.h drm/amd/display: combine dirty rectangles in DMUB FW 2022-06-06 14:40:45 -04:00
dc_trace.h drm/amd/display: Add control mechanism for FPU utilization 2021-08-05 21:17:59 -04:00
dc_types.h drm/amd/display: Set PSR level to enable ALPM by default 2022-06-06 14:42:14 -04:00
dm_cp_psp.h drm/amd/display: unhard code link to phy idx mapping in dc link and clean up 2022-01-07 17:21:20 -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: remove redundant CONFIG_DRM_AMD_DC_DCN in dc 2022-05-10 17:53:12 -04:00
dm_pp_smu.h drm/amdgpu/pm: display vcn pp dpm (v4) 2021-05-21 10:31:55 -04:00
dm_services.h drm/amd/display: Decouple amdgpu_dm_trace from service 2020-10-26 13:33:59 -04:00
dm_services_types.h drm/amd/display: Add definition for number of backlight data points 2019-12-18 16:09:08 -05:00
irq_types.h drm/amd/display: Remove underflow IRQ type 2022-04-05 10:29:47 -04:00
Makefile drm/amd/display: Add dependant changes for DCN32/321 2022-06-03 16:43:38 -04:00
os_types.h drm: Rename dp/ to display/ 2022-04-25 11:17:45 +02:00