On 2022-07-20 15:32, Melissa Wen wrote:
An initial report from Guenter[1] shows some soft-fp vs hard-fp error
from DCN31 clk mgr for powerpc. I was not able to reproduce it
cross-compiling with gcc-powerpc-linux-gnu and gcc-11.3, but thanks to
Maíra tips, I can reproduce the issue using make.cross, as follows:
- wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
- chmod +x ~/bin/make.cross
- mkdir build_dir
- COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 ~/make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash
Hi Melissa,
I didn't know about these steps, I was trying to reproduce this issue by
using the standard cross compile package provided by my distro (Debian
testing and ArchLinux), and as a result, I was never able to see the
problem. Anyway, I can now reproduce this issue, thanks a lot.
with a config file generate by allmodconfig
So, the first patch fix the issue reported by Guenter. The second is
just a cleanup in dcn31_resource file to remove useless DC_FP_ wrapper.
Finally, the last three patches I'm removing the -mno-gnu-attribute
option, that was just hiding FPU-associated code in clk mgr files of
dcn21/30/301, and moving them to DML folder. This series doesn't cover
recent drivers dcn32/314.
I validated this series in our internal CI by running multiple IGT tests
in numerous ASICs. Tomorrow we will also send some extra patches
associated with this FPU effort; hopefully, after that, we will finally
have all the FPU code under DML. Again, thanks a lot for your effort!
Thanks
Siqueira
Thanks Guenter, Maíra, Siqueira and Alex for all inputs on this
debugging process. Let me know your thoughts on this approach.
Melissa
[1] https://lore.kernel.org/amd-gfx/20220618232737.2036722-1-linux@xxxxxxxxxxxx/>>
Melissa Wen (5):
drm/amd/display: fix soft-fp vs hard-fp on DCN 3.1 family for powerpc
drm/amd/display: remove useless FPU protection wrapper from
dcn31_resource file
drm/amd/display: move FPU code on dcn21 clk_mgr
drm/amd/display: move FPU code from dcn30 clk mgr to DML folder
drm/amd/display: move FPU code from dcn301 clk mgr to DML folder
.../gpu/drm/amd/display/dc/clk_mgr/Makefile | 18 --
.../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 234 +----------------
.../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.h | 7 +
.../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 63 +----
.../display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 86 +------
.../display/dc/clk_mgr/dcn301/vg_clk_mgr.h | 3 +
.../drm/amd/display/dc/dcn31/dcn31_resource.c | 11 +-
.../amd/display/dc/dcn315/dcn315_resource.c | 5 +-
.../amd/display/dc/dcn316/dcn316_resource.c | 5 +-
.../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 235 ++++++++++++++++++
.../drm/amd/display/dc/dml/dcn20/dcn20_fpu.h | 2 +
.../drm/amd/display/dc/dml/dcn30/dcn30_fpu.c | 63 ++++-
.../drm/amd/display/dc/dml/dcn30/dcn30_fpu.h | 1 +
.../amd/display/dc/dml/dcn301/dcn301_fpu.c | 74 ++++++
.../drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 11 +
.../drm/amd/display/dc/dml/dcn31/dcn31_fpu.h | 3 +
16 files changed, 423 insertions(+), 398 deletions(-)