drm/amd/display: Allow building DC with clang on LoongArch
authorHuacai Chen <chenhuacai@loongson.cn>
Fri, 15 Nov 2024 15:02:25 +0000 (23:02 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 20 Nov 2024 15:03:06 +0000 (10:03 -0500)
Clang on LoongArch (18+) appears to be unaffected by the bug causing
excessive stack usage in calculate_bandwidth(). But when building DC_FP
support the stack frame size can be as large as 2816 bytes, which causes
the FRAME_WARN build warnings. So on LoongArch we allow building DC with
clang, but disable DC_FP by default.

The help message is also updated.

Tested-by: Rui Wang <wangrui@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/Kconfig

index df17e79..11e3f2f 100644 (file)
@@ -7,20 +7,21 @@ menu "Display Engine Configuration"
 config DRM_AMD_DC
        bool "AMD DC - Enable new display engine"
        default y
-       depends on BROKEN || !CC_IS_CLANG || ARM64 || RISCV || SPARC64 || X86_64
+       depends on BROKEN || !CC_IS_CLANG || ARM64 || LOONGARCH || RISCV || SPARC64 || X86_64
        select SND_HDA_COMPONENT if SND_HDA_CORE
        # !CC_IS_CLANG: https://github.com/ClangBuiltLinux/linux/issues/1752
-       select DRM_AMD_DC_FP if ARCH_HAS_KERNEL_FPU_SUPPORT && !(CC_IS_CLANG && (ARM64 || RISCV))
+       select DRM_AMD_DC_FP if ARCH_HAS_KERNEL_FPU_SUPPORT && !(CC_IS_CLANG && (ARM64 || LOONGARCH || RISCV))
        help
          Choose this option if you want to use the new display engine
          support for AMDGPU. This adds required support for Vega and
          Raven ASICs.
 
-         calculate_bandwidth() is presently broken on all !(X86_64 || SPARC64 || ARM64)
-         architectures built with Clang (all released versions), whereby the stack
-         frame gets blown up to well over 5k.  This would cause an immediate kernel
-         panic on most architectures.  We'll revert this when the following bug report
-         has been resolved: https://github.com/llvm/llvm-project/issues/41896.
+         calculate_bandwidth() is presently broken on all !(X86_64 || SPARC64 ||
+         ARM64 || LOONGARCH || RISCV) architectures built with Clang (all released
+         versions), whereby the stack frame gets blown up to well over 5k.  This
+         would cause an immediate kernel panic on most architectures.  We'll revert
+         this when the following bug report has been resolved:
+         https://github.com/llvm/llvm-project/issues/41896.
 
 config DRM_AMD_DC_FP
        def_bool n