| From: Michael Ellerman <mpe@ellerman.id.au> |
| Subject: drm/amd/display: only use hard-float, not altivec on powerpc |
| Date: Fri, 29 Mar 2024 00:18:27 -0700 |
| |
| The compiler flags enable altivec, but that is not required; hard-float is |
| sufficient for the code to build and function. |
| |
| Drop altivec from the compiler flags and adjust the enable/disable code to |
| only enable FPU use. |
| |
| Link: https://lkml.kernel.org/r/20240329072441.591471-13-samuel.holland@sifive.com |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Samuel Holland <samuel.holland@sifive.com> |
| Acked-by: Alex Deucher <alexander.deucher@amd.com> |
| Acked-by: Christian Kรถnig <christian.koenig@amd.com> |
| Cc: Borislav Petkov (AMD) <bp@alien8.de> |
| Cc: Catalin Marinas <catalin.marinas@arm.com> |
| Cc: Christoph Hellwig <hch@lst.de> |
| Cc: Dave Hansen <dave.hansen@linux.intel.com> |
| Cc: Huacai Chen <chenhuacai@kernel.org> |
| Cc: Ingo Molnar <mingo@redhat.com> |
| Cc: Jonathan Corbet <corbet@lwn.net> |
| Cc: Masahiro Yamada <masahiroy@kernel.org> |
| Cc: Nathan Chancellor <nathan@kernel.org> |
| Cc: Nicolas Schier <nicolas@fjasle.eu> |
| Cc: Palmer Dabbelt <palmer@rivosinc.com> |
| Cc: Russell King <linux@armlinux.org.uk> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: WANG Xuerui <git@xen0n.name> |
| Cc: Will Deacon <will@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c | 12 ++---------- |
| drivers/gpu/drm/amd/display/dc/dml/Makefile | 2 +- |
| drivers/gpu/drm/amd/display/dc/dml2/Makefile | 2 +- |
| 3 files changed, 4 insertions(+), 12 deletions(-) |
| |
| --- a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c~drm-amd-display-only-use-hard-float-not-altivec-on-powerpc |
| +++ a/drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c |
| @@ -92,11 +92,7 @@ void dc_fpu_begin(const char *function_n |
| #if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH) |
| kernel_fpu_begin(); |
| #elif defined(CONFIG_PPC64) |
| - if (cpu_has_feature(CPU_FTR_VSX_COMP)) |
| - enable_kernel_vsx(); |
| - else if (cpu_has_feature(CPU_FTR_ALTIVEC_COMP)) |
| - enable_kernel_altivec(); |
| - else if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) |
| + if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) |
| enable_kernel_fp(); |
| #elif defined(CONFIG_ARM64) |
| kernel_neon_begin(); |
| @@ -125,11 +121,7 @@ void dc_fpu_end(const char *function_nam |
| #if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH) |
| kernel_fpu_end(); |
| #elif defined(CONFIG_PPC64) |
| - if (cpu_has_feature(CPU_FTR_VSX_COMP)) |
| - disable_kernel_vsx(); |
| - else if (cpu_has_feature(CPU_FTR_ALTIVEC_COMP)) |
| - disable_kernel_altivec(); |
| - else if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) |
| + if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) |
| disable_kernel_fp(); |
| #elif defined(CONFIG_ARM64) |
| kernel_neon_end(); |
| --- a/drivers/gpu/drm/amd/display/dc/dml2/Makefile~drm-amd-display-only-use-hard-float-not-altivec-on-powerpc |
| +++ a/drivers/gpu/drm/amd/display/dc/dml2/Makefile |
| @@ -30,7 +30,7 @@ dml2_ccflags := $(dml2_ccflags-y) -msse |
| endif |
| |
| ifdef CONFIG_PPC64 |
| -dml2_ccflags := -mhard-float -maltivec |
| +dml2_ccflags := -mhard-float |
| endif |
| |
| ifdef CONFIG_ARM64 |
| --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile~drm-amd-display-only-use-hard-float-not-altivec-on-powerpc |
| +++ a/drivers/gpu/drm/amd/display/dc/dml/Makefile |
| @@ -31,7 +31,7 @@ dml_ccflags := $(dml_ccflags-y) -msse |
| endif |
| |
| ifdef CONFIG_PPC64 |
| -dml_ccflags := -mhard-float -maltivec |
| +dml_ccflags := -mhard-float |
| endif |
| |
| ifdef CONFIG_ARM64 |
| _ |