Increase TX URB count to 64 for QCN7605. It is seen that sometimes
the URB count reaches to zero on HTT endpoint.
Change-Id: If6ccf9b11a6fd13d327b47b6bef8db2b10a1d0f9
CRs-Fixed: 2412376
According to PCIe controller suspend logic, RC will disable its regulator
and clock in suspend phase that means in noirq suspend phase, client EP
should not access PCIe bus anymore.
Target sleep timer will access soc register, so wlan driver needs
guarantee this timer is stopped after RC shutdown its power and clock.
CRs-Fixed: 2376675
Change-Id: If76abab1fd4d8d6f36beb13d1b62a7e0a0e7aa4f
In case NAPI is disabled on a CE (and tasklets are used instead), donot
update NAPI stats for the CE.
Change-Id: Iaf464df9a8520d705f73f7be355736ae2f1aaf5b
CRs-Fixed: 2412599
The below change:
qcacmn: Use wrappers for bus-oriented OS API's
missed to release the reset_control leading to
a memory leak.
Change-Id: Ifea18db27fc78f686934b096b513128b1a65da9e
Memory allocated by dma_alloc_coherent() doesn't need cache sync, which
is only needed for stream dma mapping, eg, mapping passed-in memory
using dma_map_single().
More seriously, when SMMU enabled, physical memory returned by
dma_alloc_coherent() is no longer continuous. If pass this memory to
dma_sync_single_for_device(), a do_bad_area exception will hang system,
noting that dma_sync_single_for_device() only handles single contiguous
memory. Refer to Documentation/DMA-API.txt for more info.
Change-Id: Ia0b5bdcc2cb9335aa2e309efccd91e57e844c7cc
CRs-Fixed: 2381886
Remove function entry/exit logs in hif_send_head(),
usb_hif_post_recv_bundle_transfers(), usb_hif_cleanup_recv_urb() and
usb_hif_post_recv_transfers().
Change-Id: I5638d99b4c6a3ace792a81957735c3ccd2d405f9
CRs-Fixed: 2398290
1. Enable CE5 and allow it to service
pktlog messages from the firmware.
2. Register full pktlog callback handlers
for handling sw_events and full tx pktlog.
Change-Id: Ifb70ac0993f2402201f88758845f730cf677b1a0
CRs-Fixed: 2388906
Epping mode is currently borken in qcacld-3.2 codebase.
Fix epping mode for QCN7605 for USB and PCIe interface.
Change-Id: I5ae5ff70b77836cdd6c3d002cf98d4949838b624
CRs-Fixed: 2400180
CE1 is used only during initial endpoint exchange and some control
exchange like cookies. On HK, there is no need to enqueue 512 buffers.
Hence reduce it to 128. This provides a savings of 384 buffers or ~1.5M.
Change-Id: I2b3a58c1d7a914194d842824945d12ae7c9ebb05
CRs-Fixed: 2401025
Current max message size of 2048 will result in a 4K slab allocation due
to padding and shinfo additions. We observed that most of the WMI
allocations are within 1600 and there is no need to set max bu size as
2048. Hence reduce max buf size to 1700 for low memory profile so that
allocation on host result in a 2K skbs.
Change-Id: Icb25be0f4ce60112ef6293f39f9dcc57ebc0288c
CRs-Fixed: 2394768
There are some changes to timer APIs in latest kernel,
update driver APIs accordingly to invoke correct kernel
APIs for timer functionalities.
Change-Id: Ie017c8b1ef8237ca34f696c23509519a1187167c
CRs-fixed: 2383574
hdd_napi_serialize(0) will call hif_napi_event() with
NAPI_EVT_USR_NORMAL mode. But in this mode, blacklist_pending
is not set as BLACKLIST_OFF_PENDING, so the function
hif_napi_core_ctl_set_boost(false) is not called.
Then core_ctl can not resume to normal status, which
will result in performance and power issues.
Change-Id: Ia2084d9febab0ff4aadb0951bd3347f608a1d101
CRs-Fixed: 2381895
The CE11 in target CE config array is used, but not allocated.
Fix this by allocating memory for CE11 in the global structure.
Change-Id: I85088f5a832aec037a1e46eed4b72ac4228fde44
CRs-Fixed: 2365435
QCA8074 platform supports DBS(two radio) and DBS_SBS(three radio)
modes. In these cases, same WMI event ring is shared for all the
radios. Increase the WMI event ring size two absorb host delays
due to lower clock platforms. This increase is required even to
support three radios.
Change-Id: I1aa08b8fa879f6ec54c838541a0e4c4e5871b60a
CRs-Fixed: 2378193
The rx_pending flag is never set to 0 if the check for
TARGET_REGISTER_ACCESS_ALLOWED(scn) is failed when target is
not reachable. Since, the rx_pending flag is not set to 0,
ce_check_rx_pending(CE_state) check inside ce_tasklet() will
be true and tasklet gets rescheduled again and again.
Reset the rx_pending flag before TARGET_REGISTER_ACCESS_ALLOWED(scn)
check in ce_per_engine_service() to avoid continuous scheduling of
tasklet when check for TARGET_REGISTER_ACCESS_ALLOWED(scn) fails.
Change-Id: Ib9268e6cf2bdcd0ed0bf84934e9370bcef1cdbab
CRs-Fixed: 2375307
When unit test command "iwpriv wlan0 wlan_suspend 0 0" is issued on
SAP-DUT (given that one REF-STA is connected), FW would go in WOW-D0
state. In this state, when HW receives the pkt from peer (REF-STA), it
generates MSI (REO-interrupt) and host process this pkt but it doesn't
wake-up the FW. Due to this situation, no TX is happening on SAP after
issueing wlan_suspend command.
This situation only happens when iwpriv command issued as this command
would be fool the FW by notifying that APSS is in power-down state but
actually it is not in active state. When APSS is really in power-down
state then up-on receiption of any RX pkt would wake-up the APSS and
this waking-up process would wake-up FW as well.
Fix this situation by sending explicit FW wake-up event.
CRs-Fixed: 2325860
Change-Id: I18937e5c568c742f838cdf3f815c2184a916283c
Local variable is used to store cpumask to send it to
irq_set_affinity_hint and qdf_dev_set_irq_affinity APIs.
This memory is used by the kernel later outside the
current contect resulting in invalid memory access.
Fix this by using global variables to store cpumask.
Change-Id: I086f40bf1b3499d2c2ccb1ce18140b2dc2761d04
CRs-Fixed: 2373548
Rename CONFIG_QCN7605 as QCN7605_SUPPORT since QCN7605_SUPPORT
is already present/being used.
Change-Id: I1739bf86a9eb02aa6920f06bc929f686a5fa8f54
CRs-Fixed: 2369622
The unused CE11 is accessed in ce_construct_shadow_config_srng,
but not allocated.
Fix this by allocating memory for CE11 in the global structure
CRs-Fixed: 2365374
Change-Id: Iefd9129e486891e27f5964eecc1a2d1efc080d06
Current driver doesn't clean-up all the peers because the TARGET
state is not marked as reset and due to which nobody is there to
mimic fake peer unmap events to reduce the reference count.
Also, there is no peer delete API being called as well in case of SSR.
Identify the TARGET state in-case of SSR by calling HDD callback
and mimic the unmap events and call peer delete API as well.
CRs-Fixed: 2350285
Change-Id: I878b7a15701c01ac9ef80010086f7e868a631a74
Remove CONFIG_WIN from spectral module to achieve maximum
possible convergence.
CRs-Fixed: 2354105
Change-Id: I59e4d8029fcf096042741573cf020136747e7367
When PLD_USB_CNSS is enabled, call pld_wlan_enable() from
hif_usb_bus_configure().
Do not call pld_wlan_enable() when QMI is not enabled.
CRs-Fixed: 2325591
Change-Id: Ie710f8aea1b5ceb9d3a633348858775b2ff462d5
PCIe link up/down voting is critical hence log it using info level
log on console.
Change-Id: Iea2be05cf9ea5231b0e2de54b508d49aec341847
CRs-Fixed: 2357793
On MSM platforms, MSI vectors are always wakeable, so calling
enable_irq_wake() on an MSI vector interrupt line is a no-op.
Additionally, on some product lines, this call will fail. This causes
suspend to fail despite the MSI already being wakeable. Simply avoid
marking the wake MSI as wakeable during suspend as a work around.
Change-Id: I32b2b4fb231681ad29b4e98b2410d0eb6e68c671
CRs-Fixed: 2357784
A read buffer is allocated and used in
ath_procfs_diag_read and it is not freed
in one exit path which causes a memory leak
Free read buffer in all exit paths of
ath_procfs_diag_read
Change-Id: I1b2446a99f53c2f9130d395dd316eb4649eb24db
CRs-Fixed: 2352165
Initialize revision_id to avoid compiler error as
'variable may be used uninitialized'.
Change-Id: Ia76b297e0f0f745284c7d0ede72a55dcc3d0dc65
CRs-Fixed: 2350601
Add support to handle Tx completion processing and Rx processing into
different NAPI threads/contexts for Lithium DP
Change-Id: I4f5c6ef3ce969ce457e26cf3e8305df1ae782f09
As part of WIN BMI modularization, hif_bmi_register_callbacks
are removed from if_pci.c in qcacmn project. As a result,
MCL needs to invoke hif_bmi_register_callbacks in qcacld project.
Fix is to define hif_bmi_register_callbacks for SDIO and USB builds
so that SDIO and USB products can build when WLAN_FEATURE_BMI is
defined.
Change-Id: I559af0205dd4671214a8d7f2972fdba379e10b6a
CRs-Fixed: 2332250
Fix compilation error due to uninitialized variable(write_index)
in hif_ce_bus_late_resume function.
Change-Id: Ia69e56cf74f2970dd0c047740d6499bb5ce07563
CRs-Fixed: 2317219
Move WLAN fastpath featured CE service APIs to ce_service_legacy.c
since they are not used by any ce_service_srng.c APIs.
Change-Id: I7bb51025c477e8e2428479e41baed274ee4f7cae
CRs-Fixed: 2324003
In case of fast patch CE_state->receive_count can go beyond
HIF_NAPI_MAX_RECEIVES as batch processing is happening. This
is causing bucket calculation working. In this case setting
receive_count to HIF_NAPI_MAX_RECEIVES as a fix.
Change-Id: I3179b6f9f893342ead68e46dc4b75fd55e6c7839
CRs-Fixed: 2331579
As part of convergence, the CE descriptor history was moved to dynamic
allocation, per HIF handle. For MCL, this caused the allocation to
consume limited pre-allocated memory, causing regressions. For the MCL
implementation of alloc_mem_ce_debug_history(), use a static buffer
instead to avoid complications.
Change-Id: I8b0c0a2502d4abfd465749328a35004ffed585ca
CRs-Fixed: 2335146
Abstract BMI callback from common module and move it to specific component.
Add Export symbols to support modularization in WIN. (BMI)
CRs-Fixed: 2324081
Change-Id: I1ec463d41d238ce81254ecc1f0bb1dc545e1248e
While freeing IPA CE status ring during driver unload, hit data abort
since ipa_ce_ring data structure is already freed.
Fix not to alloc/free ipa_ce_ring for sring based target and
to alloc/free ipa_ce_ring only when it is not already allocated/freed.
Change-Id: I25081f9c2bad7ba9119926cf089f471463dff69a
CRs-Fixed: 2291969