mirror of
https://github.com/torvalds/linux.git
synced 2026-04-25 18:12:26 -04:00
drm/amd/display: Add link encoding to timing BW calculation parameters
[Why] There certain cases where the timing BW is dependent on the type of link encoding in use. Thus to calculate the correct BW required for a given timing, the link encoding should be added as a parameter. Reviewed-by: Wenjing Liu <wenjing.liu@amd.com> Acked-by: Alan Liu <haoping.liu@amd.com> Signed-off-by: George Shen <george.shen@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
9747641808
commit
63c0bf99c1
@@ -5793,6 +5793,7 @@ static void apply_dsc_policy_for_edp(struct amdgpu_dm_connector *aconnector,
|
||||
edp_min_bpp_x16, edp_max_bpp_x16,
|
||||
dsc_caps,
|
||||
&stream->timing,
|
||||
dc_link_get_highest_encoding_format(aconnector->dc_link),
|
||||
&bw_range)) {
|
||||
|
||||
if (bw_range.max_kbps < link_bw_in_kbps) {
|
||||
@@ -5801,6 +5802,7 @@ static void apply_dsc_policy_for_edp(struct amdgpu_dm_connector *aconnector,
|
||||
&dsc_options,
|
||||
0,
|
||||
&stream->timing,
|
||||
dc_link_get_highest_encoding_format(aconnector->dc_link),
|
||||
&dsc_cfg)) {
|
||||
stream->timing.dsc_cfg = dsc_cfg;
|
||||
stream->timing.flags.DSC = 1;
|
||||
@@ -5815,6 +5817,7 @@ static void apply_dsc_policy_for_edp(struct amdgpu_dm_connector *aconnector,
|
||||
&dsc_options,
|
||||
link_bw_in_kbps,
|
||||
&stream->timing,
|
||||
dc_link_get_highest_encoding_format(aconnector->dc_link),
|
||||
&dsc_cfg)) {
|
||||
stream->timing.dsc_cfg = dsc_cfg;
|
||||
stream->timing.flags.DSC = 1;
|
||||
@@ -5858,12 +5861,14 @@ static void apply_dsc_policy_for_stream(struct amdgpu_dm_connector *aconnector,
|
||||
&dsc_options,
|
||||
link_bandwidth_kbps,
|
||||
&stream->timing,
|
||||
dc_link_get_highest_encoding_format(aconnector->dc_link),
|
||||
&stream->timing.dsc_cfg)) {
|
||||
stream->timing.flags.DSC = 1;
|
||||
DRM_DEBUG_DRIVER("%s: [%s] DSC is selected from SST RX\n", __func__, drm_connector->name);
|
||||
}
|
||||
} else if (sink->link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_HDMI_CONVERTER) {
|
||||
timing_bw_in_kbps = dc_bandwidth_in_kbps_from_timing(&stream->timing);
|
||||
timing_bw_in_kbps = dc_bandwidth_in_kbps_from_timing(&stream->timing,
|
||||
dc_link_get_highest_encoding_format(aconnector->dc_link));
|
||||
max_supported_bw_in_kbps = link_bandwidth_kbps;
|
||||
dsc_max_supported_bw_in_kbps = link_bandwidth_kbps;
|
||||
|
||||
@@ -5875,6 +5880,7 @@ static void apply_dsc_policy_for_stream(struct amdgpu_dm_connector *aconnector,
|
||||
&dsc_options,
|
||||
dsc_max_supported_bw_in_kbps,
|
||||
&stream->timing,
|
||||
dc_link_get_highest_encoding_format(aconnector->dc_link),
|
||||
&stream->timing.dsc_cfg)) {
|
||||
stream->timing.flags.DSC = 1;
|
||||
DRM_DEBUG_DRIVER("%s: [%s] DSC is selected from DP-HDMI PCON\n",
|
||||
|
||||
Reference in New Issue
Block a user