Add compilation flag to compile out HTC credit History
feature cleanly from the cld-3.2 driver binary
Change-Id: I615f0e4d6de150924b99b3444cebf00571ddc088
CRs-Fixed: 2190546
When HTC packet is sent to CE for physical tx, the tx compl
interrupt can get triggered very quickly, resulting the
HTC buffer being freed at a very early time. Any memory
access into the same HTC buffer after HTC tx compl returns
will be a use-after-free case.
Relocate all HTC packet touching code to places before
it gets populated to CE for tx.
Change-Id: I8bcac16566156104063013c7eb17b2f0debd32e6
CRs-Fixed: 2178880
Firmware needs 6 seconds timeout for HTC control
messages.
Increase the HTC control message timeout to 6
seconds
Change-Id: I79a843afe028098a9cb7e98c274b54132357c76b
CRs-Fixed: 2170953
Optimize HIF layer driver load time console logging
to avoid any logging related side effect.
Change-Id: I3549256559b3565ab62bfba998a64cda8a971840
CRs-Fixed: 2174888
Address minor review comments raised against previous change
Ic417f6b008fdc769227c7a23bc8e01a2064ce928. Specifically, remove function
recv_packet_completion() and member EpRecvPktMultiple from struct
htc_ep_callbacks.
Change-Id: I431579356664ad6a6274f58352adf8ce273e084f
CRs-Fixed: 2168647
When a data packet is sent via HTC, it is mapped before being inserted
into the TX queue. However, for control packets, the mapping is done
after being inserted into the queue. This leads to a situation where the
TX queue flush can unmap a pending control packet that was never mapped.
Make sure the TX flush function only unmaps packets that have previously
been mapped.
Change-Id: I48572fb34ae940923012d495625a33a00f74b9ed
CRs-Fixed: 2157006
For control messages, a path in HTC was performing double dmamaps
and this was, in time, causing dmamap failures on SMMU.
Change-Id: I19f7e13a0a19404fe1161127b10f52225b6a4248
CRs-Fixed: 2151773
Avoid leaking pointers to freed stack memory by not enqueing packets
onto a stack local queue in htc_send_pkt
In particular, the packet was not being removed from the stack queue
when a dma map error occurs.
Change-Id: I4519a302b3d6cc19f52e8cefa71dbd750ede0a0b
CRs-Fixed: 2119792
In htc_issue_packet takecare to enqueue back the dequeued packet.
Otherwise we will be leaking the packet.
Also takecare to unmap the mapped netbuf if we fail to send.
Change-Id: I48dbe537ae5b0fe89785f4309325c7089b2ace56
CRs-Fixed: 2151122
Avoid leaking pointers to freed stack memory by not enqueing packets
onto a stack local queue in recv_packet_completion
Change-Id: Ic417f6b008fdc769227c7a23bc8e01a2064ce928
CRs-Fixed: 2119792
Add a delay of 20ms before sending WMI message.
A delay of 20msec was added to slow down sending of WMI message
to give time for processing WMI in Napier FPGA platform.
Change-Id: Ib64972a92e638f2fe92f669657a5ab9eb326e744
CRs-Fixed: 2087330
Check endpoint range before it be used.
If endpoint is unused return with error.
Change-Id: I2888b0b66c737df677f09040133503e8ace60510
CRs-Fixed: 2138465
When HTC_PACKETs are allocated for bundle tx, netbuf and bundle
queue will also be allocated and stored in the context of
HTC_PACKET, but these two structures are not freed when the
bundle HTC_PACKETs are removed from pBundleFreeList and freed.
Retrieve the netbuf and bundle queue pointers from HTC_PACKET
context and free them when HTC_PACKET is freed.
Change-Id: I61d9eb18027b12f8b9491c696e4e16d793edf0d2
CRs-Fixed: 2127098
Static analys complains about the htc_pkt having a pointer
to the local queue when the function returned. Remove the
local queue so that it is not an issue.
Requires epping to support individual single completions.
Change-Id: I8f96420f5f6305c43051a21073607cdd6c603855
CRs-Fixed: 2125394
When the wlan driver is suspending, the last thing it does is check to
see if the firmware has indicated a wakeup during the suspend process.
This is done by checking the initial wakeup flag, which is set when a
specific copy engine payload is received from firmware. For the new
dedicated wake MSI, only the wake signal is received, no payload. When
the wake MSI is toggled, set the initial wakeup flag to prevent race
conditions during the suspend process.
Change-Id: Id53cc7884431a437136d8dca068449bc5a25b87c
CRs-Fixed: 2133469
qcacld-2.0 to qcacmn propagation
The ul_outstanding_cnt is not increasing when do TX sending in the bundle.
Which will cause the count is not correct, and will drop to the negative
number.
Change-Id: If7f06b376633b3384203cc49d8e8acafdd1b4853
CRs-Fixed: 2112977
Run throughput with Rome chip, crash happens since of too many logs
in pm runtime put and get. So remove log in these functions.
Change-Id: I9ca4ddef328ade7fef63d04f19603927cf8ee6d8
CRs-Fixed: 2112431
Because of the sequence of macro defination, the HTX bundle is
not enabled at all. This fix made the macro defination into the
correct sequence.
CRs-Fixed: 2070642
Change-Id: Idc62b091057da9873874f54f09ca8b76d3658516
Tx lookup queue holds the reference of the packet that is successfully
transmitted via CE pipe. Tx lookup queue method can be called from
tx path and from tasklet simultaneously for the same endpoint.
One context can get the packet reference in its local lookup Queue and the
other context may not find the reference as this is not brought back
from lookupQueue to TxLookupQueue.
Fix this by adding a per endpoint lookup queue lock.
Change-Id: I0f4872f695e9ab15c27c91e733449f03871f4262
CRs-Fixed: 2047390
For SDIO WLAN, the creditsize is different for data EP than other
EPs. This change using alt credit size to replace of original
credit size.
CRs-Fixed: 2072158
Change-Id: I105db55da66e6123b2a53326d53758c24eca21ec
In htc_send_data_pkt, netbuf will not contain a valid pointer for
TX packet count updating unless pPacket is not NULL. Move the TX
packet count updating code into the code block where pPacket is
containing a valid pointer.
Change-Id: I5cf6787b731df36c41c0c12a585e816e54ffb904
CRs-Fixed: 2053354
Currently if Firmware is down during probe, driver will BUG_ON and
re-probe will not happen. Remove QDF_BUG to allow driver to fail
gracefully, allowing re-probing by the platform driver.
Change-Id: I65fca58168f1c8413eef4790c0f428e64a58f3a7
CRs-Fixed: 2027472
implicit conversion from enumeration type 'A_STATUS' to different enumeration type 'QDF_STATUS'
implicit conversion from enumeration type 'QDF_STATUS' to different enumeration type 'A_STATUS'
CRs-Fixed: 2063344
Change-Id: Id3613d0b7fca58c3d94c5af59838b0bff3ef26de
qcacld-2.0 to qcacmn propagation
The driver will drop the TX packet if remaining depth of the sending queue
is less than 2. This will casue the memory leak, credits missing and TCP stall
issue when running the iperf test.
The fix is to add back current packet before return, which just be dequeued.
Change-Id: I9e0c69c16e9562afd627d0fc222a9fbd475c468c
CRs-Fixed: 2056195
Initial changes for adding dp trace in common framework. Modified dp_trace
record sturcture to include pdev_id as a member to take per_pdev stats.
Dump command has been modified to dump stats per pdev.
Change-Id: I8aede0bd8ab6f381c7fa0542d077bdd8bf66b3d2
CRs-fixed: 2038944
Create a timestamp conversion helper that returns whole seconds and
remaining micro seconds, for easier consumption by logging methods.
Change-Id: I5bc40075566485f3dc9f7e5fd81a13ec462c5da0
CRs-Fixed: 2031564
Create output agnostic log print APIs for WMI and Credit History to
enhance the debugging experience.
Change-Id: Ie89a9cb3b54c373ac2610d62003e940da17696d8
CRs-Fixed: 2028762
Handle failure scenario for qdf_nbuf_map() API by freeing
allocated memory, returning failure/error etc.
Change-Id: I493fb063c8f57e38525e2dc1701a6e972d2ec0e6
CRs-Fixed: 2028524
Fastpath DP should be resumed after WOW is disabled from FW. Move
it to correct place.
Change-Id: I9108ee4393cc4ee5f8a232c3de14d68b47aa760e
CRs-fixed: 2023358
Add NULL check for pPacket returned from htc_packet_dequeue before
dereferencing it.
Change-Id: I30c4fb3a4bc6652396795305c3b8a23bba88922a
CRs-fixed: 2009829
Currently, Host initial wake up, suspend ack callback do not
register callback context with host-to-target communication layer.
As now PMO is handling now these callback, objmgr psoc is required
as callback context.
Hence as part of the fix, Add supports for callback context for
these API's.
Change-Id: I83d513764792b800a8540cdbe847aad552df0ab1
CRs-Fixed: 2015229
Firmware requires WMI commands to be sent on different copy engine for
each MAC. Change CE assignement to support this.
Change-Id: I91a2422a944741dc25c3bf45b18cde30e7409632
CRs-Fixed: 2005214
qcacld-2.0 to qcacmn propagation
To acquire lock to protect pEndpoint->TxQueue
in the failure path.
Change-Id: I6844f1329427e7065dc3e4e64bf105087d963dd9
CRs-Fixed: 1077223
qcacmn to qcacmn-2.0 propagation
qdf_mem_zero is called after qdf_mem_malloc to set the memory
value to zero. qdf_mem_malloc uses kzalloc internally to allocate
memory which sets memory to zero.
Removing redundant qdf_mem_zero which are called after
qdf_mem_malloc.
Change-Id: I8e1faf6099f8fbc869c8af42b7511a13e66e6bed
CRs-Fixed: 1079697
propagation from qcacld-2.0 to qcacmn.
If host fail to allocate receive packet bundle buffer
it will return no memory without freeing receive pkt queue.
Fix is to free the receive pkt queue before returning from message handler.
Also, fill the rx free list during driver load time itself with the
pre allocated memory so that Tx won’t take away this memory.
Change-Id: I4bf2aeb7bc85cc68cfa1314e6dbf5057665ba7ce
CRs-Fixed: 1079623
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in the Host Transport layer.
Change-Id: Ic9c7f920883f41176d89419de25b7e02df0b895e
CRs-Fixed: 1093231
Add support for asynchronous Host to Target connection connection in
whcih packets can be queued in both interrrupt and process context.
Change-Id: I52f0f972b938a558e4ef3c13cf4d76aa3a63d58f
CRs-Fixed: 1092518
qcacld-2.0 to qcacmn propagation
In USB solution, one WMI command will consume
one "resource". So, for WMI endpoint, the
"resource" number of one bundle is
HTC_MAX_MSG_PER_BUNDLE_TX rather than 2 *
HTC_MAX_MSG_PER_BUNDLE_TX.
Change-Id: Ia60e49a403a0d689d1ba8397f7c796cd911ab918
CRs-Fixed: 1013006
qcacld-2.0 to qcacmn propagation
Return HTC_SEND_FULL_KEEP directly in epping_tx_queue_full function
and give nodrop pkts higher priority over normal pkts
Change-Id: Ib36e1a9f34eb9054b12f0e8ba54a86ace7d6c8f8
CRs-Fixed: 990726
WMI can queue the packets in both process and tasklet context. Before
queuing the packet H-TC will increase TxProcessCount. Only one core
can increase it and proceed for queuing the packets to HIF. At 100%
cpu utilization due to locking and unlocking the H-TC TX lock, one
core is holding TXProcessCount(and went to tasklet context and stuck
there) and other core is not able to queue the packets to HIF. Which
is creating virtual CE stuck case. Fixed the issue by acquing the
H-TC tx lock before the while loop which queus the packets
in H-TC queue
Change-Id: I435be9fa34b5ae86c6edb6ee29426a9134e5b6f2
CRs-Fixed: 1083038
This is a qcacld-2.0 to qcacld-3.0 propagation.
pr_debug() should not appear by default in kernel log (kmsg).
DEBUG is a kernel macro, since host driver is using the same name macro,
pr_debug log statements are appearing in kmsg.
Fix this by moving the code under DEBUG to WLAN_DEBUG and
remove DEBUG macro from Kbuild.
Change-Id: I5bb385f91f9b6ba15629a5878625fefc21d4a7e1
CRs-Fixed: 1003261