From ebd01de53e6d2cb8bb494e34c897bfd71986063f Mon Sep 17 00:00:00 2001 From: Tom Hochstein Date: Fri, 27 Jul 2018 11:08:36 -0500 Subject: kernel-module-qca6174: Add support for QCA6174 on i.MX 8 Series Signed-off-by: Tom Hochstein --- ...2-qcacld-2.0-fix-the-overflow-of-bounce-b.patch | 92 ++++++++++++++++++++++ .../kernel-modules/kernel-module-qca6174_2.0.bb | 15 ++++ .../kernel-modules/kernel-module-qcacld-lea.inc | 2 +- 3 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 recipes-kernel/kernel-modules/kernel-module-qca6174/0001-MLK-18491-02-qcacld-2.0-fix-the-overflow-of-bounce-b.patch create mode 100644 recipes-kernel/kernel-modules/kernel-module-qca6174_2.0.bb (limited to 'recipes-kernel') diff --git a/recipes-kernel/kernel-modules/kernel-module-qca6174/0001-MLK-18491-02-qcacld-2.0-fix-the-overflow-of-bounce-b.patch b/recipes-kernel/kernel-modules/kernel-module-qca6174/0001-MLK-18491-02-qcacld-2.0-fix-the-overflow-of-bounce-b.patch new file mode 100644 index 00000000..3ab1ccdd --- /dev/null +++ b/recipes-kernel/kernel-modules/kernel-module-qca6174/0001-MLK-18491-02-qcacld-2.0-fix-the-overflow-of-bounce-b.patch @@ -0,0 +1,92 @@ +From e480b6825d3670f3517c3b7be0c13fd318cbe985 Mon Sep 17 00:00:00 2001 +From: Hangtian Zhu +Date: Thu, 14 Jun 2018 11:10:05 +0800 +Subject: [PATCH] MLK-18491-02 qcacld-2.0: fix the overflow of bounce buffer + +Patch a41baa51cbc5("MLK-18491 qcacld-2.0: avoid overflow of bounce buffer") +is not reasonable to fix overflow of bounce buffer issue. + +The patch is released by Qualcomm to fix the issue. +(Case Number:03515221) + +Upstream-Status: Pending + +Signed-off-by: Hangtian Zhu +--- + CORE/SERVICES/HTC/htc.c | 2 +- + CORE/SERVICES/HTC/htc_send.c | 28 ++++++++++++++-------------- + 2 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/CORE/SERVICES/HTC/htc.c b/CORE/SERVICES/HTC/htc.c +index 1e2450d..09936a0 100644 +--- a/CORE/SERVICES/HTC/htc.c ++++ b/CORE/SERVICES/HTC/htc.c +@@ -657,7 +657,7 @@ static void ResetEndpointStates(HTC_TARGET *target) + INIT_HTC_PACKET_QUEUE(&pEndpoint->RxBufferHoldQueue); + pEndpoint->target = target; + //pEndpoint->TxCreditFlowEnabled = (A_BOOL)htc_credit_flow; +- pEndpoint->TxCreditFlowEnabled = (A_BOOL)0; ++ pEndpoint->TxCreditFlowEnabled = (A_BOOL)1; + adf_os_atomic_init(&pEndpoint->TxProcessCount); + } + } +diff --git a/CORE/SERVICES/HTC/htc_send.c b/CORE/SERVICES/HTC/htc_send.c +index 1a3dd28..19d8065 100644 +--- a/CORE/SERVICES/HTC/htc_send.c ++++ b/CORE/SERVICES/HTC/htc_send.c +@@ -105,12 +105,12 @@ void HTCGetControlEndpointTxHostCredits(HTC_HANDLE HTCHandle, int *credits) + + static INLINE void RestoreTxPacket(HTC_TARGET *target, HTC_PACKET *pPacket) + { ++ adf_nbuf_t netbuf = GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket); + if (pPacket->PktInfo.AsTx.Flags & HTC_TX_PACKET_FLAG_FIXUP_NETBUF) { +- adf_nbuf_t netbuf = GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket); + adf_nbuf_unmap(target->osdev, netbuf, ADF_OS_DMA_TO_DEVICE); +- adf_nbuf_pull_head(netbuf, sizeof(HTC_FRAME_HDR)); + pPacket->PktInfo.AsTx.Flags &= ~HTC_TX_PACKET_FLAG_FIXUP_NETBUF; + } ++ adf_nbuf_pull_head(netbuf, sizeof(HTC_FRAME_HDR)); + + } + +@@ -641,12 +641,11 @@ static A_STATUS HTCIssuePackets(HTC_TARGET *target, + * that is already mapped, or a non-data netbuf that needs to be + * mapped. + */ +- if (pPacket->PktInfo.AsTx.Flags & HTC_TX_PACKET_FLAG_FIXUP_NETBUF) { +- adf_nbuf_map( +- target->osdev, +- GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket), +- ADF_OS_DMA_TO_DEVICE); +- } ++ pPacket->PktInfo.AsTx.Flags |= HTC_TX_PACKET_FLAG_FIXUP_NETBUF; ++ adf_nbuf_map( ++ target->osdev, ++ GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket), ++ ADF_OS_DMA_TO_DEVICE); + } + LOCK_HTC_TX(target); + /* store in look up queue to match completions */ +@@ -1261,12 +1260,13 @@ A_STATUS HTCSendPktsMultiple(HTC_HANDLE HTCHandle, HTC_PACKET_QUEUE *pPktQueue) + * mapped. This only applies to non-data frames, since data frames + * were already mapped as they entered into the driver. + */ +- adf_nbuf_map( +- target->osdev, +- GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket), +- ADF_OS_DMA_TO_DEVICE); +- +- pPacket->PktInfo.AsTx.Flags |= HTC_TX_PACKET_FLAG_FIXUP_NETBUF; ++ if(!IS_TX_CREDIT_FLOW_ENABLED(pEndpoint)) { ++ pPacket->PktInfo.AsTx.Flags |= HTC_TX_PACKET_FLAG_FIXUP_NETBUF; ++ adf_nbuf_map( ++ target->osdev, ++ GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket), ++ ADF_OS_DMA_TO_DEVICE); ++ } + } HTC_PACKET_QUEUE_ITERATE_END; + + HTCTrySend(target,pEndpoint,pPktQueue); +-- +1.9.1 + diff --git a/recipes-kernel/kernel-modules/kernel-module-qca6174_2.0.bb b/recipes-kernel/kernel-modules/kernel-module-qca6174_2.0.bb new file mode 100644 index 00000000..3bc18124 --- /dev/null +++ b/recipes-kernel/kernel-modules/kernel-module-qca6174_2.0.bb @@ -0,0 +1,15 @@ +require kernel-module-qcacld-lea.inc + +SUMMARY = "Qualcomm WiFi driver for QCA module 6174" + +SRC_URI += "file://0001-MLK-18491-02-qcacld-2.0-fix-the-overflow-of-bounce-b.patch" + +EXTRA_OEMAKE += " \ + CONFIG_ROME_IF=pci \ + CONFIG_WLAN_FEATURE_11W=y \ + CONFIG_WLAN_FEATURE_FILS=y \ + CONFIG_WLAN_WAPI_MODE_11AC_DISABLE=y \ + MODNAME=qca6174 \ +" + +RDEPENDS_${PN} += "firmware-qca6174" diff --git a/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc b/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc index a4597eae..b2aa7599 100644 --- a/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc +++ b/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc @@ -1,6 +1,6 @@ # Copyright 2018 NXP -SUMMARY = "Qualcomm WiFi driver for QCA module 9377" +SUMMARY = "Qualcomm WiFi driver for QCA module 9377 and 6174" LICENSE = "BSD & GPLv2" LIC_FILES_CHKSUM = "file://CORE/HDD/src/wlan_hdd_main.c;beginline=1;endline=20;md5=ec8d62116b13db773825ebf7cf91be1d;" -- cgit v1.2.3-54-g00ecf