Add support to extarct sta stats from WMI_CTRL_PATH_STATS_EVENTID
by extracting wmi_ctrl_path_sta_rrm_stats_struct data
Change-Id: I7235b8cb0237d828b0fe5e5eab0feadc016d9269
CRs-Fixed: 3583920
Modify wmi_nofl_info_high definition to print only if
QDF_TRACE_INFO_HIGH_NO_FL debug level is set.
CRs-Fixed: 3570322
Change-Id: I879a9d917ff698aeb6b3e53a85c765a74a902b36
Adding lock in epcs info structure to achieve synchronization
in epcs state etc
Change-Id: I76b35075f2ecdfba64d4df5ea06c898f5be059e8
CRs-Fixed: 3583860
Update TX completion status parsing for WCN6450 based on the latest
firmware interface.
Change-Id: I008631ee23990c7209af075b618bea6c1d602eb8
CRs-Fixed: 3583696
Includes changes:
1. Save frequency values from EXT and EXT2 events to psoc object
- wireless_modes, low/high 2 GHz chan and low/high 5 GHz chan from EXT event
- wireless_modes_ext, similar frequency range fields with _ext from EXT2
event. Frequency range fields with _ext are non-zero when a radio supports
overlapping frequency. Eg.Radio that supports 5 GHz full and 5 GHz high band will
have low/high 5 GHz fields populated with primary band values in EXT event and
low/high 5 GHz fields are populated in EXT2 event with secondary band
values. These values are stored in tgt info for later use.
2. Modify regulatory APIs to get and set the wireless modes in reg
component
3. Retrieve frequency fields from EXT2 event
Change-Id: I49ebcc7ee7b26bd115f37abc8cb5b6fa5a415eda
CRs-Fixed: 3576551
In case of WORD MASK subscribtion enabled, get phy_ppdu_id
from RX pkt hdr tlv in case PKT_TLV_HDR is subscribed.
Change-Id: I40e1b01c2f52404872c39df6d9faa57a95dad5c2
CRs-Fixed: 3582126
After link switch, the assoc vdev and link vdev could change.
So once the link switch is complete, change the roam state to
DEINIT for the link vdevs
Change-Id: I3e583fc1cb5be8d17d8680dab96461b058740c0a
CRs-Fixed: 3581730
Currently for beryllium targets, 64-bit field shift/mask
is used to set REO_CMD entry values.
For peach target, the HW header files provide only 32-bit
shift/mask macros, which does not work with the existing code.
Move the REO_CMD descriptor field set to structure field
dereference instead of bit field shift/mask.
Change-Id: Iec9a1618fc6c995aa0939badb4368a4c389fcbca
CRs-Fixed: 3584239
Send bridge partner details during peer create and peer
assoc. The partner of bridge peer are saved which are used later
during bridge peer create and assoc. Also add bridge peer partner
details while sending peer create and assoc on actual links.
CRs-Fixed: 3574656
Change-Id: I755614a131f6552ac28377d2c7648db4fd87b8df
1. add more function pointers for the remainder functions which are
generic
2. assign functions to per chip level
3. prevent using generic rx_pkt_tlv struct and using at a per soc
specific instead
Change-Id: I1cefb10c7a70f04dbf8b110fcfee6f1c9f4ab1a0
CRs-Fixed: 3533521
Miscellaneous fixes in the WBUFF module.
1. Currently in wbuff_buff_put(), if the pool_id/module_id is out of
bound, NULL is being returned which is wrong. In this case, buffer
has to be freed by the caller function, therefore return SKB address.
2. Optimizations to wbuff_buff_put()/wbuff_buff_put() if the WBUFF pool
is uninitialized.
Change-Id: I53264e45a23ac5d51b4b9830d95ef24ceb222072
CRs-Fixed: 3581659
In the case of STA mode, will be marking bss peer as part of
peer map events during the creation.
Due to this create event will be triggered during the peer creation
as bss flag is not set and there won't be any peer delete event
to bss peer resulting stale entries in mld hash.
Hence will be avoiding creation and deletion events.
Change-Id: I15a78ad0b8a90b34505880af94522abbe1de8fb5
CRs-Fixed: 3581548
Currently there is no memory barrier after valid flag read,
which can result in reading q_elem values in random order,
due to which host can read stale entried from the q_elem.
To fix the issue add memory barrier to avoid inconsistent
read for valid flag.
Change-Id: I9431d4f62188def37c2515e376a28f3985733f85
CRs-Fixed: 3577746
Currently, maximum bandwidth in AFC channel list is set to 320 MHz.
Since 320 BW is supported only in 11BE mode, setting the maximum
bandwidth to 320 for devices that does not support 320 BW is not
correct.
Hence, to fix this issue, limit the Maximum AFC BW based on whether
the radio supports 11BE or not.
Move the puncture bitmap validation for 320 MHz BW in the API
'reg_get_320_bonded_channel_state_for_pwrmode' to within the
CONFIG_REG_CLIENT compilation flag. This validation of puncture
bitmap is currently done only for 320 MHz BW. The API used for lower
BW does not consider puncturing. This causes inconsistency in the
behaviour between 320 MHz BW and lower BWs.
Since the validation of puncture pattern is done separately for WIN,
add a WIN specific empty stub function.
Change-Id: Icbbbcae3fef2336df02291c5218d89942f3f1b68
CRs-Fixed: 3560313
Add support to handle WMI_ROAM_SYNCH_KEY_EVENTID.
WMI_ROAM_SYNCH_KEY_EVENTID is received after roaming to 3 Link
MLO AP when standby link is supported.
Add changes to register handler function pointers and parse
the event.
Change-Id: Iee17560f9f1f3242ef512a550764a9c64319b67f
CRs-Fixed: 3571673
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.
Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.
Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
Per PDT testing, when vdev creating, the variable rsp_timer_inuse
is set, it is abnormal and causes fw crash. Since the variable
rsp_timer_inuse will be initialized later in function
target_if_psoc_vdev_rsp_timer_init. So ignore status
QDF_STATUS_E_ALREADY in function mlme_vdev_obj_create_handler.
Change-Id: I48c622d99f1a0686dfa7725fb69116a5ab8a1e58
CRs-Fixed: 3574858
Extend QCA_WLAN_VENDOR_ATTR_CONFIG_OPTIMIZED_POWER_MANAGEMENT
attribute to support enum qca_wlan_vendor_opm_mode.
Add QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_ITO and
QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_SPEC_WAKE to configure inactivity
timeout and speculative wake interval in User defined optimized
power save mode.
Change-Id: I726ca91638e07fd1efae4921519bb6affc8b9c21
CRs-Fixed: 3567041
Currently on WCN6450 which is based on IPCI, there is a problem
in re-enabling the IRQs while firmware recovery is in progress.
While processing the CE IRQs, if there’s an active recovery
happening in the host (due to FW assert), we are leaving the IRQs
disabled in the kernel.
Fix this by refactoring the code such that hif_irq_disable() is
called only when there is no active recovery.
Change-Id: I4e3ccbb5f820645597feb724ddfe321e7d7d1a5f
CRs-Fixed: 3579429
Currently, the host driver interprets an active link
status as 0 and an inactive link status as 1.
To comply with updated requirements, the change will
switch active links to be represented as 1 and inactive
links as 0, aligning with the correct status interpretation.
Change-Id: I5342e85106b4623ed4c79a4841884bfa8cd9d638
CRs-Fixed: 3581454
A new start response reason was added by FW to indicate invalid config
of TX VAP. Update the corresponding enum on host to support this reason.
Change-Id: I924776a83176d495ac9e8b656a78b131bd0b0cc5
CRs-Fixed: 3582194
RCC mode of CFR capturing was not working on miami as
bb_captured_channel field which is being accessed from
RXPCU_PPDU_END_INFO tlv is not being set in host.
These fields of cfr are fetched from HAL_RX_GET()
which is being failed to read by host as it
follows 32 bit approach and miami uses 64 bit format.
Reading 4 bytes is not enough ,So changing HAL_RX_GET()
to HAL_RX_GET_64() and this will read 8 bytes with
which we get elements properly.
Change-Id: I8c669e5cc78ce856c1bc4b0449125aac45461a9b
CRs-Fixed: 3572563
Host is failing to read few cfr elements by HAL_RX_GET for
pebble as HAL_RX_GET follows 32 bit approach and pebble uses
64-bit format and so reading 4 bytes is not enough.
Used HAL_RX_GET_64 to read those cfr elements and this change
reads 8 bytes and then the elements are properly read.
Change-Id: If6f0b8e2a215719a1e42828764db01fe99a7e48d
CRs-Fixed: 3575631
Currently hal_info and hif_info logs levels are set to
QDF_TRACE_LEVEL_INFO, which results in prints being logged
to dmesg buffer.
To prevent prints logging into dmesg buffer, changes logging
level to QDF_TRACE_LEVEL_INFO_HIGH.
Change-Id: I039c5e7b6b47f1ffda8e32ff44322d1963648c41
CRs-Fixed: 3577831
In rx monitor deliver, Buffer need to be free properly for any
failure after MPDU restitch.
Change-Id: I7d2f649e8266d91d50a429a92c07bc42d1d730eb
CRs-Fixed: 3580509
Improve readability of monitor filter update error messages.
This will help to avoid redundant error message printing from
caller.
Change-Id: I63dbc52be7a2f9537bf226fe0008c4efb51fe582
CRs-Fixed: 3576860
Currently, driver extracts EMLSR caps info from association response
for assoc vdev but this info is not present in link vdev.
Thus, driver should cache this EMLSR caps info in ML STA context while
extracting for assoc vdev and use these values for link vdev.
So, for this, add EMLSR caps struct in ML STA context.
Change-Id: I0ecf32ed4af9fb07624498f2753c12c5420edec1
CRs-Fixed: 3578371
monitor peer is not allocated for MLO MLD peer this lead to drop in
broadcast and multicast frame in legacy tx monitor path. Added support
to enable monitor peer for all peer.
Change-Id: I786554a918bae966a929e4c9188c1b0f324b5846
CRs-Fixed: 3544695
__reserved_g_0003 is not present for peach platform, remove logging of
it as it is not useful anyway to log reserved field.
Change-Id: I8a7c4df5d6b769387010304d0234932925c1a866
CRs-Fixed: 3580279