Commit 9a06655e authored by Huacai Chen's avatar Huacai Chen Committed by Alex Deucher

drm/amdgpu/display: Enable DC_FP for LoongArch

LoongArch now provides kernel_fpu_begin() and kernel_fpu_end() that are
used like the x86 counterparts in commit 2b3bd32e ("LoongArch:
Provide kernel fpu functions"), so we can enable DC_FP on LoongArch for
supporting more DCN devices.
Signed-off-by: default avatarWANG Xuerui <kernel@xen0n.name>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
Signed-off-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c488a937
...@@ -8,7 +8,7 @@ config DRM_AMD_DC ...@@ -8,7 +8,7 @@ config DRM_AMD_DC
depends on BROKEN || !CC_IS_CLANG || X86_64 || SPARC64 || ARM64 depends on BROKEN || !CC_IS_CLANG || X86_64 || SPARC64 || ARM64
select SND_HDA_COMPONENT if SND_HDA_CORE select SND_HDA_COMPONENT if SND_HDA_CORE
# !CC_IS_CLANG: https://github.com/ClangBuiltLinux/linux/issues/1752 # !CC_IS_CLANG: https://github.com/ClangBuiltLinux/linux/issues/1752
select DRM_AMD_DC_FP if (X86 || PPC64 || (ARM64 && KERNEL_MODE_NEON && !CC_IS_CLANG)) select DRM_AMD_DC_FP if (X86 || LOONGARCH || PPC64 || (ARM64 && KERNEL_MODE_NEON && !CC_IS_CLANG))
help help
Choose this option if you want to use the new display engine Choose this option if you want to use the new display engine
support for AMDGPU. This adds required support for Vega and support for AMDGPU. This adds required support for Vega and
......
...@@ -33,6 +33,8 @@ ...@@ -33,6 +33,8 @@
#include <asm/cputable.h> #include <asm/cputable.h>
#elif defined(CONFIG_ARM64) #elif defined(CONFIG_ARM64)
#include <asm/neon.h> #include <asm/neon.h>
#elif defined(CONFIG_LOONGARCH)
#include <asm/fpu.h>
#endif #endif
/** /**
...@@ -88,7 +90,7 @@ void dc_fpu_begin(const char *function_name, const int line) ...@@ -88,7 +90,7 @@ void dc_fpu_begin(const char *function_name, const int line)
*pcpu += 1; *pcpu += 1;
if (*pcpu == 1) { if (*pcpu == 1) {
#if defined(CONFIG_X86) #if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH)
migrate_disable(); migrate_disable();
kernel_fpu_begin(); kernel_fpu_begin();
#elif defined(CONFIG_PPC64) #elif defined(CONFIG_PPC64)
...@@ -128,7 +130,7 @@ void dc_fpu_end(const char *function_name, const int line) ...@@ -128,7 +130,7 @@ void dc_fpu_end(const char *function_name, const int line)
pcpu = get_cpu_ptr(&fpu_recursion_depth); pcpu = get_cpu_ptr(&fpu_recursion_depth);
*pcpu -= 1; *pcpu -= 1;
if (*pcpu <= 0) { if (*pcpu <= 0) {
#if defined(CONFIG_X86) #if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH)
kernel_fpu_end(); kernel_fpu_end();
migrate_enable(); migrate_enable();
#elif defined(CONFIG_PPC64) #elif defined(CONFIG_PPC64)
......
...@@ -38,6 +38,11 @@ ifdef CONFIG_ARM64 ...@@ -38,6 +38,11 @@ ifdef CONFIG_ARM64
dml_rcflags := -mgeneral-regs-only dml_rcflags := -mgeneral-regs-only
endif endif
ifdef CONFIG_LOONGARCH
dml_ccflags := -mfpu=64
dml_rcflags := -msoft-float
endif
ifdef CONFIG_CC_IS_GCC ifdef CONFIG_CC_IS_GCC
ifneq ($(call gcc-min-version, 70100),y) ifneq ($(call gcc-min-version, 70100),y)
IS_OLD_GCC = 1 IS_OLD_GCC = 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment