[PATCH 1/2] drm/amd/display: Embed DCN2 SOC bounding box

Ernst Sjöstrand ernstp at gmail.com
Tue Jul 30 14:21:09 UTC 2019


Isn't NV10 a family of chips in Nouveau?

Regards
//Ernst

Den tis 30 juli 2019 kl 15:57 skrev Nicholas Kazlauskas
<nicholas.kazlauskas at amd.com>:
>
> [Why]
> In order to support uclk switching on NV10 the SOC bounding box
> needs to be updated.
>
> [How]
> We currently read the constants from the gpu info FW, but supporting
> workarounds in DC for different versions of the FW adds additional
> complexity to the codebase.
>
> NV10 has been released so it's cleanest to keep the bounding box and
> source code in sync by embedding the bounding box like we do for
> other ASICs.
>
> Fixes: 02316e963a5a ("drm/amd/display: Force uclk to max for every state")
>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Harry Wentland <harry.wentland at amd.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> ---
>  .../drm/amd/display/dc/dcn20/dcn20_resource.c | 114 +++++++++++++++++-
>  1 file changed, 112 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
> index 44537651f0a1..ff30f5cc4981 100644
> --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
> +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
> @@ -80,7 +80,7 @@
>
>  #include "amdgpu_socbb.h"
>
> -#define SOC_BOUNDING_BOX_VALID false
> +#define SOC_BOUNDING_BOX_VALID true
>  #define DC_LOGGER_INIT(logger)
>
>  struct _vcs_dpi_ip_params_st dcn2_0_ip = {
> @@ -154,7 +154,117 @@ struct _vcs_dpi_ip_params_st dcn2_0_ip = {
>         .xfc_fill_constant_bytes = 0,
>  };
>
> -struct _vcs_dpi_soc_bounding_box_st dcn2_0_soc = { 0 };
> +struct _vcs_dpi_soc_bounding_box_st dcn2_0_soc = {
> +       /* Defaults that get patched on driver load from firmware. */
> +       .clock_limits = {
> +                       {
> +                               .state = 0,
> +                               .dcfclk_mhz = 560.0,
> +                               .fabricclk_mhz = 560.0,
> +                               .dispclk_mhz = 513.0,
> +                               .dppclk_mhz = 513.0,
> +                               .phyclk_mhz = 540.0,
> +                               .socclk_mhz = 560.0,
> +                               .dscclk_mhz = 171.0,
> +                               .dram_speed_mts = 8960.0,
> +                       },
> +                       {
> +                               .state = 1,
> +                               .dcfclk_mhz = 694.0,
> +                               .fabricclk_mhz = 694.0,
> +                               .dispclk_mhz = 642.0,
> +                               .dppclk_mhz = 642.0,
> +                               .phyclk_mhz = 600.0,
> +                               .socclk_mhz = 694.0,
> +                               .dscclk_mhz = 214.0,
> +                               .dram_speed_mts = 11104.0,
> +                       },
> +                       {
> +                               .state = 2,
> +                               .dcfclk_mhz = 875.0,
> +                               .fabricclk_mhz = 875.0,
> +                               .dispclk_mhz = 734.0,
> +                               .dppclk_mhz = 734.0,
> +                               .phyclk_mhz = 810.0,
> +                               .socclk_mhz = 875.0,
> +                               .dscclk_mhz = 245.0,
> +                               .dram_speed_mts = 14000.0,
> +                       },
> +                       {
> +                               .state = 3,
> +                               .dcfclk_mhz = 1000.0,
> +                               .fabricclk_mhz = 1000.0,
> +                               .dispclk_mhz = 1100.0,
> +                               .dppclk_mhz = 1100.0,
> +                               .phyclk_mhz = 810.0,
> +                               .socclk_mhz = 1000.0,
> +                               .dscclk_mhz = 367.0,
> +                               .dram_speed_mts = 16000.0,
> +                       },
> +                       {
> +                               .state = 4,
> +                               .dcfclk_mhz = 1200.0,
> +                               .fabricclk_mhz = 1200.0,
> +                               .dispclk_mhz = 1284.0,
> +                               .dppclk_mhz = 1284.0,
> +                               .phyclk_mhz = 810.0,
> +                               .socclk_mhz = 1200.0,
> +                               .dscclk_mhz = 428.0,
> +                               .dram_speed_mts = 16000.0,
> +                       },
> +                       /*Extra state, no dispclk ramping*/
> +                       {
> +                               .state = 5,
> +                               .dcfclk_mhz = 1200.0,
> +                               .fabricclk_mhz = 1200.0,
> +                               .dispclk_mhz = 1284.0,
> +                               .dppclk_mhz = 1284.0,
> +                               .phyclk_mhz = 810.0,
> +                               .socclk_mhz = 1200.0,
> +                               .dscclk_mhz = 428.0,
> +                               .dram_speed_mts = 16000.0,
> +                       },
> +               },
> +       .num_states = 5,
> +       .sr_exit_time_us = 8.6,
> +       .sr_enter_plus_exit_time_us = 10.9,
> +       .urgent_latency_us = 4.0,
> +       .urgent_latency_pixel_data_only_us = 4.0,
> +       .urgent_latency_pixel_mixed_with_vm_data_us = 4.0,
> +       .urgent_latency_vm_data_only_us = 4.0,
> +       .urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096,
> +       .urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096,
> +       .urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
> +       .pct_ideal_dram_sdp_bw_after_urgent_pixel_only = 40.0,
> +       .pct_ideal_dram_sdp_bw_after_urgent_pixel_and_vm = 40.0,
> +       .pct_ideal_dram_sdp_bw_after_urgent_vm_only = 40.0,
> +       .max_avg_sdp_bw_use_normal_percent = 40.0,
> +       .max_avg_dram_bw_use_normal_percent = 40.0,
> +       .writeback_latency_us = 12.0,
> +       .ideal_dram_bw_after_urgent_percent = 40.0,
> +       .max_request_size_bytes = 256,
> +       .dram_channel_width_bytes = 2,
> +       .fabric_datapath_to_dcn_data_return_bytes = 64,
> +       .dcn_downspread_percent = 0.5,
> +       .downspread_percent = 0.38,
> +       .dram_page_open_time_ns = 50.0,
> +       .dram_rw_turnaround_time_ns = 17.5,
> +       .dram_return_buffer_per_channel_bytes = 8192,
> +       .round_trip_ping_latency_dcfclk_cycles = 131,
> +       .urgent_out_of_order_return_per_channel_bytes = 256,
> +       .channel_interleave_bytes = 256,
> +       .num_banks = 8,
> +       .num_chans = 16,
> +       .vmm_page_size_bytes = 4096,
> +       .dram_clock_change_latency_us = 404.0,
> +       .dummy_pstate_latency_us = 5.0,
> +       .writeback_dram_clock_change_latency_us = 23.0,
> +       .return_bus_width_bytes = 64,
> +       .dispclk_dppclk_vco_speed_mhz = 3850,
> +       .xfc_bus_transport_time_us = 20,
> +       .xfc_xbuf_latency_tolerance_us = 4,
> +       .use_urgent_burst_bw = 0
> +};
>
>
>  #ifndef mmDP0_DP_DPHY_INTERNAL_CTRL
> --
> 2.17.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list