Reference count logic to handle concurrent request of hif wake and hif
release operation by multiple contexts
Change-Id: I4626dec9186cd959192582f8903700080534d227
CRs-Fixed: 3391343
Correct the documentation of the function
tgt_if_regulatory_unregister_rate2power_table_update_handler().
Change-Id: I04da3b3bd66f0665023a387d06cbe8c8242b152a
CRs-Fixed: 3430546
When CONFIG_QCOM_IOMMU_UTIL is enable in vendor config, we have to
use new set of API's to get iommu domain attributes, and while using
__qdf_iommu_attr_to_os seeing compilation issue as some identifiers
like, QCOM_IOMMU_MAPPING_CONF_S1_BYPASS are not declare.
even when CONFIG_QCOM_IOMMU_UTIL is not enable we have dependency
on qcom-iommu-util.h file as it has some identfiers which are in use,
with or without CONFIG_QOM_IOMMU_UTIL.
Fix is to include the header file qcom-iommu-util.h which contains
the declaration of all the identifiers used in __qdf_iommu_attr_to_os
and this file is included if CONFIG_ARCH_QCOM or CONFIG_ARCH_MSM
is enable.
Change-Id: I881622c0c447331c53576ce2263c587e1f074a22
CRs-Fixed: 3419264
Clear the target assert seen SOC from partner_map to disengage it from
umac reset process.
Change-Id: I588ae15977b1fd989b6dccb16c5fa3a5269f5f6c
CRs-Fixed: 3433794
Add CDP api support to notify asserted soc info to DP
umac reset module, to disengage a asserted soc from
umac reset process.
Change-Id: I92ee07ed90243567dab83d0686022c8327efe1b6
CRs-Fixed: 3428265
Update puncture bitmap along with channel to upper layer when channel
or puncture bitmap changed.
Change-Id: I68ff46fdf0143919a64a523d79f34d5454bb465b
CRs-Fixed: 3436333
Add support to handle the extended Tx completion
statistics during direct switch mode.
Change-Id: If1b6906d5d2b3156ead8ef039524f47e763cb543
CRs-Fixed: 3431840
This change searches for ML Peer across all MLDs, if ML peer
is found in other MLDs, it will reject MLO peer creation
and rejects association
Change-Id: Ifcb150615d840f536d92734e2ef4f86080f5bb6b
CRs-Fixed: 3425900
1.Enable undecoded metadata capture feature for york radio.
2.Added support to extract and handle Phyrx abort request and reason
for york target.
Change-Id: Iae42c9f1bbce63d28983f87b3282264c6a4230cc
CRs-Fixed: 3432389
This is needed in case the STA is configured with more MLO links
than the AP. It will make sure only links that the AP allows
are in use in the STA MLO as well.
Also check for mlo flag on vdev before sending link connect and
updating partner bitmap.
CRs-Fixed: 3423668
Change-Id: Iceec3cf7e8dc7e5bc0a29c56b990faef4f741158
Add link_id check while aggregatin stats into vdev at
time of peer unmap, otherwise vdev stats are aggregated
twice and hence give incorrect output.
Also comment out link_id fetch in BE Rx path as it is
currently not enabled.
Change-Id: I91ceab4c6380bbd6e0cb2717adb2413e9e8e4221
CRs-Fixed: 3435688
Add srng pointer register writing history, it is helpful
for debugging srng HP/TP update issue from host side.
(1) if host faced UMAC source ring, record the HP value and timestamp
when host write the register.
(2) if host faced UMAC destination ring, record the TP value and
timestamp when host write the register.
Change-Id: Ib98e48e1d32defb0d8b30b854b5b0c23691cca59
CRs-Fixed: 3427908
Add new params(ul_tid_bitmap & dl_tid_bitmap) for rTWT remove sta cmd.
This will be sent from test command to trigger remove sta.
Change-Id: Id68c020a18e3e418ad6605f27827ab755f8eea53
CRs-Fixed: 3431178
At continuous physical address limited telematics platform,
in order to avoid occasional memory alloc failure with big
kzalloc size, it's better to use virtual memory allocation
API instead. And below one will be refined to replace malloc
with valloc when CONFIG_ENABLE_VALLOC_REPLACE_MALLOC=y.
1 x 21552 = 21552B@cfg_store_alloc:448
Change-Id: Ic43901453e8194d4f7fc0f8af2e2459bea5495a6
CRs-Fixed: 3426968
For example, If tmp_new[1] = 3, subie_len=160,
tmp_new + tmp_new[1] + MIN_IE_LEN) - sub_copy will be 159.
In this scenario, while condition gets true (159 <= 160)
In if condition (159 >= 160), we are not breaking the loop in if.
tmp_new will get incremented, tmp_new will point at 159,
tmp_new[1] will point at 160, tmp_new[2] point at 161.
So, we are accessing one byte out-of-bound value.
To fix accessing out-of-bound value subtract one from the subie_len
in while and if condition to avoid this scenario.
Change-Id: I624585323963b6d79acf9ff0f96ec17e0b415c2d
CRs-Fixed: 3358833
To support splitphy and MLO operation when multiple
TX ring are present under single soc, then to differentiate
the TX lmac, pmac id in per packet is require. As pmac_id in
bank register is always constant for pinnacle case, so need
to pass per packet in TX desc.
Change-Id: I8e5a832700770274e68bf8a04e97675386184545
CRs-Fixed: 3356413
To support splitphy and MLO operation when multiple
TX ring are present under single soc, then to differentiate
the TX lmac, pmac id in per packet is require. As pmac_id in
bank register is always constant for pinnacle case, so need
to pass per packet in TX desc.
Change-Id: Ic6d8e14e8c1948e218c52c8eeaf99fcd6c437753
CRs-Fixed: 3356413
Add variable and get / set APIs in VDEV mgr for STA + SAP / GO DFS SCC
scenario to track SAP / GO's channel switch before STA's channel switch
Change-Id: Ie13291602a5888942c71e3882c72796c7ea47378
CRs-Fixed: 3431360
There was a case in which the logical_link_index for link vdev and
partner vdev was matching which was causing an issue.
The reason for duplicate logical link was because the mlo_link_connect
was not sent in same order in which partner link vdevs are added.
Send mlo_send_link_connect in order in which partner links are added.
This will ensure generation of logical link indices for link vdev
and partner vdevs correctly.
Change-Id: I4053fad7a7b615bca9b6386bf142ea785bca5ccf
CRs-Fixed: 3427985
Implement TX enqueue logic for WCN6450. There are no host facing
UMAC HW blocks in WCN6450. Driver enqueues all TX packets to
copy engine (CE) over the copy engine channel that is mapped to
HTT_DATA2_MSG_SVC service.
Changes are specific to WCN6450 and hence implement the logic
in the arch specific code.
Change-Id: Ia366a74b94a4e84c1d4c037c7a99093bb6739178
CRs-Fixed: 3381755
In the case of WCN6450, sizes of the TX descriptor pools are not known
to the driver during load time. The sizes are shared by the firmware
post VDEV creation via HTT_T2H_MSG_TYPE_FLOW_POOL_MAP HTT message.
After the VDEV gets deleted in the firmware, a corresponding flow unmap
HTT message will be sent to the driver to clean up the TX descriptors
of a particular VDEV.
Add logic to handle the flow map/unmap HTT messages for WCN6450. These
messages are specific to WCN6450 and hence the logic is implemented in
arch specific HTT code.
Change-Id: I8edcabbec77abae2c238f487acb7a48b478fd149
CRs-Fixed: 3381751
Currently host sends WMI_REQUEST_LINK_STATS_CMDID for
SAP over WMI to fw and as fw doesn't support this command
over WMI for moselle it does forced assert.
To address this issue send WMI_REQUEST_LINK_STATS_CMDID
command over QMI to fw for moselle.
Change-Id: I03c9daee1d561d69bb5caf195f8e06ce5e4a72fc
CRs-Fixed: 3394792
WCN6450 is a chip based on Rhine architecture. Unlike LI/BE targets,
chipsets based on Rhine (RH) do not have host facing UMAC HW blocks.
Their corresponding SRNG interfaces are also removed. The functionality
of these UMAC HW blocks is replaced with a software implementation in
the firmware. Communication between the driver and firmware will happen
over copy engine (CE).
Although there are no host facing UMAC HW blocks, the CE hardware used
in WCN6450 expects the host driver to use the TX descriptor (HW) format
of LI targets during TX packet enqueue. Therefore it is required to
create a new pool of TX descriptors (HW) pool for WCN6450 that is used
during TX.
The logic to create/free/init/deinit these descriptors is specific
to WCN6450/Rhine, therefore it is implemented in architecture specific
Rhine code.
Introduce new APIs in struct dp_arch_ops {} to allocate and free
arch specific TX descriptors. These ops will be no-op for LI/BE
architectures.
Also for Rhine targets, allocate/free other TX descriptors like TX EXT &
TSO descriptors as part of the arch APIs.
Change-Id: I452ac69143395881ab8580355a0f75571dc3e929
CRs-Fixed: 3381711
SON IE length check drops some of the AP beacon or probe
response due to length mismatch.
As length may increase for some of APs. Remove check for
ie len of WLAN_VENDOR_SON_IE_LEN
Change-Id: I74add7ea539913f67bf7d11e2ff8e4b0374eba05
CRs-Fixed: 3418249
The kernel-doc script identified some documentation issues in the
umac/wifi_pos folder, so fix them.
Change-Id: I261ecd11e8e15bac021214c2d9e0774f316d7ac7
CRs-Fixed: 3430355
Currently, memory for all kinds of TX descriptors (TX EXT,
TSO etc) are allocated/initialised at once during the driver
init and freed/deinitialised during the driver deinit.
This logic is not suitable for WCN6450.
In the case of WCN6450, the size of the TX descriptor pool is
not known to the driver during load time; Firmware provides
the size of the descriptor pool via HTT_T2H_MSG_TYPE_FLOW_POOL_MAP
message post VDEV creation.
In order to add the support of WCN6450, it is required to
refactor the TX descriptor alloc/free/init/deinit logic.
Changes will not have any impact on the other supported hardware.
Change-Id: Iaa66fd5e118f0486bd618394fad070502bac34a0
CRs-Fixed: 3381705
There are two references to struct ol_pktlog_dev_t even though the
struct itself no longer exists in the code. Remove those references.
Change-Id: Ibf94e86c44d9c84c6a51ee554b457878f0a0b7ba
CRs-Fixed: 3421798
Set WDI version based on SOC architecture, set WDI
version to IPA_WDI_4 for QCA_WIFI_QCN9224 chipset,
else IPA_WDI_3.
Change-Id: Ib80435e5098cfbcb9f90d4ac9cfe81ea183f308a
CRs-Fixed: 3383949
Initial changes for York scan radio bringup in monitor mode.
Update monitor filter settings.
Change-Id: Ib9468f11b71d0439d0bd63526f64f454ed6b5b4d
CRs-Fixed: 3421412
Add generic HAL APIs changes for Rhine architecture under
hal/wifi3.0/rh/ which are generic across Rhine chipsets.
Add wcn6450 specific HAL API changes under hal/wifi3.0/wcn6450.
Change-Id: I0964e0f610faa402c00fb68e4c6e901a92f6d7a7
CRs-Fixed: 3383304
Some platforms support a skb_recycler feature which patches the Linux
kernel to add a bool fast_xmit member to struct sk_buff.
Add a QDF abstraction to return the value of this member when it is
supported, and return false when it is not supported.
Change-Id: I6dfe6276779218f4d0245ec44035b4aa596d0e2a
CRs-Fixed: 3418516
At continuous physical address limited telematics platform,
in order to avoid occasional memory alloc failure with big
kzalloc size, it's better to use virtual memory allocation
API instead. And below items will be refined to replace
malloc with valloc if CONFIG_ENABLE_VALLOC_REPLACE_MALLOC=y.
1 x 30488 = 30488B @dp_soc_attach:15189
1 x 52096 = 52096B @hal_attach:1104
4096 x 64 = 262144B @dp_rx_desc_pool_alloc:337
Change-Id: I57a6f78f690b5be1838de954933ae36129cea234
CRs-Fixed: 3426935
There is a chance for null pointer dereference for
num_eht_user_info_valid and array out of bounds for eht_user_info.
Add checks for both the cases as it may cause crash.
Change-Id: Icb5235612a1225b9991c99519b5ee49536c577bc
CRs-Fixed: 3426873