Add a new api to read tsf2 and tqm scratch register for qca5332.
The function to read these registers are different from that of qcn9224
since qca5332 is a AHB radio and reading register involves ioremap of
address range.
Change-Id: Ib05df2ddf528594ae67109f8bcb409424a4350a2
CRs-Fixed: 3331476
Set default value for 'offset' to fix the compile issue
'variables may be used uninitialized'.
Change-Id: Ib8db38140463fb543b1d98f19743b3a3a7fded4c
CRs-Fixed: 3345183
Add support for GET MLO Multicast API to check
if the vdev is primary multicast vdev.
Enhanced SET MLO Multicast API to reset primary
multicast flag for all partner vdevs.
Change-Id: Ic88949ce922bb1d0fd34349058d254de0d1f563c
CRs-Fixed: 3322523
During the roam scan, if there are no desired APs found in the partial
frequency list, an immediate full scan on all the supported frequencies
is initiated as a fallback. This flag controls the frequency list
creation for full scan on the following lines.
1 - Full scan to exclude the frequencies that were already scanned by
the previous partial scan.
0 - Full scan to include all the supported frequencies irrespective of
the ones already scanned by partial scan.
Change-Id: Id48ae28e6d0e719b9db9b2e73bd76f9be1ea0b3e
CRs-Fixed: 3343567
Add debugs in VDEV UP cmdid to track the MBSSID profile
count and index being sent to the firmware.
Change-Id: I592d9abe9226d2f065ea8c3b6ad5c7e8db62965e
CRs-Fixed: 3347415
Currently, SRG PD threshold is updated with
addition of SR_PD_THRESHOLD_MIN which is already
added in srg threshold and threshold is left shifted
to 8 bits and type casted to unit8 which is causing
0 value and NON-SRG PD threshold is updated
to NON-SRG PD threshold advertised by AP
only in case threshold provided by user space
is not within the range of connected AP but
in some cases user may enable command without
threshold in such cases NON-SRG threshold
will be sent as 0.
Fix is to update SRG PD threshold directly to the
value without any addition and use QDF_SET_BIT
to add SRG and NON-SRG data in value which is
required by FW. Update NON-SRG PD threshold to
threshold advertised by AP in case userspace
doesn't provide any PD threshold.
Change-Id: I162722264a566e731352f11874f310714bffe4b2
CRs-Fixed: 3340905
Change minimum limit of dp_rxdma_buf_ring and
dp_ipa_tx_alt_ring_size value for ini may change little.
Change-Id: Ibbf8843b8f21bbfff1db83a0934f95222930b9ab
CRs-Fixed: 3338076
Currently, link vdev is triggered to connect process
after assoc vdev connects successfully in function
mlo_send_link_connect. If osif_cm_disconnect_sync is
invoked during assoc vdev connection, the disconnect
command for link vdev is dropped since it is in INIT
state. Then it only queues the disconnect command for
assoc vdev. After link vdev connects successfully, it
process the disconnect command for assoc vdev, and F/W
assert happens because deleting assoc peer before link
peer.
To resolve the issue, invoking wlan_cm_disconnect with
source CM_MLO_LINK_VDEV_DISCONNECT for each link vdev
in function cm_disconnect_start for assoc vdev.
Change-Id: Id0d0607d4374ed48513f15e5e3f5dfe499087935
CRs-Fixed: 3346737
Stale frame's global time stamp is expected to be smaller than
all the frames in reo list, unless the frames in reo list are
marked as parallel rx wrt to the frames already delivered to
the upper layer.
CRs-Fixed: 3305693
Change-Id: I5a8222ddbf26ddef718bf38b307ef5f524ffef8c
In scenario where the last ML-AP vdev of the MLD receives start response,
then in the same context mlo_sync_complete is dispatched to all the
partner ML AP vdevs.
But for the partner vdevs, VDEV SM event should be dispatched in
non-sync mode with lock held. If not it can lead to event being
dispatched when the VDEV is in intermediate transition state.
For partner vdevs dispatch event as part of callback and based on return
value, dispatch event in sync context for self vdev.
This is to avoid usage of mlme vdev sm sync event dispatch outside VDEV SM
Change-Id: Ib9220c04377985b700138127695a02a5e29952c2
CRs-Fixed: 3317097
Add support to include mapping switch time and expected duration in T2LM
IE.
Removed the below functions as MCC uses ieee_link_id instead of hw_link_id.
Do this conversion in the WIN only code.
wlan_mlo_get_hw_link_id_mask, wlan_get_ieee_link_id_mask
wlan_mlo_parse_t2lm_provisioned_links, wlan_mlo_add_t2lm_provisioned_links
Change-Id: Icc36ff318de4177bf0941235243298baef83d1e6
CRs-Fixed: 3341502
Currently, if SR (Spatial Reuse) is supported by AP and then
STA roams to another AP then host needs to parse SR IE and
send events to userspace and commands to Fw based on below
scenarios:
i.) Roamed AP doesn't support SR: If roamed AP doesn't support
SR then async event with SR disable is required to be sent to
userspace.
ii.) Roamed AP supports SR: If roamed AP supports SR then below
validations are required.
a.) existing thresholds are in range of roamed AP: Send SR enable
command to FW with previous thresholds , as FW disables SR during
roaming.
b.) existing thresholds are not in range of roamed AP: then decision
will be based on whether threshold is provided during SR enable command
or not. If threshold is provided along with SR enable command then send
disable to userspace and in other case update thresholds as per roamed
AP , send async event to userspace with new configured values and send
enable command to fw with new thresholds.
Change-Id: I7eeebddbaa5075f0ba5d823f946b0cfa9d78c1c6
CRs-Fixed: 3331049
When AFC event come and update 6 GHz SP channels' state and power
attribution, SAP which already started on 5 GHz or 6 GHz channel
can move in or out from SP channel, which has higher tx power limit.
SAP target channel/bandwidth is decided by ACS channel select callback
register to SAP module, which will take channel max tx power limit
into account.
After target channel/bandwidth determined, SAPs move to same target
channel/bandwidth with eCSA process. If violate any concurrency
limitation, AFC DCS process should abort.
Add AFC component id and reference id.
Change-Id: Iba6933a30c0957eabf549fd6c8442bed547e8152
CRs-Fixed: 3204172
Vlan Header is not initialize before passing it
to IPA driver, due to this some Vlan header fields
are junk and causing issue in IPA driver.
Fix is to initialize the header with 0
CRs-Fixed: 3342771
Change-Id: Ic29e0822f32bec5ea71702ceea75b7354caeda65
Add sanity check for t2lm ie info and use appropriate macro
changes for expected duration.
Change-Id: Ib369c44b41247e0ca5174b65e39e9d94e19c7af2
CRs-Fixed: 3339695
Add support for vdev level WMI Command and event to send
and receive t2lm ie info
CRs-Fixed: 3339695
Change-Id: I8b896a961cba8f1d8e11111f900a98da090b9513
Initialize the MLO T2LM context with the default values.
- Set the direction to WLAN_T2LM_BIDI_DIRECTION
- Set default_link_mapping to 1
- Set the number of T2LM IE as 1
Change-Id: Icb5a576f14db616bf67a302f3e4666a0303a4c5b
CRs-Fixed: 3345808
In case of split-phy radio, both the wmacs may belong to the
same PSOC. Hence in WMI_VDEV_SET_TPC_POWER_CMDID/
WMI_SET_INIT_COUNTRY_CMDID/WMI_AFC_CMDID, instead of
fetching the wmi_handle from psoc, find the WMI handle for the
corresponding pdev on which the cmd must be sent.
CRs-Fixed: 3333857
Change-Id: Ib38b15dbda4ea83edd6341d7732addbb1a563ad2
In the dp_tx_desc_set_ktimestamp() return false case,
tx_desc->timestamp will not be updated, instead,
tx_desc->timestamp_tick used. So it will cause
dp_tx_comp_delay_check() always return false when
timestamp equal zero. Need to move the tx desc
timestamp check to correct place.
Change-Id: Ic1d5f1035784dcc3f240d832ac1e8820bc24f782
CRs-Fixed: 3331251
nbuf could be freed when some error conditions are hit so
always validate nbuf while processing MPDU/MSDU level TLVs.
Change-Id: I5e0756bc8ba0a8c68c6ce8d2886b5b63068626a0
CRs-Fixed: 3318966
Add vendor sub commands index
QCA_NL80211_VENDOR_SUBCMD_MLO_PEER_PRIM_NETDEV_EVENT_INDEX.
This index is used to identify the vendor event from the socket buffer.
This vendor event notifies the application layer about the primary
netdev after each MLO association.
Change-Id: Icccf0498412ee6831dcf61f9dd7c7e828848c2eb
CRs-Fixed: 3297028
In current design of sta+sap scc on indoor channels, the NO_IR
flag of all the indoor channels are removed during init.
Then, based on the operations on the SAP interface, the
SAP concurrency will be decided in host driver.
However, some userspace p2p applications, do not query the
pcl list from driver, therefore standalone P2P GO are sometimes
brought up in indoor channels.
To fix this:
1. Upon STA connect: Remove the NO_IR flags only from the
indoor channels to which the STA is connected.
2. Upon STA disconnect: Add the NO_IR flag back to the
disconnected channel.
3. Upon STA roam/csa:
a) Add the NO_IR to the new channel if it is indoor.
b) Remove the NO_IR of the previously connected channel
once the SAP/GO(if present) moves out of the indoor channel.
4. The NO_IR flags should be removed for all the bonded channels
on which the STA is active.
5. In indoor concurrency cases, add logic in the SAP start to
limit the channel width with the STA interface bandwidth. Since,
only the bonded channels are active channels.
Change-Id: I0e200a1ef306909398644aecbfbca27622bb9d48
CRs-Fixed: 3337071
Export wlan_reg_get_cur_6g_client_type, so that it can be used
by APIs in other modules outside UMAC.
Change-Id: I010c58b85e43603b96a1281318ac59f368635aee
CRs-Fixed: 3343537
On low memory targets, even with current min values, OOM is seen
on driver load time. This requires us to further reduce
the min value.
With 11be enabled, current max value may not meet KPI requirements.
Hence align min and max INI values for IPA TX ring and TX completion
ring size with HOST used ones.
Change-Id: Iedf1c2d4be04d798314e9ba61a844038c5696f45
CRs-Fixed: 3338114
If IPA tx alt doorbell address is not returned from IPA, wlan
should not touch the tx alt paddr and vaddr either. Therefore
add the NULL check before handling the tx alt ring resources.
Change-Id: I6b98fe5c003f3e796441513515190ea592d14d01
CRs-Fixed: 3339322
buffer_timestamp in wbm2sw ring descriptor is 19 bits only with
unit 1024 us, so it can only accommodate 0x7FFF * 1024 us same as
29 bits value with unit us. but if the timestamp value is >
0x7FFF * 1024 us, then the value stored in buffer_timestamp is not
right as other higher bits bit29 ~ bit31 is lost.
restore bit29 ~bit31 value for buffer_timestamp to fix current issue.
Change-Id: Ie929f560365cc822883711133541772348775357
CRs-Fixed: 3336241
To support MLO on 4 chips, update the maximum number of chips that
can participate in MLO to 4.
CRs-Fixed: 3314581
Change-Id: I93a253b4e54f7e4e19ea8407facfb69e6347d192
Add edca_pifs_param attribute in QCN ie. This attribute will
be use to configure edca and pifs param for LL SAP.
Change-Id: Ic8f9969067f676010fdae8b5391fdec6f5207628
CRs-Fixed: 3334897
Add ecsa attribute in QCN ie. This attribute will be use to
configure extended channel switch announcement ie.
Change-Id: If47155cd6ea8b62cc99920148db71c90359fbcba
CRs-Fixed: 3337215
Add new QDF API's to handle napi, softirq related handling
in rx thread and rx refill thread.
Change-Id: I0f371c89e65d8b20f059c56097bac07ec1e19cc9
CRs-Fixed: 3341804
Extract the bdf version status from ext2 service ready
event to indicate if bdf file match with wlan fw
well or not.
Change-Id: I7a81667a42fb825c02da1662afdace4d0cbe3cae
CRs-Fixed: 3334551
Currently, in case of station+monitor mode on KIWI target,
we are not attempting to drop the entries received in the
monitor destination ring, when no channel has been
configured for the monitor interface. This leads to the
monitor destination ring full condition and an eventual
backpressure on the ring.
Fix this issue, by dropping the entries in the monitor
destination ring, which have been received before the
monitor channel has been configured.
Change-Id: Ic9c432b438d0a5dce2d2bb38053c31ce508c27f5
CRs-Fixed: 3332327
Only 8 RX data TIDs are used, so HW stats query only needs to update
these TIDs info to save command executing time. Change is aimed to
reduce the TID number and use only one REO flush command for overall
REO cache flush.
Change-Id: Ib642451b9f07f62198126c45644742e1908280cd
CRs-Fixed: 3325964
Change module id to QDF_MODULE_ID_DP_HTT for hexdump printing
of hw vdev stats.
Change-Id: Ie9db76aa04241680236aa6b23a4ee65b5fd89d23
CRs-Fixed: 3343177
When high throughput is running between AP and STA,
due to u8 variable overflow, host is not replenishing
required buffers.
More than 255 buffers can be requested for replenish,
so fixed size of the variable.
Change-Id: Ia810fed29058ec527cd8e6f77e6f9c333c5c6f88
CRs-Fixed: 3306616
Fetch beacon/probe response with given mac address from scan db.
The frame can be used to fill bss descriptor in case of MLO
roaming where scan entry is derived from ML probe response of
assoc link.
Change-Id: Ie20b36c6619dd0e44d04d3bd8767c7dd09b053d5
CRs-Fixed: 3342439
When firmware attempts roaming to an MLO AP, it tries to find
the complete ML info(all links info) either through ML probe
response or beacons from all the links. It forwards all link
beacons(or ML probe response) to host as part of roam sync
indication through roam sync frame event. The link beacon frame
needs to be fetched from roam sync indication and cache it in
connect resp to use it while link connect in roaming cases.
Add a new param in connect response structure to facilitate this.
Change-Id: Ib015728c8ee880337c4d1fdadc373c9e52247b55
CRs-Fixed: 3342433
Compilation is failing due to Missing definition
of KERNEL_VERSION as the Header file is added
before including <linux/version.h>.
Fix is to move the Header file at the end.
CRs-Fixed: 3338337
Change-Id: I83fc448becc4af81df9b4c7b3fe9193875c7f6f1
Retain ds ring indices across wifi restart to avoid
edma hang. Fetch the indices from ds module and set
the corresponding ds ring indices.
Change-Id: Ia299a7006166aef096c7d2c1f65f6bef65415a37
CRs-Fixed: 3332152