|
Jiri Slaby |
ef7db2 |
From: Ian Chen <ian.chen@amd.com>
|
|
Jiri Slaby |
ef7db2 |
Date: Mon, 28 Nov 2022 16:17:34 +0800
|
|
Jiri Slaby |
ef7db2 |
Subject: [PATCH] drm/amd/display: Revert Reduce delay when sink device not
|
|
Jiri Slaby |
ef7db2 |
able to ACK 00340h write
|
|
Jiri Slaby |
ef7db2 |
References: bsc#1012628
|
|
Jiri Slaby |
ef7db2 |
Patch-mainline: 6.2.3
|
|
Jiri Slaby |
ef7db2 |
Git-commit: 639f6ad6df7f47db48b59956b469a6917a136afb
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
[ Upstream commit 639f6ad6df7f47db48b59956b469a6917a136afb ]
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
[WHY]
|
|
Jiri Slaby |
ef7db2 |
It causes regression AMD source will not write DPCD 340.
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
Reviewed-by: Wayne Lin <Wayne.Lin@amd.com>
|
|
Jiri Slaby |
ef7db2 |
Acked-by: Jasdeep Dhillon <jdhillon@amd.com>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Ian Chen <ian.chen@amd.com>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
ef7db2 |
---
|
|
Jiri Slaby |
ef7db2 |
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 6 ------
|
|
Jiri Slaby |
ef7db2 |
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 14 +++-----------
|
|
Jiri Slaby |
ef7db2 |
drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 1 -
|
|
Jiri Slaby |
ef7db2 |
3 files changed, 3 insertions(+), 18 deletions(-)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
|
|
Jiri Slaby |
ef7db2 |
index c88f0446..754fc863 100644
|
|
Jiri Slaby |
ef7db2 |
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
|
|
Jiri Slaby |
ef7db2 |
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
|
|
Jiri Slaby |
ef7db2 |
@@ -1916,12 +1916,6 @@ struct dc_link *link_create(const struct link_init_data *init_params)
|
|
Jiri Slaby |
ef7db2 |
if (false == dc_link_construct(link, init_params))
|
|
Jiri Slaby |
ef7db2 |
goto construct_fail;
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
- /*
|
|
Jiri Slaby |
ef7db2 |
- * Must use preferred_link_setting, not reported_link_cap or verified_link_cap,
|
|
Jiri Slaby |
ef7db2 |
- * since struct preferred_link_setting won't be reset after S3.
|
|
Jiri Slaby |
ef7db2 |
- */
|
|
Jiri Slaby |
ef7db2 |
- link->preferred_link_setting.dpcd_source_device_specific_field_support = true;
|
|
Jiri Slaby |
ef7db2 |
-
|
|
Jiri Slaby |
ef7db2 |
return link;
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
construct_fail:
|
|
Jiri Slaby |
ef7db2 |
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
|
|
Jiri Slaby |
ef7db2 |
index dedd1246..475ad3ee 100644
|
|
Jiri Slaby |
ef7db2 |
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
|
|
Jiri Slaby |
ef7db2 |
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
|
|
Jiri Slaby |
ef7db2 |
@@ -6554,18 +6554,10 @@ void dpcd_set_source_specific_data(struct dc_link *link)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
uint8_t hblank_size = (uint8_t)link->dc->caps.min_horizontal_blanking_period;
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
- if (link->preferred_link_setting.dpcd_source_device_specific_field_support) {
|
|
Jiri Slaby |
ef7db2 |
- result_write_min_hblank = core_link_write_dpcd(link,
|
|
Jiri Slaby |
ef7db2 |
- DP_SOURCE_MINIMUM_HBLANK_SUPPORTED, (uint8_t *)(&hblank_size),
|
|
Jiri Slaby |
ef7db2 |
- sizeof(hblank_size));
|
|
Jiri Slaby |
ef7db2 |
-
|
|
Jiri Slaby |
ef7db2 |
- if (result_write_min_hblank == DC_ERROR_UNEXPECTED)
|
|
Jiri Slaby |
ef7db2 |
- link->preferred_link_setting.dpcd_source_device_specific_field_support = false;
|
|
Jiri Slaby |
ef7db2 |
- } else {
|
|
Jiri Slaby |
ef7db2 |
- DC_LOG_DC("Sink device does not support 00340h DPCD write. Skipping on purpose.\n");
|
|
Jiri Slaby |
ef7db2 |
- }
|
|
Jiri Slaby |
ef7db2 |
+ result_write_min_hblank = core_link_write_dpcd(link,
|
|
Jiri Slaby |
ef7db2 |
+ DP_SOURCE_MINIMUM_HBLANK_SUPPORTED, (uint8_t *)(&hblank_size),
|
|
Jiri Slaby |
ef7db2 |
+ sizeof(hblank_size));
|
|
Jiri Slaby |
ef7db2 |
}
|
|
Jiri Slaby |
ef7db2 |
-
|
|
Jiri Slaby |
ef7db2 |
DC_TRACE_LEVEL_MESSAGE(DAL_TRACE_LEVEL_INFORMATION,
|
|
Jiri Slaby |
ef7db2 |
WPP_BIT_FLAG_DC_DETECTION_DP_CAPS,
|
|
Jiri Slaby |
ef7db2 |
"result=%u link_index=%u enum dce_version=%d DPCD=0x%04X min_hblank=%u branch_dev_id=0x%x branch_dev_name='%c%c%c%c%c%c'",
|
|
Jiri Slaby |
ef7db2 |
diff --git a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
|
|
Jiri Slaby |
ef7db2 |
index 2c54b6e0..296793d8 100644
|
|
Jiri Slaby |
ef7db2 |
--- a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
|
|
Jiri Slaby |
ef7db2 |
+++ b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
|
|
Jiri Slaby |
ef7db2 |
@@ -149,7 +149,6 @@ struct dc_link_settings {
|
|
Jiri Slaby |
ef7db2 |
enum dc_link_spread link_spread;
|
|
Jiri Slaby |
ef7db2 |
bool use_link_rate_set;
|
|
Jiri Slaby |
ef7db2 |
uint8_t link_rate_set;
|
|
Jiri Slaby |
ef7db2 |
- bool dpcd_source_device_specific_field_support;
|
|
Jiri Slaby |
ef7db2 |
};
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
union dc_dp_ffe_preset {
|
|
Jiri Slaby |
ef7db2 |
--
|
|
Jiri Slaby |
ef7db2 |
2.35.3
|
|
Jiri Slaby |
ef7db2 |
|