Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: gpu: call qcom_mdt interfaces only for ARCH_QCOM

When compile-testing for something other than ARCH_QCOM,
we run into a link error:

drivers/gpu/drm/msm/adreno/a5xx_gpu.o: In function `a5xx_hw_init':
a5xx_gpu.c:(.text.a5xx_hw_init+0x600): undefined reference to `qcom_mdt_get_size'
a5xx_gpu.c:(.text.a5xx_hw_init+0x93c): undefined reference to `qcom_mdt_load'

There is already an #ifdef that tries to check for CONFIG_QCOM_MDT_LOADER,
but that symbol is only meaningful when building for ARCH_QCOM.

This adds a compile-time check for ARCH_QCOM, and clarifies the
Kconfig select statement so we don't even try it for other targets.

The check for CONFIG_QCOM_MDT_LOADER can then go away, which also
improves compile-time coverage and makes the code a little nicer
to read.

Fixes: 7c65817e6d38 ("drm/msm: gpu: Enable zap shader for A5XX")
Acked-by: Jordan Crouse <jcrouse@codeaurora.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Clark <robdclark@gmail.com>

authored by

Arnd Bergmann and committed by
Rob Clark
bdab8e8b 541de4c9

+4 -9
+1 -1
drivers/gpu/drm/msm/Kconfig
··· 5 5 depends on ARCH_QCOM || (ARM && COMPILE_TEST) 6 6 depends on OF && COMMON_CLK 7 7 depends on MMU 8 - select QCOM_MDT_LOADER 8 + select QCOM_MDT_LOADER if ARCH_QCOM 9 9 select REGULATOR 10 10 select DRM_KMS_HELPER 11 11 select DRM_PANEL
+3 -8
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
··· 26 26 27 27 #define GPU_PAS_ID 13 28 28 29 - #if IS_ENABLED(CONFIG_QCOM_MDT_LOADER) 30 - 31 29 static int zap_shader_load_mdt(struct device *dev, const char *fwname) 32 30 { 33 31 const struct firmware *fw; ··· 33 35 ssize_t mem_size; 34 36 void *mem_region = NULL; 35 37 int ret; 38 + 39 + if (!IS_ENABLED(CONFIG_ARCH_QCOM)) 40 + return -EINVAL; 36 41 37 42 /* Request the MDT file for the firmware */ 38 43 ret = request_firmware(&fw, fwname, dev); ··· 74 73 75 74 return ret; 76 75 } 77 - #else 78 - static int zap_shader_load_mdt(struct device *dev, const char *fwname) 79 - { 80 - return -ENODEV; 81 - } 82 - #endif 83 76 84 77 static void a5xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit, 85 78 struct msm_file_private *ctx)