Skip to content

Commit d534977

Browse files
leungmartinalexdeucher
authored andcommitted
drm/amd/display: update soc bb for nv14
[why] nv14 previously inherited soc bb from generic dcn 2, did not match watermark values according to memory team [how] add nv14 specific soc bb: copy nv2 generic that it was using from before, but changed num channels to 8 Signed-off-by: Martin Leung <[email protected]> Reviewed-by: Jun Lei <[email protected]> Acked-by: Rodrigo Siqueira <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 513dc79 commit d534977

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,117 @@ struct _vcs_dpi_soc_bounding_box_st dcn2_0_soc = {
335335
.use_urgent_burst_bw = 0
336336
};
337337

338+
struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv14_soc = {
339+
.clock_limits = {
340+
{
341+
.state = 0,
342+
.dcfclk_mhz = 560.0,
343+
.fabricclk_mhz = 560.0,
344+
.dispclk_mhz = 513.0,
345+
.dppclk_mhz = 513.0,
346+
.phyclk_mhz = 540.0,
347+
.socclk_mhz = 560.0,
348+
.dscclk_mhz = 171.0,
349+
.dram_speed_mts = 8960.0,
350+
},
351+
{
352+
.state = 1,
353+
.dcfclk_mhz = 694.0,
354+
.fabricclk_mhz = 694.0,
355+
.dispclk_mhz = 642.0,
356+
.dppclk_mhz = 642.0,
357+
.phyclk_mhz = 600.0,
358+
.socclk_mhz = 694.0,
359+
.dscclk_mhz = 214.0,
360+
.dram_speed_mts = 11104.0,
361+
},
362+
{
363+
.state = 2,
364+
.dcfclk_mhz = 875.0,
365+
.fabricclk_mhz = 875.0,
366+
.dispclk_mhz = 734.0,
367+
.dppclk_mhz = 734.0,
368+
.phyclk_mhz = 810.0,
369+
.socclk_mhz = 875.0,
370+
.dscclk_mhz = 245.0,
371+
.dram_speed_mts = 14000.0,
372+
},
373+
{
374+
.state = 3,
375+
.dcfclk_mhz = 1000.0,
376+
.fabricclk_mhz = 1000.0,
377+
.dispclk_mhz = 1100.0,
378+
.dppclk_mhz = 1100.0,
379+
.phyclk_mhz = 810.0,
380+
.socclk_mhz = 1000.0,
381+
.dscclk_mhz = 367.0,
382+
.dram_speed_mts = 16000.0,
383+
},
384+
{
385+
.state = 4,
386+
.dcfclk_mhz = 1200.0,
387+
.fabricclk_mhz = 1200.0,
388+
.dispclk_mhz = 1284.0,
389+
.dppclk_mhz = 1284.0,
390+
.phyclk_mhz = 810.0,
391+
.socclk_mhz = 1200.0,
392+
.dscclk_mhz = 428.0,
393+
.dram_speed_mts = 16000.0,
394+
},
395+
/*Extra state, no dispclk ramping*/
396+
{
397+
.state = 5,
398+
.dcfclk_mhz = 1200.0,
399+
.fabricclk_mhz = 1200.0,
400+
.dispclk_mhz = 1284.0,
401+
.dppclk_mhz = 1284.0,
402+
.phyclk_mhz = 810.0,
403+
.socclk_mhz = 1200.0,
404+
.dscclk_mhz = 428.0,
405+
.dram_speed_mts = 16000.0,
406+
},
407+
},
408+
.num_states = 5,
409+
.sr_exit_time_us = 8.6,
410+
.sr_enter_plus_exit_time_us = 10.9,
411+
.urgent_latency_us = 4.0,
412+
.urgent_latency_pixel_data_only_us = 4.0,
413+
.urgent_latency_pixel_mixed_with_vm_data_us = 4.0,
414+
.urgent_latency_vm_data_only_us = 4.0,
415+
.urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096,
416+
.urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096,
417+
.urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
418+
.pct_ideal_dram_sdp_bw_after_urgent_pixel_only = 40.0,
419+
.pct_ideal_dram_sdp_bw_after_urgent_pixel_and_vm = 40.0,
420+
.pct_ideal_dram_sdp_bw_after_urgent_vm_only = 40.0,
421+
.max_avg_sdp_bw_use_normal_percent = 40.0,
422+
.max_avg_dram_bw_use_normal_percent = 40.0,
423+
.writeback_latency_us = 12.0,
424+
.ideal_dram_bw_after_urgent_percent = 40.0,
425+
.max_request_size_bytes = 256,
426+
.dram_channel_width_bytes = 2,
427+
.fabric_datapath_to_dcn_data_return_bytes = 64,
428+
.dcn_downspread_percent = 0.5,
429+
.downspread_percent = 0.38,
430+
.dram_page_open_time_ns = 50.0,
431+
.dram_rw_turnaround_time_ns = 17.5,
432+
.dram_return_buffer_per_channel_bytes = 8192,
433+
.round_trip_ping_latency_dcfclk_cycles = 131,
434+
.urgent_out_of_order_return_per_channel_bytes = 256,
435+
.channel_interleave_bytes = 256,
436+
.num_banks = 8,
437+
.num_chans = 8,
438+
.vmm_page_size_bytes = 4096,
439+
.dram_clock_change_latency_us = 404.0,
440+
.dummy_pstate_latency_us = 5.0,
441+
.writeback_dram_clock_change_latency_us = 23.0,
442+
.return_bus_width_bytes = 64,
443+
.dispclk_dppclk_vco_speed_mhz = 3850,
444+
.xfc_bus_transport_time_us = 20,
445+
.xfc_xbuf_latency_tolerance_us = 4,
446+
.use_urgent_burst_bw = 0
447+
};
448+
338449
struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv12_soc = { 0 };
339450

340451
#ifndef mmDP0_DP_DPHY_INTERNAL_CTRL
@@ -3291,6 +3402,9 @@ void dcn20_patch_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st
32913402
static struct _vcs_dpi_soc_bounding_box_st *get_asic_rev_soc_bb(
32923403
uint32_t hw_internal_rev)
32933404
{
3405+
if (ASICREV_IS_NAVI14_M(hw_internal_rev))
3406+
return &dcn2_0_nv14_soc;
3407+
32943408
if (ASICREV_IS_NAVI12_P(hw_internal_rev))
32953409
return &dcn2_0_nv12_soc;
32963410

0 commit comments

Comments
 (0)