Changes to have HW cookie conversion context per
desc pool.
This context will be used to program CMEM of the
other SOC in case multi-chip MLO.
Change-Id: I5ec68813e8fcb6d124698a52f5553acf9a7b1795
Add support to extract the freq, cfreq1, cfreq2, PHY mode, Destination
macaddr, and channel BW values from the RTT measurement request buffer
received from the LOWI application. Pass these values to a registered
callback. Users can use these values to make some decisions on the RTT
scan.
Change-Id: Idb2232c07bbfa2946dc01e75908b9a6036597ecf
CRs-Fixed: 3060685
Classify qmi/wmi by request type, only TYPE_STATION_STATS
is designed to be sent by qmi so far. other type will
continue go with wmi.
Change-Id: Ibaee99c0a9d59b0db634e84f3c0b6e40b65a185d
CRs-Fixed: 3077792
Prefetch RX HW desc, SW desc and SKB in pipeline
fasion in the first loop of RX processing.
This has improved TPUT by 200Mbps and provided a
10% gain in CPU (single core)
PINE with other optimizations: 3960Mbps @ 100% core-3
PINE + pipeline prefetch: 4130Mbps @ 90% core-3
Change-Id: I47f351601b264eb3a2b50e4154229d55da738724
Added an API to do a batch invalidation of REO descs
saw an improvement of 40 to 45 Mbps.
Note: this change is applicable only for cached
descriptors
PINE with Default driver: 3189 @ 100% core-3
PINE with skb prefetch: 3469 @ 100% core-3
PINE with skb pre + batch inv: 3506 @ 100% core-3
Change-Id: Ic2cf294972acfe5765448a18bed7e903562836c3
This force use BA64 ini config is no longer needed, because another
gRxAggregationSize can do the same settings and more flexible.
Change is used to remove this config.
Change-Id: Ie780489849f8b701481a628a9bca2b4112460bd8
CRs-Fixed: 3076982
* /local/mnt/workspace/naveen1/srcs/qcacld-3.0: (2021 commits)
Merge /local/mnt/workspace/naveen1/srcs/qcacld-3.0 into wlan-cmn.driver.lnx.2.0
qcacld-3.0: Send correct PCL to fw for STA+STA roaming
qcacld-3.0: Log BSSID for roam result
qcacld-3.0: Fix roam failed for SAP CSA concurrency
qcacld-3.0: Fix EAP length and roam candidate info
qcacld-3.0: Use API p2p_status_update to update p2p conn status
qcacld-3.0: Fix token and reason code copy in cm_roam_btm_query_event
qcacld-3.0: Handle user initiate CSA in p2p go+go concurrency
qcacld-3.0: Do GRO en/dis based on qdisc only for standalone STA
qcacld-3.0: Fill validity timer in BTM Request event
qcacld-3.0: Use correct attribute for BTM response target BSSID
qcacld-3.0: Enable self bss roam ini by default
qcacld-3.0: Fix 11be support compilation issue
qcacld-3.0: Update SBS Freq Info during service ready ext2 evt
qcacld-3.0: Consider original BW setting for SAP force SCC
qcacld-3.0: Fix BTM logging
qcacld-3.0: Support to deliver mlme event to SON
qcacld-3.0: Add the Full Power Down feature support
qcacld-3.0: Add vendor attribute to configure ARP/NS offload
qcacld-3.0: Add ini support for tx_retry_multiplier
...
Dynamic GRO feature is enabled by default and aimed for specific
customers. Add an ini control to allow other customers to config
this feature enable/disable.
Change-Id: I7f505599327ac131b3cdac9b4d9e038861b1aeb6
CRs-Fixed: 3074689
STA + STA DBS roaming rules are:
1. Roaming will be enabled on both interfaces.
2. Roaming bands are restricted to maintain only DBS.
While STA2 connection, the host sets VDEV level PCL for
vdev1 after association completion only and initializes
roam band mask after the 4-way handshake. So, when sending
PCL to FW value of roam band mask is 0, the host cannot
filter different band channels from STA2's PCL list.
This allows STA2 to roam to the different bands and violate
rule 2.
Fix is to make sure roaming bands are restricted to maintain
only DBS.
Change-Id: I1c9d2edb34f59e00c2fd14ea7894c324f9c64047
CRs-Fixed: 3075106
While parsing the BTM request candidates TLV, there is a
wrong conditional check to avoid buffer over read.
Fix invalid conditional check for BTM preference
Change-Id: I76e55cebc9525ee4a690747c9372c6f2a8166325
CRs-Fixed: 3078160
In connectivity logging for ROAM RESULT log
bssid if ap type is Roamed AP in case of roaming
success and Current connected AP if roaming fails.
Also the vdev id field is not filled for mgmt frame
Tx and is always printed as 0.
Fill the vdev id for mgmt frame TX.
Change-Id: I7d6fe7ba47b508fadaf9b9872e644d8b737bf001
CRs-Fixed: 3068229
For IPQ products, there is 1 refill ring which is of hardware type
and host replenishes the buffers onto this ring so that hardware can
use these buffers for Rx.
In IPA offload mode, the buffer replenishment model is different from
the one mentioned above. There are 3 refill rings, out of which,
2 are software refill rings (1 for host and 1 for IPA), and last ring
is hardware ring given to FW.
Ring given to IPA is to refill the buffers after processing the
regular Rx packets and ring given to host is to refill the buffers
after processing of exception packets. Since there are 2 entities to
refill the buffers, the hardware ring given to FW multiplexes these 2
software rings and provides the buffers to hardware.
Make changes to follow above replenishment model for SDX+Pine
integration.
Change-Id: I0d9e4ec811a3023a258e0a6b9ee22ccdffcebafa
CRs-Fixed: 3049633
In case the vdev is already disconnected, the indication to
the upper layer, would have been sent as part of previous
disconnect/connect failure.
If the upper layer is in process of connecting, sending
the disconnect indication back again may cause it to incorrectly
think it as connect failure. So sending a disconnect indication
again is not advisable.
So if a new disconnect is received in INIT state, drop the
disconnect and return failure.
Also remove osif_cm_reset_id_and_src() from osif disconnect
to avoid race between disconnect complete of old disconnect
and new disconnect request. With osif_cm_reset_id_and_src()
old disconnect might also get dropped in osif and with this
fix new disconnect will also get dropped, so make sure that
last/old disconnect indication is sent to upper layer.
Change-Id: Icf7352d8904473329edff9ec124c6197f214f88b
CRs-Fixed: 3074093
When vdev0 STA roamed to another channel, vdev1 SAP CSA for SCC
when ROAM_SYNCH_IN_PROG, will disable roam, but no RSO stop to F/W,
F/W RSO isn't disabled, but host vdev0 will enter RSO_STOPPED, host
F/W RSO state out of sync.
If vdev0 STA next roam sync come soon, it won't be handled for host
RSO_STOPPED, neither roam sync complete nor disconnect will happen,
F/W will asert after wait roam sync complete timeout.
To fix it, Only do SAP CSA check after roam complete and RSO
reenabled, can avoid host F/W RSO state out of sync issue.
Change-Id: I77ccf30cac38f62c6ef8330c6da00364249b242e
CRs-Fixed: 3076935
EAP length is of 2 bytes, but currently the attribute type
used is NLA_U8. This causes the EAP packets with length
greater than 255 to print invalid length.
For roam current AP, the roamed AP info is printed.
Use NLA_U16 attribute for the EAP length and fill
correct event type for the current connected AP.
Change-Id: I9b86055a4817163db17e469ca45b4a0044d5b2d6
CRs-Fixed: 3075012
Add new wmi ops extract_inst_rssi_stats_resp to extract instantaneous
rssi stats resp.
Change-Id: Idce8a5fb0036145aa14682997ca5101666772c70
CRs-Fixed: 3058799
Refine p2p connection status update, use API p2p_status_update
to update p2p connection status.
Change-Id: Ica1b1cfc56c09e10664cd9130d5bfacc83e2763a
CRs-Fixed: 3076205
If p2p go+go concurrency exist and g_enable_go_force_scc ini sets
to 2(liberal mode) then 1st p2p go channel should move to 2nd
p2p go channel after set key. Again, when user initiates CSA to
one p2p go then the force SCC doesn't happen to other p2p go.
But the expectation is all p2p go should move to same channel
which is initiated by user.
As part of fix, move all p2p go to same channel when user
initiates.
Change-Id: I166f459c208f8f88c885a311da7bcd82a64d8b3e
CRs-Fixed: 3069743
BTM token value is always 0 in the BTM logs.
Copy btm token from the roam_trigger_data tlv in
the roam stats event.
Change-Id: Iebfb07c5a05bad202fbd5a2f52ddcee5243dedb8
CRs-Fixed: 3075276
In cm_roam_btm_query_event, token and reason code is not
copied to wlan_log_record.
Add changes to copy token and reason code to wlan_log_record
in cm_roam_trigger_info_event.
Change-Id: I7e90017070edd61215eaea77fd3af22ae9465d83
CRs-Fixed: 3071239
If p2p go+go concurrency exist and g_enable_go_force_scc ini sets
to 2(liberal mode) then 1st p2p go channel should move to 2nd
p2p go channel after set key. Again, when user initiates CSA to
one p2p go then the force SCC doesn't happen to other p2p go.
But the expectation is all p2p go should move to same channel
which is initiated by user.
As part of fix, move all p2p go to same channel when user
initiates.
Change-Id: I1664e5a7d545d29c32b94e8e4831c71a9cc0ae23
CRs-Fixed: 3064245
In case of STA+SAP, ingress qdisc filters are getting
configured on both STA and SAP interface which is
causing GRO to be disabled.
Check for ingress qdisc to enable/disable GRO only in
case of stanalone STA and not do this in case of
concurrency.
Change-Id: I3542930c7b14d72e267378dd4687ee9721eed4ed
CRs-Fixed: 3062195
Validity timer value is printed wrongly in logcat
logs for BTM request event. This is because the value
is filled from disassociation timer instead of the
validity timer field.
Also the neighbor report related prints are seen
only if the roam msg info TLV is present, which is
not correct.
Fill validity timer in BTM Request event and print the
neighbor report related prints on receiving 11kv
TLV.
Change-Id: I59606f27b0836ea567fed561bbe19f600377d3ed
CRs-Fixed: 3069855
Currently driver QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID uses
instead of QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID attribute
in the BTM response event. This causes the target bssid field to
be missed in BTM response print.
The WTC BTM response event is not queued when reason code is
non-zero.
Use QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID attribute.
And queue the WTC btm response event.
Change-Id: Id713bfeda20c43148e95630f5c6e925b80418ca3
CRs-Fixed: 3071242
Increase the max WBM2SW release rings for qca6750
when multiple tx ring pairs support is enabled.
Change-Id: Ifa3be25a7c9b7cb019165e76b3a71d3db9572334
CRs-Fixed: 3075392
When a connection is requested but the client is unable to find the
candidate, connection will fail. In legacy case, legacy disconnection
path should be invoked. Update the mlo_disconnect_no_lock function to
match the mlo_disconnect logic when checking for MLO capabilities.
Also update the link connect notify function to prevent queuing
multiple disconnect requests.
Change-Id: I5ed4b213b1fe6b48d2d5631bf1625bea2864f606
CRs-fixed: 3069545
Tid in RX frame header may be larger than MAX TID allowed
value, this will lead a out of boundary array access and
lead to kernel crash at last. Change is aimed to do a TID
check and discard such frame when necessary.
Change-Id: Ie9e7a1816d197d05cf845e81251ef7772721b849
CRs-Fixed: 3071743
There is wrong chip type in cfr meta data header if run CFR/CSI with
HSP since doesn't fill it for QCA6490 & QCA6750.
Change-Id: I932c065d33c5eaa33f66ec8a92470f5820472d7b
CRs-Fixed: 3073865
Use CONFIG_CNSS_OUT_OF_TREE to control if CNSS prealloc driver is
built from in-kernel-tree source or out-of-kernel-tree source since
the exposed header file will be in different paths. This is also for
backward compatibility. Use internal flag CNSS_MEM_PRE_ALLOC instead
of CONFIG_WCNSS_MEM_PRE_ALLOC which will not be defined from kernel
defconfig for out-of-kernel-tree CNSS prealloc driver. CNSS_MEM_PRE_
ALLOC will be defined in the driver Kbuild no matter where CONFIG_
WCNSS_MEM_PRE_ALLOC gets defined.
Change-Id: I6e35f3e859fb429584e83665fe0290ffeb314312
CRs-fixed: 3074638
Mark aged out frames in the reorder list so that they
can be released by subsequent calls of release entries
function.
Change-Id: I56983a4f0b93ac66707b216a2c6246912eacfbee
CRs-Fixed: 3062532
Optimize the usage of spin lock in the API to release
frames to the upper layer. The spin lock to protect the
reorder list is released as soon as the frame from the
head of the list is removed. This would reduce the
contention duration for other users of this spin lock.
A new spin lock is added to ensure that frame delivery
happens sequentially.
CRs-Fixed: 3062471
Change-Id: Ibabe6bc965febe28a2182c7235ab2d67232e24e6
tcp_proto is not set correctly from hal_rx_get_proto_params() API,
currently it is using HAL_RX_TLV_GET_IP_OFFSET, use
HAL_RX_TLV_GET_TCP_PROTO to fix it.
Change-Id: I1f3c6aa4b8f5420f176bda4aff158dcfa2a7ef5a
CRs-Fixed: 3073794
Add API to get the link identifier from a given Basic variant
Multi-Link element or element fragment sequence, of the AP that
transmits the Multi-Link element/element fragment sequence or the
nontransmitted BSSID in the same multiple BSSID set as the AP that
transmits the Multi-Link element/element fragment sequence and that is
affiliated with the MLD that is described in the Multi-Link element.
Change-Id: I45039a6ed8ccd9403eae9514c60bcd8d694d2a31
CRs-Fixed: 3040407
Along with 11BE feature macro, check for Kernel 11be macro to avoid
compilation issues when kernel doesn't support 11be.
Change-Id: I11c8287725a25b6b4e3234a38ae61d50f293cc96
CRs-Fixed: 3066178
Some platforms don't have mon_register_intr_ops enabled so add
a similar macro around dp_mon_register_intr_ops to resolve
compilation issues.
Change-Id: Id9c7bb45d965005d4dd0dde3a08f254464244147
CRs-fixed: 3075651