On Mon, Dec 7, 2020 at 9:50 PM Christian König christian.koenig@amd.com wrote:
Am 07.12.20 um 21:47 schrieb Alex Deucher:
On Fri, Dec 4, 2020 at 3:13 AM Arnd Bergmann arnd@kernel.org wrote:
From: Arnd Bergmann arnd@arndb.de
As the DRM_AMD_DC_DCN3_0 code was x86-only and fails to build on arm64, merging it into DRM_AMD_DC means that the top-level symbol is now x86-only as well.
Compilation fails on arm64 with clang-12 with
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3641:6: error: stack frame size of 2416 bytes in function 'dml30_ModeSupportAndSystemConfigurationFull' [-Werror,-Wframe-larger-than=] void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
I tried to see if the stack usage can be reduced, but this is code that is described as "This file is gcc-parsable HW gospel, coming straight from HW engineers." and is written in a way that is inherently nonportable and not meant to be understood by humans.
There are probably no non-x86 users of this code, so simplify the dependency list accordingly.
- Daniel, Timothy
Others contributed code to enable this on PPC64 and ARM64. Unfortunately, we don't have these platforms to test with within AMD. Does PPC64 have the same stack limitations as ARM64? Harry, Leo, can you take a look at fixing the stack usage?
This reminds me that I wanted to reply on this.
2416 is even to much on x86 if you add -Werror :)
So this needs to be fixed anyway.
Right, looking at my latest randconfig logs, I see the same problem on x86 builds with clang as well, though I'm not entirely sure which other configuration options are needed to trigger it.
So my patch can be disregarded, but I agree this needs a better fix, either in clang or in the dcn driver.
Arnd