This feature enables user to change HW mode dynamically
from DBS to DBS_SBS mode and vice-versa. Currently, HW
mode configuration is only possible through INI setting
requiring a subsequent reboot.
Relevant DP changes are:
1. Add API cdp_txrx_handle_pdev_status_change to pass
pdev 'up' or 'down' status to DP module
2. Add pdev-status check in dp_rx_process_invalid_peer
3. Add pdev-status check in dp_tx_comp_handler to free
buffer and release descriptor
Change-Id: I74b144abb1b0dc41a26a18ad28f872e6457e9653
CRs-fixed: 2490212
Tags are programmed using wlanconfig commands. Rx IPv4/v6
TCP/UDP packets matching a 5-tuple are tagged using HawkeyeV2 hardware.
Tags are populated in the skb->cb in the REO/exception/monitor data
path and sent to upper stack
CRs-Fixed: 2502311
Change-Id: I7c999e75fab43b6ecb6f9d9fd4b0351f0b9cfda8
When the scheduler thread initiates the WMA_SET_BSSKEY_REQ
we send CMD_UPDATE_RX_REO_QUEUE to REO srng. This is done by
posting a descriptor to the reo command ring and then we
update the HP so that the HW can consume the descriptor.
Avoid accessing HP shadow address when we are in runtime
suspend state. Perform a hif_pm_runtime_get to resume the
link and access the shadow register and once done initiate a
hif_pm_runtime_put to allow device to go into runtime
suspend.
Change-Id: I24c3e046a5769f03a0f1969360cccdbe55b81d45
CRs-Fixed: 2495720
This changes takes care of the below issues.
1. Skip the host allocation of software Tx descriptors
for single band NSS offloaded radio configuration.
2. Reset the reo frag destination to alternate select
for single band offloaded radio configuration.
Change-Id: I3930f266ff9d81d876dda437b29b1ca83d542e12
1. Remove vlan tag in tx and enqueue to hardware.
2. Add vlan tag in rx after peer-vlan_id lookup.
Change-Id: I932202540ac03cabdd20ffd4849fe759ea8a7abb
Limit the total number of tx descriptors allocated using tx_device_limit
ini configurable parameter.
Change-Id: I00b4aa089b235e45bc6c445c57ce32b977d872c3
Update rx error stats. It is a summation of below failures:
- desc_alloc_failure [No free desc available]
- csum error [IP/TCP_UDP]
These failure stats are updated at pdev level and no need
to aggregate this.Directly add at pdev level and export.
Change-Id: I0a5fa8f972babf092163f3cb2d0093547ded4877
CRs-Fixed: 2496037
Make change to remove void pointer usage in DP cal client
instead use cdp opaque pointers.
Change-Id: Ie966ebb7b6bb937d4ee1d6dce3b040804e61ac37
Crs-Fixed: 2484412
Make change to remove usage of void pointers for
ctrl psoc in DP and instead use a opaque pointer
struct cdp_ctrl_objmgr_psoc.
Change-Id: I9fac21db1156378fc10b95cf10517afa4364da00
CRs-Fixed: 2484411
Add code to remove void pointer usage for hal_srng
and use opaque pointer dp_hal_ring_t instead.
Change-Id: I6907f7376d7fe3c9180b8795bd96f49fead2ec64
CRs-Fixed: 2484404
Remove dereferencing of htt_soc structure from dp layer
and instead use HTT APIs.
Change-Id: I6b796f9b6504c763e6df2cf49b15bf3eecfbdf69
CRs-Fixed: 2483401
Monitor buffer are required only when monitor VAP is created. Allocate
these buffers only when montior VAP is created. This provides memory
savings when no monitor VAP is created/required.
Change-Id: I3ddaef00615f00fd13adb2789469a62f1a0af165
CRs-Fixed: 2491873
dp_reo_cmdlist_destroy frees any pending reo_cmds.
Each reo_cmd is associated with a handler which takes
reo_cmd->data as an input. This reo_cmd->data is a pdev
for dp_rx_bar_stats_cb. So validate pdev before
accessing it further.
Change-Id: I1c2d46d3e3f5ede4491500978153f501ebdeee87
CRs-Fixed: 2478910
The hw_nac support flag is used for HKv2 only
for indicating monitor direct feature in HKv2
HW. This is not required for HKv1 and was added
for test purpose only.
Change-Id: If44b2acc06d5bf65fcb1934fab2e68c5c7e0f651
Crs-Fixed: 2485142
Currently in case when a peer handle is reused, the
info_lock and bufq resources are not getting initialized.
Hence when this peer handle is deleted upon the subsequent
peer delete, the info_lock and bufq resources are freed
without being initialized.
Initialize the peer info_lock and bufq resources when
the peer handle is being reused.
CRs-Fixed: 2476985
Change-Id: Ib442b02e05b8934a6f7c614e1fc643598637fea5
Delete WDS AST entry if the hw_peer_id is invalid in peer map
in cases where the HW exceeds the max hash skid it can support
the AST entry will not be added and as an indication of this
the host will receive a peer map event with hw_index as 0xffff
Host has to check for this type of hw_index and appropriately
delete the AST entry from the HOST table.
Change-Id: I9a135517440b9b20edd3ffd990d89876b7e34047
CRs-Fixed: 2460116
The soc common cleanup should be called from
pdev_deinit path to prevent leak of m/r allocated
for spinlocks and Tx descriptors.
Change-Id: Ie8ad3d164ab07f37f8143d1fe147e5cbabbb4991
Release mon_lock in dp_reset_monitor_mode function before returning
if status is not successful.
Change-Id: I321cd55225ed3cc5e5b4a752fb10604d05fb9a56
CRs-Fixed: 2462725
Add feature flags DP_FLOW_CTL for DP flowctl ops,
DP_PEER_SUPPORT_OPS to support peer handling in DP,
DP_POWER_SAVE for power saving ops in DP, DP_CON_MON DP_MOB_DEFS
DP_INVALID_PEER_ASSERT DP_PRINT_NO_CONSOLE and DP_INTR_POLL_BOTH.
Change-Id: I01dafadf6578c0b5f36ab3ef56624912fb66b100
CRs-Fixed: 2467170
1. Add config table to accommodate per ring type
configuration to have a finer control over the
ring.
2. Provide struct wlan_srng_cfg interface to add
more parameters to control the ring.
3. Add interrupt threshold configuration parameters
to wlan_srng_cfg structure.
4. Add WLAN_CFG_INT_TIMER_THRESHOLD_WBM_RELEASE_RING
and WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING to have
different timer values for REO and WBM ring.
Change-Id: Ied50e3241ab2cc181ca4ed7f126959cd5d9d2de5
CRs-Fixed: 2455297
The channel number is always 0 from HAL RX PPDU TLV, then monitor
mode frames radiotap channel frequency is always 2407, get the
correct channel number that we saved when set monitor channel.
Change-Id: Ib927fe9aca3a4c1f98845fe37c9b1d37d1d6cf5a
CRs-Fixed: 2471161
In srng setup, we set srng alloc size, and allocate memory
for srng buffers.
Even if allocation fails, srng alloc size is set,
which is done even before the allocation is attempted.
In srng clean up path, we attempt to free the memory,
since srng alloc size is set,
but for which allocation had failed,
Instead, when freeing srng buffers, check if we have
a valid address also for srng buffer and then free,
instead of checking srng alloc size only.
Change-Id: I1f2de526e27b7b8d97535bf4c2235c82ffd3ce5f
CRs-Fixed: 2452219
Add support to log the important events in
datapath, which will help in debugging the
datapath issues.
IRQ handler, Napi poll and srng access start/end
are the events which are currently logged.
CRs-Fixed: 2457854
Change-Id: Iba105b0e79443b670a01a929f999f94e00ea92f2
Free the Rx descriptors pool if there is a failure
in allocating memory for nbuf during
dp_pdev_rx_buffers_attach()
Change-Id: If4fcfcfdc2fe70c8c4753518ca020a7d8b0bd2b5
CRs-Fixed: 2464596
write module specific macros inside module/config and
use these inc files inside the kbuild of the module using those
macros.
Change-Id: Ide18770973f35d0e5c45e2474b24256107f40d8c
Add CDP support to update vdev stats from the higher
layers.
The CDP API takes a buffer which is then used to
update parts the cdp_vdev_stats structure depending
on the stats ID that is sent through the API.
This change adds support for vdev tx ingress stats
only. Extended support can be added as required
by adding a new stats ID.
Change-Id: I13d6fb946c8a3dbb0b499b7b026d83b080411d15
CRs-Fixed: 2384177
current Soc RX defrag lock create/destroy flow as below:
1. dp_soc_attach_wifi3
2. dp_pdev_attach_wifi3-->dp_soc_cmn_setup-->RX defrag lock create
3. dp_pdev_detach_wifi3 (no RX defrag lock detroy)
4. dp_soc_detach_wifi3 --->RX defrag lock destroy
here if step2 is skipped for some failure case, step4 will still
try to destroy RX defrag lock, panic happened.
add dp_soc_cmn_cleanup() function in step3, move RX defrag lock
destroy from step4 to step3 dp_pdev_detach_wifi3-->
dp_soc_cmn_cleanup, also move others like reo cmd lock, tx flow
control related lock.
Change-Id: Ic77ddf21e9cefc6d6b747aaad227c732fa2ae2c4
CRs-Fixed: 2447701
Currently the failure in dp_rx_pdev_mon_attach, during
dp_pdev_attach_wifi3, does not cleanup the rx buffers
and hence that memory is leaked.
Follow the proper cleanup sequence to avoid leaking
the rx buffer memory.
CRs-Fixed: 2451982
Change-Id: Idef308e11c46fe3e7ae9199a6fcf05ca83210b6b
Tx completion stats should be counted per wbm ring on tx completion
and not globally. Similarly, rx stats should be counter per reo ring.
Change-Id: I1e4af0d38b23e60de78ca03316861db08ff0811a
For MDM platforms, set default REO destination
ring to SW4 for STA vdev, which is same as SAP vdev.
Note that RX hashing is still enabled for STA vdev.
Also REO destination are run-time remapped when IPA
automony is enabled and disabled.
Change-Id: I49fa523673e7b736008679adec55821e198e8417
CRs-Fixed: 2456786
Move WDS feature specific APIs out of common code
as these features are WIN specific. Keep the usage inside
common code under feature specific flags.
Change-Id: Id907a5e22c27fc47e8314449e154525684a27e85
Add support to configure any HAL SRNG descriptor to
be allocated from cached memory area. This is to
optimize of CPU cycles spent on uncached
memory accesses. Also added prefetch of cached
descriptors
Change-Id: I2544e8596d48e2f5549bf687a764c16d73397545
CRs-fixed: 2267945
Peer delete request and response stats has been moved to per vap
stats. The time info on assoc, disassoc and deauth was already
cleaned up, but members in the dp_peer struct weren't removed.
Change-Id: Ie4a1b171178d8ad03abd76069cc0777802814993
CRs-Fixed: 2451766
For HTT PPDU Stats TLVs, if target has provided less data than expected,
pad the data with zeros until it matches the expected length and
process the TLV, instead of asserting.
This enables testing of different FW and Host versions during regression
analysis.
CRs-Fixed: 2451611
Change-Id: I79aaad8a6fde6d49510c3a212b21425ac784ad5c