• Christophe Leroy's avatar
    powerpc: Fix missing declaration of [en/dis]able_kernel_vsx() · bd737588
    Christophe Leroy authored
    Add stub instances of enable_kernel_vsx() and disable_kernel_vsx()
    when CONFIG_VSX is not set, to avoid following build failure.
    
      CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.o
      In file included from ./drivers/gpu/drm/amd/amdgpu/../display/dc/dm_services_types.h:29,
                       from ./drivers/gpu/drm/amd/amdgpu/../display/dc/dm_services.h:37,
                       from drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:27:
      drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c: In function 'dcn_bw_apply_registry_override':
      ./drivers/gpu/drm/amd/amdgpu/../display/dc/os_types.h:64:3: error: implicit declaration of function 'enable_kernel_vsx'; did you mean 'enable_kernel_fp'? [-Werror=implicit-function-declaration]
         64 |   enable_kernel_vsx(); \
            |   ^~~~~~~~~~~~~~~~~
      drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:640:2: note: in expansion of macro 'DC_FP_START'
        640 |  DC_FP_START();
            |  ^~~~~~~~~~~
      ./drivers/gpu/drm/amd/amdgpu/../display/dc/os_types.h:75:3: error: implicit declaration of function 'disable_kernel_vsx'; did you mean 'disable_kernel_fp'? [-Werror=implicit-function-declaration]
         75 |   disable_kernel_vsx(); \
            |   ^~~~~~~~~~~~~~~~~~
      drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:676:2: note: in expansion of macro 'DC_FP_END'
        676 |  DC_FP_END();
            |  ^~~~~~~~~
      cc1: some warnings being treated as errors
      make[5]: *** [drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.o] Error 1
    
    This works because the caller is checking if VSX is available using
    cpu_has_feature():
    
      #define DC_FP_START() { \
      	if (cpu_has_feature(CPU_FTR_VSX_COMP)) { \
      		preempt_disable(); \
      		enable_kernel_vsx(); \
      	} else if (cpu_has_feature(CPU_FTR_ALTIVEC_COMP)) { \
      		preempt_disable(); \
      		enable_kernel_altivec(); \
      	} else if (!cpu_has_feature(CPU_FTR_FPU_UNAVAILABLE)) { \
      		preempt_disable(); \
      		enable_kernel_fp(); \
      	} \
    
    When CONFIG_VSX is not selected, cpu_has_feature(CPU_FTR_VSX_COMP)
    constant folds to 'false' so the call to enable_kernel_vsx() is
    discarded and the build succeeds.
    
    Fixes: 16a9dea1 ("amdgpu: Enable initial DCN support on POWER")
    Cc: stable@vger.kernel.org # v5.6+
    Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    [mpe: Incorporate some discussion comments into the change log]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/8d7d285a027e9d21f5ff7f850fa71a2655b0c4af.1615279170.git.christophe.leroy@csgroup.eu
    bd737588
switch_to.h 2.9 KB