Hi Rodrigo,

Thanks for your review! This is my first time submitting a patch to the kernel.

I'm not very good at using these tools yet. 😂

Recently I got a Huawei Qingyun W510 (擎云 W510) ARM workstation

from the second-hand market in China. It's SBSA and has a Kunpeng 920 (3211k) 
SoC

with 24 Huawei-customized TSV110 cores. Since it's SFF form factor, and my 
machine

supports PCIe 4.0 (looks like some W510 have it disabled), I installed an RX 
6400 on it

as my daily drive machine. It has decent performance. I uploaded a benchmark 
result on Geekbench.

Link: https://browser.geekbench.com/v5/cpu/18237269

Ao

Am 26.10.22 um 18:12 schrieb Rodrigo Siqueira:
>
>
> On 10/26/22 07:13, Ao Zhong wrote:
>> pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_luma = 0;
>> pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_chroma = 0;
>> these two operations in dcn32/dcn32_resource.c still need to use FPU,
>> This will cause compilation to fail on ARM64 platforms because
>> -mgeneral-regs-only is enabled by default to disable the hardware FPU.
>> Therefore, imitate the dcn31_zero_pipe_dcc_fraction function in
>> dml/dcn31/dcn31_fpu.c, declare the dcn32_zero_pipe_dcc_fraction function
>> in dcn32_fpu.c, and move above two operations into this function.
>>
>> Acked-by: Christian König <christian.koe...@amd.com>
>> Signed-off-by: Ao Zhong <hacc1...@gmail.com>
>> ---
>>   drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 5 +++--
>>   drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c  | 8 ++++++++
>>   drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h  | 3 +++
>>   3 files changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c 
>> b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
>> index a88dd7b3d1c1..287b7fa9bf41 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
>> +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
>> @@ -1918,8 +1918,9 @@ int dcn32_populate_dml_pipes_from_context(
>>           timing = &pipe->stream->timing;
>>             pipes[pipe_cnt].pipe.src.gpuvm = true;
>> -        pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_luma = 0;
>> -        pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_chroma = 0;
>> +        DC_FP_START();
>> +        dcn32_zero_pipe_dcc_fraction(pipes, pipe_cnt);
>> +        DC_FP_END();
>>           pipes[pipe_cnt].pipe.dest.vfront_porch = timing->v_front_porch;
>>           pipes[pipe_cnt].pipe.src.gpuvm_min_page_size_kbytes = 256; // 
>> according to spreadsheet
>>           pipes[pipe_cnt].pipe.src.unbounded_req_mode = false;
>> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c 
>> b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
>> index 819de0f11012..58772fce6437 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
>> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
>> @@ -2521,3 +2521,11 @@ void dcn32_update_bw_bounding_box_fpu(struct dc *dc, 
>> struct clk_bw_params *bw_pa
>>       }
>>   }
>>   +void dcn32_zero_pipe_dcc_fraction(display_e2e_pipe_params_st *pipes,
>> +                  int pipe_cnt)
>> +{
>> +    dc_assert_fp_enabled();
>> +
>> +    pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_luma = 0;
>> +    pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_chroma = 0;
>> +}
>> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h 
>> b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h
>> index 3a3dc2ce4c73..ab010e7e840b 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h
>> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h
>> @@ -73,4 +73,7 @@ int 
>> dcn32_find_dummy_latency_index_for_fw_based_mclk_switch(struct dc *dc,
>>     void dcn32_patch_dpm_table(struct clk_bw_params *bw_params);
>>   +void dcn32_zero_pipe_dcc_fraction(display_e2e_pipe_params_st *pipes,
>> +                  int pipe_cnt);
>> +
>>   #endif
>
> Hi Ao,
>
> First of all, thanks a lot for your patchset.
>
> For both patches:
>
> Reviewed-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
>
> And I also applied them to amd-staging-drm-next.
>
> Btw, if you are using git-send-email for sending patches, I recommend the 
> following options:
>
> git send-email --annotate --cover-letter --thread --no-chain-reply-to 
> --to="EMAILS" --cc="mail...@list.com" <SHA>
>
> Always add a cover letter, it makes it easier to follow the patchset, and you 
> can also describe each change in the cover letter.
>
> When you send that other patch enabling ARM64, please add as many details as 
> possible in the cover letter. Keep in mind that we have been working for 
> isolating those FPU codes in a way that we do not regress any of our ASICs, 
> which means that every change was well-tested on multiple devices. Anyway, 
> maybe you can refer to this cover letter to write down the commit message:
>
> https://patchwork.freedesktop.org/series/93042/
>
> Finally, do you have a use case for this change? I mean, ARM64 + AMD dGPU.
>
> Thanks again!
> Siqueira
>

Reply via email to