Commit 9d335e17 authored by Dmytro Laktyushkin's avatar Dmytro Laktyushkin Committed by Alex Deucher

drm/amd/display: use max lb for latency hiding

Enable max memory lb config to improve stutter efficiency and
latency hiding. Also increase max number of lb lines to be
used by dml since experiments have shown that there isnt a hard max
beyond what fits in lb.
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: default avatarEric Bernstein <Eric.Bernstein@amd.com>
Acked-by: default avatarSolomon Chiu <solomon.chiu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4abdb72b
...@@ -82,7 +82,7 @@ const struct _vcs_dpi_ip_params_st dcn1_0_ip = { ...@@ -82,7 +82,7 @@ const struct _vcs_dpi_ip_params_st dcn1_0_ip = {
.meta_chunk_size_kbytes = 2, .meta_chunk_size_kbytes = 2,
.writeback_chunk_size_kbytes = 2, .writeback_chunk_size_kbytes = 2,
.line_buffer_size_bits = 589824, .line_buffer_size_bits = 589824,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.IsLineBufferBppFixed = 0, .IsLineBufferBppFixed = 0,
.LineBufferFixedBpp = -1, .LineBufferFixedBpp = -1,
.writeback_luma_buffer_size_kbytes = 12, .writeback_luma_buffer_size_kbytes = 12,
...@@ -619,6 +619,7 @@ static const struct dc_debug_options debug_defaults_drv = { ...@@ -619,6 +619,7 @@ static const struct dc_debug_options debug_defaults_drv = {
.recovery_enabled = false, /*enable this by default after testing.*/ .recovery_enabled = false, /*enable this by default after testing.*/
.max_downscale_src_width = 3840, .max_downscale_src_width = 3840,
.underflow_assert_delay_us = 0xFFFFFFFF, .underflow_assert_delay_us = 0xFFFFFFFF,
.use_max_lb = true
}; };
static const struct dc_debug_options debug_defaults_diags = { static const struct dc_debug_options debug_defaults_diags = {
...@@ -630,6 +631,7 @@ static const struct dc_debug_options debug_defaults_diags = { ...@@ -630,6 +631,7 @@ static const struct dc_debug_options debug_defaults_diags = {
.disable_pplib_clock_request = true, .disable_pplib_clock_request = true,
.disable_pplib_wm_range = true, .disable_pplib_wm_range = true,
.underflow_assert_delay_us = 0xFFFFFFFF, .underflow_assert_delay_us = 0xFFFFFFFF,
.use_max_lb = true
}; };
static void dcn10_dpp_destroy(struct dpp **dpp) static void dcn10_dpp_destroy(struct dpp **dpp)
......
...@@ -112,7 +112,7 @@ struct _vcs_dpi_ip_params_st dcn2_0_ip = { ...@@ -112,7 +112,7 @@ struct _vcs_dpi_ip_params_st dcn2_0_ip = {
.is_line_buffer_bpp_fixed = 0, .is_line_buffer_bpp_fixed = 0,
.line_buffer_fixed_bpp = 0, .line_buffer_fixed_bpp = 0,
.dcc_supported = true, .dcc_supported = true,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.writeback_luma_buffer_size_kbytes = 12, .writeback_luma_buffer_size_kbytes = 12,
.writeback_chroma_buffer_size_kbytes = 8, .writeback_chroma_buffer_size_kbytes = 8,
.writeback_chroma_line_buffer_width_pixels = 4, .writeback_chroma_line_buffer_width_pixels = 4,
...@@ -180,7 +180,7 @@ static struct _vcs_dpi_ip_params_st dcn2_0_nv14_ip = { ...@@ -180,7 +180,7 @@ static struct _vcs_dpi_ip_params_st dcn2_0_nv14_ip = {
.is_line_buffer_bpp_fixed = 0, .is_line_buffer_bpp_fixed = 0,
.line_buffer_fixed_bpp = 0, .line_buffer_fixed_bpp = 0,
.dcc_supported = true, .dcc_supported = true,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.writeback_luma_buffer_size_kbytes = 12, .writeback_luma_buffer_size_kbytes = 12,
.writeback_chroma_buffer_size_kbytes = 8, .writeback_chroma_buffer_size_kbytes = 8,
.writeback_chroma_line_buffer_width_pixels = 4, .writeback_chroma_line_buffer_width_pixels = 4,
...@@ -1075,6 +1075,7 @@ static const struct dc_debug_options debug_defaults_drv = { ...@@ -1075,6 +1075,7 @@ static const struct dc_debug_options debug_defaults_drv = {
.scl_reset_length10 = true, .scl_reset_length10 = true,
.sanity_checks = false, .sanity_checks = false,
.underflow_assert_delay_us = 0xFFFFFFFF, .underflow_assert_delay_us = 0xFFFFFFFF,
.use_max_lb = true
}; };
static const struct dc_debug_options debug_defaults_diags = { static const struct dc_debug_options debug_defaults_diags = {
...@@ -1091,6 +1092,7 @@ static const struct dc_debug_options debug_defaults_diags = { ...@@ -1091,6 +1092,7 @@ static const struct dc_debug_options debug_defaults_diags = {
.scl_reset_length10 = true, .scl_reset_length10 = true,
.underflow_assert_delay_us = 0xFFFFFFFF, .underflow_assert_delay_us = 0xFFFFFFFF,
.enable_tri_buf = true, .enable_tri_buf = true,
.use_max_lb = true
}; };
void dcn20_dpp_destroy(struct dpp **dpp) void dcn20_dpp_destroy(struct dpp **dpp)
......
...@@ -115,7 +115,7 @@ struct _vcs_dpi_ip_params_st dcn2_1_ip = { ...@@ -115,7 +115,7 @@ struct _vcs_dpi_ip_params_st dcn2_1_ip = {
.is_line_buffer_bpp_fixed = 0, .is_line_buffer_bpp_fixed = 0,
.line_buffer_fixed_bpp = 0, .line_buffer_fixed_bpp = 0,
.dcc_supported = true, .dcc_supported = true,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.writeback_luma_buffer_size_kbytes = 12, .writeback_luma_buffer_size_kbytes = 12,
.writeback_chroma_buffer_size_kbytes = 8, .writeback_chroma_buffer_size_kbytes = 8,
.writeback_chroma_line_buffer_width_pixels = 4, .writeback_chroma_line_buffer_width_pixels = 4,
...@@ -882,7 +882,9 @@ static const struct dc_debug_options debug_defaults_drv = { ...@@ -882,7 +882,9 @@ static const struct dc_debug_options debug_defaults_drv = {
.scl_reset_length10 = true, .scl_reset_length10 = true,
.sanity_checks = true, .sanity_checks = true,
.disable_48mhz_pwrdwn = false, .disable_48mhz_pwrdwn = false,
.usbc_combo_phy_reset_wa = true .usbc_combo_phy_reset_wa = true,
.dmub_command_table = true,
.use_max_lb = true
}; };
static const struct dc_debug_options debug_defaults_diags = { static const struct dc_debug_options debug_defaults_diags = {
...@@ -898,7 +900,8 @@ static const struct dc_debug_options debug_defaults_diags = { ...@@ -898,7 +900,8 @@ static const struct dc_debug_options debug_defaults_diags = {
.disable_stutter = true, .disable_stutter = true,
.disable_48mhz_pwrdwn = true, .disable_48mhz_pwrdwn = true,
.disable_psr = true, .disable_psr = true,
.enable_tri_buf = true .enable_tri_buf = true,
.use_max_lb = true
}; };
enum dcn20_clk_src_array_id { enum dcn20_clk_src_array_id {
......
...@@ -120,7 +120,7 @@ struct _vcs_dpi_ip_params_st dcn3_0_ip = { ...@@ -120,7 +120,7 @@ struct _vcs_dpi_ip_params_st dcn3_0_ip = {
.dcc_supported = true, .dcc_supported = true,
.writeback_interface_buffer_size_kbytes = 90, .writeback_interface_buffer_size_kbytes = 90,
.writeback_line_buffer_buffer_size = 0, .writeback_line_buffer_buffer_size = 0,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.writeback_luma_buffer_size_kbytes = 12, // writeback_line_buffer_buffer_size = 656640 .writeback_luma_buffer_size_kbytes = 12, // writeback_line_buffer_buffer_size = 656640
.writeback_chroma_buffer_size_kbytes = 8, .writeback_chroma_buffer_size_kbytes = 8,
.writeback_chroma_line_buffer_width_pixels = 4, .writeback_chroma_line_buffer_width_pixels = 4,
...@@ -852,6 +852,7 @@ static const struct dc_debug_options debug_defaults_drv = { ...@@ -852,6 +852,7 @@ static const struct dc_debug_options debug_defaults_drv = {
.dwb_fi_phase = -1, // -1 = disable, .dwb_fi_phase = -1, // -1 = disable,
.dmub_command_table = true, .dmub_command_table = true,
.disable_psr = false, .disable_psr = false,
.use_max_lb = true
}; };
static const struct dc_debug_options debug_defaults_diags = { static const struct dc_debug_options debug_defaults_diags = {
...@@ -870,6 +871,7 @@ static const struct dc_debug_options debug_defaults_diags = { ...@@ -870,6 +871,7 @@ static const struct dc_debug_options debug_defaults_diags = {
.dmub_command_table = true, .dmub_command_table = true,
.disable_psr = true, .disable_psr = true,
.enable_tri_buf = true, .enable_tri_buf = true,
.use_max_lb = true
}; };
void dcn30_dpp_destroy(struct dpp **dpp) void dcn30_dpp_destroy(struct dpp **dpp)
......
...@@ -116,7 +116,7 @@ struct _vcs_dpi_ip_params_st dcn3_01_ip = { ...@@ -116,7 +116,7 @@ struct _vcs_dpi_ip_params_st dcn3_01_ip = {
.dcc_supported = true, .dcc_supported = true,
.writeback_interface_buffer_size_kbytes = 90, .writeback_interface_buffer_size_kbytes = 90,
.writeback_line_buffer_buffer_size = 656640, .writeback_line_buffer_buffer_size = 656640,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.writeback_luma_buffer_size_kbytes = 12, // writeback_line_buffer_buffer_size = 656640 .writeback_luma_buffer_size_kbytes = 12, // writeback_line_buffer_buffer_size = 656640
.writeback_chroma_buffer_size_kbytes = 8, .writeback_chroma_buffer_size_kbytes = 8,
.writeback_chroma_line_buffer_width_pixels = 4, .writeback_chroma_line_buffer_width_pixels = 4,
......
...@@ -101,7 +101,7 @@ struct _vcs_dpi_ip_params_st dcn3_02_ip = { ...@@ -101,7 +101,7 @@ struct _vcs_dpi_ip_params_st dcn3_02_ip = {
.dcc_supported = true, .dcc_supported = true,
.writeback_interface_buffer_size_kbytes = 90, .writeback_interface_buffer_size_kbytes = 90,
.writeback_line_buffer_buffer_size = 0, .writeback_line_buffer_buffer_size = 0,
.max_line_buffer_lines = 12, .max_line_buffer_lines = 32,
.writeback_luma_buffer_size_kbytes = 12, // writeback_line_buffer_buffer_size = 656640 .writeback_luma_buffer_size_kbytes = 12, // writeback_line_buffer_buffer_size = 656640
.writeback_chroma_buffer_size_kbytes = 8, .writeback_chroma_buffer_size_kbytes = 8,
.writeback_chroma_line_buffer_width_pixels = 4, .writeback_chroma_line_buffer_width_pixels = 4,
...@@ -223,6 +223,7 @@ static const struct dc_debug_options debug_defaults_drv = { ...@@ -223,6 +223,7 @@ static const struct dc_debug_options debug_defaults_drv = {
.underflow_assert_delay_us = 0xFFFFFFFF, .underflow_assert_delay_us = 0xFFFFFFFF,
.dwb_fi_phase = -1, // -1 = disable, .dwb_fi_phase = -1, // -1 = disable,
.dmub_command_table = true, .dmub_command_table = true,
.use_max_lb = true
}; };
static const struct dc_debug_options debug_defaults_diags = { static const struct dc_debug_options debug_defaults_diags = {
...@@ -241,6 +242,7 @@ static const struct dc_debug_options debug_defaults_diags = { ...@@ -241,6 +242,7 @@ static const struct dc_debug_options debug_defaults_diags = {
.dmub_command_table = true, .dmub_command_table = true,
.enable_tri_buf = true, .enable_tri_buf = true,
.disable_psr = true, .disable_psr = true,
.use_max_lb = true
}; };
enum dcn302_clk_src_array_id { enum dcn302_clk_src_array_id {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment