]> code.ossystems Code Review - meta-freescale.git/commitdiff
kernel-module-qca6174: Add support for QCA6174 on i.MX 8 Series
authorTom Hochstein <tom.hochstein@nxp.com>
Fri, 27 Jul 2018 16:08:36 +0000 (11:08 -0500)
committerOtavio Salvador <otavio@ossystems.com.br>
Fri, 5 Apr 2019 19:38:31 +0000 (16:38 -0300)
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
recipes-kernel/kernel-modules/kernel-module-qca6174/0001-MLK-18491-02-qcacld-2.0-fix-the-overflow-of-bounce-b.patch [new file with mode: 0644]
recipes-kernel/kernel-modules/kernel-module-qca6174_2.0.bb [new file with mode: 0644]
recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc

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 (file)
index 0000000..3ab1ccd
--- /dev/null
@@ -0,0 +1,92 @@
+From e480b6825d3670f3517c3b7be0c13fd318cbe985 Mon Sep 17 00:00:00 2001
+From: Hangtian Zhu <hangtian@qti.qualcomm.com>
+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 <hangtian@qti.qualcomm.com>
+---
+ 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 (file)
index 0000000..3bc1812
--- /dev/null
@@ -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"
index a4597eae34f3fe349c7d2296d26b442acde77579..b2aa75992e1af3d0a5eb678a1c0aa71f8950da3c 100644 (file)
@@ -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;"