diff --git a/audioreach-driver/ar_kcompat.h b/audioreach-driver/ar_kcompat.h index d4c67a4..6978b41 100644 --- a/audioreach-driver/ar_kcompat.h +++ b/audioreach-driver/ar_kcompat.h @@ -67,4 +67,19 @@ static int name(struct gpr_resp_pkt *data, void *priv, int op) #endif + +/* + * MODULE_IMPORT_NS syntax changed in kernel 6.13: + * - < 6.13 : MODULE_IMPORT_NS(DMA_BUF) (unquoted token) + * - >= 6.13: MODULE_IMPORT_NS("DMA_BUF") (quoted string) + * + * AR_MODULE_IMPORT_NS wraps this difference so the driver builds + * correctly on both old and new kernels. + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 13, 0) +# define AR_MODULE_IMPORT_NS(ns) MODULE_IMPORT_NS(#ns) +#else +# define AR_MODULE_IMPORT_NS(ns) MODULE_IMPORT_NS(ns) +#endif + #endif /* __AR_KCOMPAT_H__ */ diff --git a/audioreach-driver/q6apm_audio_mem.c b/audioreach-driver/q6apm_audio_mem.c index e8e36af..4c821d4 100644 --- a/audioreach-driver/q6apm_audio_mem.c +++ b/audioreach-driver/q6apm_audio_mem.c @@ -2,6 +2,7 @@ // Copyright (c) 2021, Linaro Limited // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. +#include "ar_kcompat.h" #include #include #include @@ -928,4 +929,4 @@ void q6apm_audio_mem_exit(void) MODULE_DESCRIPTION("Q6APM audio mem driver"); MODULE_LICENSE("GPL"); -MODULE_IMPORT_NS("DMA_BUF"); +AR_MODULE_IMPORT_NS(DMA_BUF);