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

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ config DRM_AMD_DC
	depends on BROKEN || !CC_IS_CLANG || X86_64 || SPARC64 || ARM64
	select SND_HDA_COMPONENT if SND_HDA_CORE
	# !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
	  Choose this option if you want to use the new display engine
	  support for AMDGPU. This adds required support for Vega and
+4 −2
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@
#include <asm/cputable.h>
#elif defined(CONFIG_ARM64)
#include <asm/neon.h>
#elif defined(CONFIG_LOONGARCH)
#include <asm/fpu.h>
#endif

/**
@@ -88,7 +90,7 @@ void dc_fpu_begin(const char *function_name, const int line)
	*pcpu += 1;

	if (*pcpu == 1) {
#if defined(CONFIG_X86)
#if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH)
		migrate_disable();
		kernel_fpu_begin();
#elif defined(CONFIG_PPC64)
@@ -128,7 +130,7 @@ void dc_fpu_end(const char *function_name, const int line)
	pcpu = get_cpu_ptr(&fpu_recursion_depth);
	*pcpu -= 1;
	if (*pcpu <= 0) {
#if defined(CONFIG_X86)
#if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH)
		kernel_fpu_end();
		migrate_enable();
#elif defined(CONFIG_PPC64)
+5 −0
Original line number Diff line number Diff line
@@ -38,6 +38,11 @@ ifdef CONFIG_ARM64
dml_rcflags := -mgeneral-regs-only
endif

ifdef CONFIG_LOONGARCH
dml_ccflags := -mfpu=64
dml_rcflags := -msoft-float
endif

ifdef CONFIG_CC_IS_GCC
ifneq ($(call gcc-min-version, 70100),y)
IS_OLD_GCC = 1