kernel-module-qualcomm: fix build with kernel 5.15

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2022-06-14 11:51:32 +02:00
parent f0b72732fe
commit 8fbb4d576a
9 changed files with 106 additions and 145 deletions

View File

@ -18,11 +18,13 @@ SRC_URI = " \
git://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qca-wifi-host-cmn.git;protocol=https;branch=${QCA_WIFI_HOST_CMN_SRCBRANCH};destsuffix=qca-wifi-host-cmn;name=qca-wifi-host \
git://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api.git;protocol=https;branch=${FW_API_SRCBRANCH};destsuffix=fw-api;name=fw-api \
git://git.codelinaro.org/clo/le/qcom-opensource/mdm-init.git;protocol=https;branch=${MDM_INIT_SRCBRANCH};destsuffix=mdm-init;name=mdm-init \
file://0001-qcacld-3.0-fix-build-issues.patch \
file://0001-qcacld-3.0-disable-warnings-as-errors.patch \
file://0002-qcacld-3.0-support-ROME-SDIO-build.patch \
file://0003-qcacld-3.0-cfg-try-to-get-MACs-from-device-tree-entr.patch \
file://0001-qca-wifi-host-cmn-fix-buid-issue-for-Rome-SDIO-interface.patch;patchdir=${WORKDIR}/qca-wifi-host-cmn; \
file://0002-qca-wifi-host-cmn-fix-build-issue-enabling-debug-for-.patch;patchdir=${WORKDIR}/qca-wifi-host-cmn; \
file://0004-qcacld-3.0-Add-proper-check-to-include-qcom-iommu-ut.patch \
file://0001-qca-wifi-host-cmn-fix-buid-issue-for-Rome-SDIO-inter.patch;patchdir=${WORKDIR}/qca-wifi-host-cmn; \
file://0002-qca-wifi-host-cmn-fix-build-issue-enabling-debug-for.patch;patchdir=${WORKDIR}/qca-wifi-host-cmn; \
file://0003-qca-wifi-host-cmn-fix-panic_notifier_list-undeclared.patch;patchdir=${WORKDIR}/qca-wifi-host-cmn; \
"
# Tag 'CHSS.LNX_FSL.5.0-01200-QCA6574AUARMSDIOHZ' in all repos

View File

@ -1,4 +1,3 @@
From fb4a4f20a55f945a2134e0abea897070c4f8f77f Mon Sep 17 00:00:00 2001
From: Xueqiang Gong <quic_gongx@quicinc.com>
Date: Fri, 1 Apr 2022 15:52:16 +0800
Subject: [PATCH] qca-wifi-host-cmn: fix buid issue for Rome SDIO interface
@ -16,7 +15,7 @@ Signed-off-by: Xueqiang Gong <quic_gongx@quicinc.com>
7 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/hif/src/dispatcher/multibus.c b/hif/src/dispatcher/multibus.c
index 06e70f0..f9b2b6b 100644
index 06e70f01d39c..f9b2b6bb3ea8 100644
--- a/hif/src/dispatcher/multibus.c
+++ b/hif/src/dispatcher/multibus.c
@@ -34,6 +34,11 @@
@ -32,7 +31,7 @@ index 06e70f0..f9b2b6b 100644
* hif_initialize_default_ops() - initializes default operations values
*
diff --git a/hif/src/hif_main.c b/hif/src/hif_main.c
index b5140cc..a6b4d43 100644
index b5140cc1e58e..a6b4d438ab77 100644
--- a/hif/src/hif_main.c
+++ b/hif/src/hif_main.c
@@ -972,7 +972,11 @@ void hif_close(struct hif_opaque_softc *hif_ctx)
@ -48,7 +47,7 @@ index b5140cc..a6b4d43 100644
hif_bus_close(scn);
diff --git a/hif/src/sdio/hif_sdio_dev.h b/hif/src/sdio/hif_sdio_dev.h
index 7ee6582..544a57e 100644
index 7ee6582e6aa8..544a57e4381a 100644
--- a/hif/src/sdio/hif_sdio_dev.h
+++ b/hif/src/sdio/hif_sdio_dev.h
@@ -157,7 +157,7 @@ QDF_STATUS hif_enable_func(struct hif_softc *ol_sc, struct hif_sdio_dev *device,
@ -61,7 +60,7 @@ index 7ee6582..544a57e 100644
struct hif_sdio_dev *device);
#endif /* HIF_SDIO_DEV_H_ */
diff --git a/hif/src/sdio/if_sdio.h b/hif/src/sdio/if_sdio.h
index a71e61e..c5ad71b 100644
index a71e61ecb325..c5ad71b0c062 100644
--- a/hif/src/sdio/if_sdio.h
+++ b/hif/src/sdio/if_sdio.h
@@ -67,7 +67,7 @@ static inline void athdiag_procfs_remove(void)
@ -74,7 +73,7 @@ index a71e61e..c5ad71b 100644
int ath_sdio_probe(void *context, void *hif_handle);
void ath_sdio_remove(void *context, void *hif_handle);
diff --git a/hif/src/sdio/native_sdio/include/hif_internal.h b/hif/src/sdio/native_sdio/include/hif_internal.h
index 41001c8..e5c7df0 100644
index 41001c848ae9..e5c7df088241 100644
--- a/hif/src/sdio/native_sdio/include/hif_internal.h
+++ b/hif/src/sdio/native_sdio/include/hif_internal.h
@@ -419,8 +419,8 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func);
@ -89,7 +88,7 @@ index 41001c8..e5c7df0 100644
struct sdio_func *func,
bool reset);
diff --git a/hif/src/sdio/native_sdio/src/hif.c b/hif/src/sdio/native_sdio/src/hif.c
index 9ca2e21..d52eee2 100644
index 9ca2e21ca724..d52eee248a3e 100644
--- a/hif/src/sdio/native_sdio/src/hif.c
+++ b/hif/src/sdio/native_sdio/src/hif.c
@@ -348,7 +348,7 @@ QDF_STATUS hif_sdio_probe(struct hif_softc *ol_sc,
@ -102,7 +101,7 @@ index 9ca2e21..d52eee2 100644
scn->ramdump_size);
} else {
diff --git a/hif/src/sdio/transfer/mailbox.h b/hif/src/sdio/transfer/mailbox.h
index 3e59132..36f3e98 100644
index 3e5913215241..36f3e9860ac6 100644
--- a/hif/src/sdio/transfer/mailbox.h
+++ b/hif/src/sdio/transfer/mailbox.h
@@ -20,7 +20,7 @@
@ -114,6 +113,3 @@ index 3e59132..36f3e98 100644
#include "a_debug.h"
#include "hif_sdio_dev.h"
--
2.7.4

View File

@ -0,0 +1,25 @@
From: Javier Viguera <javier.viguera@digi.com>
Date: Mon, 13 Jun 2022 17:39:29 +0200
Subject: [PATCH] qcacld-3.0: disable warnings as errors
Building the kernel module under Yocto (with new version of GCC
compiler) is failing because '-Werror' is converting compilation
warnings into errors.
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
Kbuild | 1 -
1 file changed, 1 deletion(-)
diff --git a/Kbuild b/Kbuild
index ad086656cca2..50c01ef223c1 100644
--- a/Kbuild
+++ b/Kbuild
@@ -2804,7 +2804,6 @@ ccflags-y += $(INCS)
cppflags-y += -DANI_OS_TYPE_ANDROID=6 \
-Wall\
- -Werror\
-D__linux__
cppflags-$(CONFIG_PTT_SOCK_SVC_ENABLE) += -DPTT_SOCK_SVC_ENABLE

View File

@ -1,83 +0,0 @@
From: Arturo Buzarra <arturo.buzarra@digi.com>
Date: Mon, 2 May 2022 12:01:12 +0200
Subject: [PATCH] qcacld-3.0: fix build issues
Removed '-Werror' as this makes the driver build fail using newer versions
of the compiler. For example building with gcc 11 there are new warnings:
lim_api.c:1057:17: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
lim_admit_control.c:169:17: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
Kbuild | 1 -
core/bmi/src/ol_fw.c | 3 +++
core/dp/htt/htt_rx_hl.c | 2 ++
core/dp/txrx/ol_txrx.c | 1 +
4 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/Kbuild b/Kbuild
index ad086656cca2..50c01ef223c1 100644
--- a/Kbuild
+++ b/Kbuild
@@ -2804,7 +2804,6 @@ ccflags-y += $(INCS)
cppflags-y += -DANI_OS_TYPE_ANDROID=6 \
-Wall\
- -Werror\
-D__linux__
cppflags-$(CONFIG_PTT_SOCK_SVC_ENABLE) += -DPTT_SOCK_SVC_ENABLE
diff --git a/core/bmi/src/ol_fw.c b/core/bmi/src/ol_fw.c
index 52513fff23b2..c69420734be7 100644
--- a/core/bmi/src/ol_fw.c
+++ b/core/bmi/src/ol_fw.c
@@ -611,7 +611,9 @@ int ol_copy_ramdump(struct hif_opaque_softc *scn)
static void __ramdump_work_handler(void *data)
{
+#ifdef WLAN_DEBUG
int ret;
+#endif
uint32_t host_interest_address;
uint32_t dram_dump_values[4];
uint32_t target_type;
@@ -1046,6 +1048,7 @@ static QDF_STATUS ol_fw_populate_clk_settings(enum a_refclk_speed_t refclk,
clock_s->wlan_pll.outdiv = 0;
clock_s->pll_settling_time = 1024;
clock_s->refclk_hz = 0;
+ /* Fall through */
default:
return QDF_STATUS_E_FAILURE;
}
diff --git a/core/dp/htt/htt_rx_hl.c b/core/dp/htt/htt_rx_hl.c
index 9cb2047e3d1b..e0cbac5ac004 100644
--- a/core/dp/htt/htt_rx_hl.c
+++ b/core/dp/htt/htt_rx_hl.c
@@ -421,11 +421,13 @@ htt_rx_mpdu_desc_pn_hl(
*(word_ptr + 3) = rx_desc->pn_127_96;
/* bits 63:0 */
*(word_ptr + 2) = rx_desc->pn_95_64;
+ /* Fall through */
case 48:
/* bits 48:0
* copy 64 bits
*/
*(word_ptr + 1) = rx_desc->u0.pn_63_32;
+ /* Fall through */
case 24:
/* bits 23:0
* copy 32 bits
diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c
index 2f20d497936c..303f47c86d8e 100644
--- a/core/dp/txrx/ol_txrx.c
+++ b/core/dp/txrx/ol_txrx.c
@@ -4242,6 +4242,7 @@ ol_txrx_fw_stats_handler(ol_txrx_pdev_handle pdev,
bytes = 0;
/* TO DO: specify how many bytes are present */
/* TO DO: add copying to the requestor's buf */
+ /* Fall through */
case HTT_DBG_STATS_RX_REMOTE_RING_BUFFER_INFO:
bytes = sizeof(struct

View File

@ -9,12 +9,10 @@ Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hif/src/sdio/native_sdio/src/dev_quirks.c b/hif/src/sdio/native_sdio/src/dev_quirks.c
index a94ec61d0b..b5e70a51dd 100644
index a94ec61d0b62..b5e70a51ddcf 100644
--- a/hif/src/sdio/native_sdio/src/dev_quirks.c
+++ b/hif/src/sdio/native_sdio/src/dev_quirks.c
@@ -265,12 +265,13 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
(unsigned int)writecccr1,
(unsigned int)writecccr1value,
@@ -267,8 +267,9 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
err);
else
hif_info("%s Write CCCR 0x%02X to 0x%02X OK",
@ -25,11 +23,7 @@ index a94ec61d0b..b5e70a51dd 100644
}
if (writecccr2) {
err = func0_cmd52_write_byte(func->card, writecccr2,
writecccr2value);
@@ -279,10 +280,11 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
(unsigned int)writecccr2,
(unsigned int)writecccr2value,
@@ -281,6 +282,7 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
err);
else
hif_info("%s Write CCCR 0x%02X to 0x%02X OK",
@ -37,11 +31,7 @@ index a94ec61d0b..b5e70a51dd 100644
(unsigned int)writecccr2,
(unsigned int)writecccr2value);
}
if (writecccr3) {
err = func0_cmd52_write_byte(func->card, writecccr3,
@@ -292,10 +294,11 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
(unsigned int)writecccr3,
(unsigned int)writecccr3value,
@@ -294,6 +296,7 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
err);
else
hif_info("%s Write CCCR 0x%02X to 0x%02X OK",
@ -49,11 +39,7 @@ index a94ec61d0b..b5e70a51dd 100644
(unsigned int)writecccr3,
(unsigned int)writecccr3value);
}
if (writecccr4) {
err = func0_cmd52_write_byte(func->card, writecccr4,
@@ -305,10 +308,11 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
(unsigned int)writecccr4,
(unsigned int)writecccr4value,
@@ -307,6 +310,7 @@ void hif_sdio_quirk_write_cccr(struct hif_softc *ol_sc, struct sdio_func *func)
err);
else
hif_info("%s Write CCCR 0x%02X to 0x%02X OK",
@ -61,5 +47,3 @@ index a94ec61d0b..b5e70a51dd 100644
(unsigned int)writecccr4,
(unsigned int)writecccr4value);
}
}

View File

@ -1,4 +1,3 @@
From 4864c18ec9bc9bcd63b24bedcd97d530bf584448 Mon Sep 17 00:00:00 2001
From: Xueqiang Gong <quic_gongx@quicinc.com>
Date: Fri, 1 Apr 2022 15:37:06 +0800
Subject: [PATCH] qcacld-3.0: support ROME SDIO build
@ -14,7 +13,7 @@ Signed-off-by: Xueqiang Gong <quic_gongx@quicinc.com>
mode change 100755 => 100644 core/sme/inc/csr_api.h
diff --git a/configs/qca6174_defconfig b/configs/qca6174_defconfig
index fac64fd..b9145ba 100644
index fac64fddf009..b9145ba7cb07 100644
--- a/configs/qca6174_defconfig
+++ b/configs/qca6174_defconfig
@@ -391,8 +391,8 @@ endif
@ -33,6 +32,3 @@ new mode 100644
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
old mode 100755
new mode 100644
--
2.7.4

View File

@ -0,0 +1,28 @@
From: Javier Viguera <javier.viguera@digi.com>
Date: Mon, 13 Jun 2022 17:49:45 +0200
Subject: [PATCH] qca-wifi-host-cmn: fix panic_notifier_list undeclared build
failure
On kernels >= 5.14 a new header file include is needed. Otherwise the
build fails with: "error: 'panic_notifier_list' undeclared"
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
utils/logging/src/wlan_logging_sock_svc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/utils/logging/src/wlan_logging_sock_svc.c b/utils/logging/src/wlan_logging_sock_svc.c
index a1266fed817d..e40779e032dd 100644
--- a/utils/logging/src/wlan_logging_sock_svc.c
+++ b/utils/logging/src/wlan_logging_sock_svc.c
@@ -36,6 +36,10 @@
#include <qdf_event.h>
#include <qdf_module.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0)
+#include <linux/panic_notifier.h>
+#endif
+
#ifdef CNSS_GENL
#include <net/cnss_nl.h>
#endif

View File

@ -26,12 +26,10 @@ Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
4 files changed, 74 insertions(+)
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 36aa010db9..1527aaf87e 100644
index 36aa010db916..1527aaf87e12 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -276,10 +276,11 @@ struct hdd_config {
*
* Return: CSR WMM mode
@@ -278,6 +278,7 @@ struct hdd_config {
*/
eCsrRoamWmmUserModeType hdd_to_csr_wmm_mode(uint8_t mode);
@ -39,15 +37,11 @@ index 36aa010db9..1527aaf87e 100644
QDF_STATUS hdd_update_mac_config(struct hdd_context *hdd_ctx);
QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx);
QDF_STATUS hdd_set_policy_mgr_user_cfg(struct hdd_context *hdd_ctx);
QDF_STATUS hdd_set_sme_chan_list(struct hdd_context *hdd_ctx);
bool hdd_update_config_cfg(struct hdd_context *hdd_ctx);
diff --git a/core/hdd/inc/wlan_hdd_misc.h b/core/hdd/inc/wlan_hdd_misc.h
index b105df1b3a..6d9bf450ef 100644
index b105df1b3a98..6d9bf450efe1 100644
--- a/core/hdd/inc/wlan_hdd_misc.h
+++ b/core/hdd/inc/wlan_hdd_misc.h
@@ -42,11 +42,13 @@
#endif
@@ -44,9 +44,11 @@
#ifdef MSM_PLATFORM
#define WLAN_INI_FILE "wlan/qca_cld/" PREFIX "WCNSS_qcom_cfg.ini"
#define WLAN_MAC_FILE "wlan/qca_cld/" PREFIX "wlan_mac.bin"
@ -60,12 +54,10 @@ index b105df1b3a..6d9bf450ef 100644
#endif /* WLAN_HDD_MISC_H */
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index b12e42c74c..c921a93642 100644
index b12e42c74c69..c921a9364242 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -197,10 +197,75 @@ int hdd_firmware_request_nowarn(const struct firmware **fw,
{
return request_firmware(fw, name, device);
@@ -199,6 +199,71 @@ int hdd_firmware_request_nowarn(const struct firmware **fw,
}
#endif
@ -137,15 +129,11 @@ index b12e42c74c..c921a93642 100644
/**
* hdd_update_mac_config() - update MAC address from cfg file
* @hdd_ctx: the pointer to hdd context
*
* It overwrites the MAC address if config file exist.
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 0043de21f1..03138b61ce 100644
index 0043de21f10a..03138b61ce5d 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -13588,10 +13588,16 @@ static int hdd_initialize_mac_address(struct hdd_context *hdd_ctx)
} else if (hdd_ctx->config->mac_provision) {
hdd_err("getting MAC address from platform driver failed");
@@ -13590,6 +13590,12 @@ static int hdd_initialize_mac_address(struct hdd_context *hdd_ctx)
return ret;
}
@ -158,5 +146,3 @@ index 0043de21f1..03138b61ce 100644
status = hdd_update_mac_config(hdd_ctx);
if (QDF_IS_STATUS_SUCCESS(status)) {
hdd_info("using MAC address from wlan_mac.bin");
return 0;
}

View File

@ -0,0 +1,27 @@
From: Yue Ma <yuem@codeaurora.org>
Date: Wed, 30 Jun 2021 17:22:34 -0700
Subject: [PATCH] qcacld-3.0: Add proper check to include qcom-iommu-util.h
qcom-iommu-util.h is a QCOM only file for MSM platforms, so only
include it when MSM_PLATFORM is defined to avoid build issues
from other non-QCOM platforms like X86.
Change-Id: I5f32fbe05abe4d7aff451031f0859f774ce1c507
CRs-fixed: 3721214
---
core/cds/src/cds_api.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index d135759ac426..4fddb614889d 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -36,7 +36,7 @@
#include "wlan_hdd_power.h"
#include "wlan_hdd_tsf.h"
#include <linux/vmalloc.h>
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)) && defined(MSM_PLATFORM)
#include <linux/qcom-iommu-util.h>
#endif
#include <scheduler_core.h>