Usually, ADDBA frame exchange is handled by HOST. But when this
is offloaded to FW, an HTT event is reported and HOST only needs
to update RX tid parameters, no need to send addba resp frame again.
BA status update is in addba resp TX completion, so there is no chance
to update this field in ADDBA offload case. This change is used to
set ba status to active to make ba session in correct status.
Change-Id: Iae4a1974cf4b8c55b20862df51b14d5011aefd73
CRs-Fixed: 3201455
In the case of qwrap repeater, send the original packet on the
interface where it received and send the packet with dummy src
on the mcast primary interface
Change-Id: I08f64559ff2a9430b140c962117d4d71ab684b8d
CRs-Fixed: 3214360
There is a possibility where host can receive invalid SW cookie
in wbm internal error path which causes invalid rx descriptor
access.
Add a sanity check on received SW cookie to prevent the invalid
rx descriptor access. Also, add sanity check for the duplicate
rx descriptors.
Change-Id: I6400cb1fc067f4bc474f2768c18c8f7ce587fbbe
CRs-Fixed: 3220371
Currenly pool id retrieved from the sw cookie is used in rx buffer
replenish for both buffer type and link desc type in wbm internal
error handling.
In case of wbm internal error with link desc type, pool id can't be
used for rx buffers replenish because pool id notion of rx desc is
different from link desc and this could cause out of memory access
issue.
Fix this issue by using the pool id retrieved from the msdu sw cookie.
Change-Id: I7184571e1f6a67c7266335154121b345fa12b4ab
CRs-Fixed: 3214867
Increase the number of DP interrupts to 16. The interrupt assignment
table is updated to add new values for different MSI interrupts
available. 9, 10 and 11 MSIs configuration will take the same
configuration as that of 8 MSI. 13, 14 and 15 MSIs configuration
will take the same configuration as that of 12 MSI. New MSI assignment
configuration is introduced for 12 and 16 MSIs.
Change-Id: I82af75b21c793a62fc8f0bd5515e1160b601c0c2
CRs-Fixed: 3209397
The telemetry agent on certain intervals needs to pull the
SAWF stats from the driver.
Add CDP ops to pull the SAWF stats from the driver.
CRs-Fixed: 3210834
Change-Id: Ibc27059ff13b33acc4e71d3174a0415756dcfc5e
In case of MLO, peer consumpiton stats are getting incremented only for
primary peer as the API was called after primary peer check.
Add fix to call the API before primary peer check so that the stats are
updated for all the link peers
Change-Id: I603e7a37564858e030d8f0f5f16792f516728f60
CRs-Fixed: 3222984
With restructured internal hif runtime pm. Modules using the
runtime pm module need to get registered with runtime pm modules
with their static IDs. QDF wrappers for allowing and preventing
runtime pm suspend are depreciated.
This change introduces ID for various modules and new qdf
wrappers, qdf_runtime_pm_get and qdf_runtime_pm_put are
introduced.
Change-Id: I111efe4aa980a26dbd7da30f031b8daba1c870f2
CRs-Fixed: 3169417
With restructuring in HIF runtime PM module, modules are
required to register with the HIF runtime PM module. Also,
changes are done in functions of allowing and preventing
runtime PM suspend as part of restructuring.
This change registers DP, HTC and HAL internal modules
with runtime PM module and update HIF runtime PM function
calls with the restructured code of HIF runtime PM module.
Change-Id: I8899a1d3b92a90a05c5eaf4df7609f4008f739f8
CRs-Fixed: 3169372
Currently, different modules had different ways of allowing
and preventing runtime suspend. Multiple debug mechanisms
were introduced and workarounds are present as well bloating
the runtime PM module.
This change is done to clean up and restructure HIF runtime
PM module. Modules using Runtime PM module need to register
with an ID present in hif_rtpm_client_id.
hif_rtpm_get() will increment the device usage_count and
prevent device from suspending. Based on argument type, if
system is suspended, subsequent resume action will be done.
hif_rtpm_put() will decrement the usage_count of device and
if it is NULL, based on type of put call, idle sequence will
start. Register HIF module and update respective get and put
calls done from HIF module.
Change-Id: I23747f0f7208e689c1c9eb55789aa81945f596ec
CRs-Fixed: 3169272
There is possibility of receiving invalid SW cookie
which maps to invalid rx descriptor access, to avoid such
issues validate the SW cookie before using it for fetching
rx descriptor
Change-Id: Ib90a398865c5e0afedd5804615d6df6ad5ee77f6
CRs-Fixed: 3214570
Add reg API to convert eirp to PSD power based on the
formula: psd = eirp - ten_log10(channel bw)
CRs-Fixed: 3210379
Change-Id: I93506f8262f3fd752e22326e0604d6c8ec5383c9
Direct DMA source ring type has two rings where ring0 is
used for Spectral and ring1 is used for CFR. The current
hal_srng_ring_id do not have the ring_id defined for CFR,
which leads to wrong ring_id populated for TX MON feature,
which collides with CFR ring.
Fix the same by defining ring_id for CFR.
CRs-Fixed: 3220401
Change-Id: I778cea533a1907ae6cd94f63734ca6c967891b9d
Fetch sub-channels of 320 MHz in reg_get_subchannels_for_opclass
API.
Change MAX_AFC_BW to 320 and REG_MAX_20M_SUB_CH to 16 in case of
11BE.
Add cen320 as an input to reg_get_best_pwr_mode to fetch the eirp
afc power for the corresponding cen320 from the afc response.
Add dispatcher API for reg_get_chan_state_for_320.
Add band_center_320 as an argument to reg_get_chan_state_for_320
to fetch the channel state for the input 320 MHz band center.
Add logic in reg_find_eirp_in_afc_eirp_obj to fetch the eirp power
for the given center freq.
CRs-Fixed: 3211744
Change-Id: Ic37bfe6790385836f81a156dd6ccc071245ea1bb
Update definition for MLD capabilities subfield present in
the Common Info field of Basic Multi-Link element as per
IEEE802.11be D1.5.
Store parsed MLD capability in node to send these to Target.
Add endianness handling for MLD Capability.
Add a check if the value in the common info length tallies
with the length as determined from the presence bitmap for
MLD capabilities.
CRs-Fixed: 3206837
Change-Id: I3d03afbd60171b2cf5e81c9a8dbb51d7673c9163
Currently regulatory maintains 2 separate channel lists
for client and AP. For client type, host driver is using super
channel list and for ap type host driver is using secondary
channel list.
Currently when regulatory fills the best power mode, it only
considers highest power to decide best power mode but it does
not consider if the power is for AP power mode or for client
power mode. Since power values for AP power modes is always
higher as compared to power values of client power modes, so
best power mode is always gets updated with the AP power type.
Since host driver uses super channel list for only client power
type and with above method tx power for AP power mode is getting
used which is incorrect.
To address above issue, update the best power mode for only client
power types.
Change-Id: Iba44ce919b719a59944e431cd1b4d58749122e8b
CRs-Fixed: 3159215
Check lite monitor condition in Tx monitor handler function
and correspondingly take action to deliver the packets.
Change-Id: Idf352bd677f00daae0c8e4325ff6661c7a4f854b
CRs-Fixed: 3219324
Incorrect value of macro QDF_MON_STATUS_USIG_MU_VALIDATE2_SHIFT
leads to non-zero value of field "Punctured Channel Info" in
USIG TLV in radiotap header even if puncturing is not enabled.
Correct the value of macro QDF_MON_STATUS_USIG_MU_VALIDATE2_SHIFT to 14.
Also use correct set of macros for setting of usig_mask.
Change-Id: I4a5594f784137238ee4aa072c7595e83673c1960
CRs-Fixed: 3218536
Add API to iterate through all modes to set setup tx monitor based
features. Also added filter setup function for tx lite monitor mode.
Made additions to filter print functions and added the fields that
were missed.
Change-Id: I20070f75d800199199195f73b1e2a13b428d5672
CRs-Fixed: 3191619
Move roaming related SM handling under WLAN_FEATURE_HOST_ROAM and
WLAN_FEATURE_ROAM_OFFLOAD macros.
So that if neither of them is enabled connection manager
SM don't move SM to roaming specific states.
With this if roaming macro WLAN_FEATURE_HOST_ROAM and
WLAN_FEATURE_ROAM_OFFLOAD both are disabled OR
WLAN_FEATURE_ROAM_OFFLOAD is enabled but INI gRoamOffloadEnabled
is disabled, driver will not try to roam, instead, it
will do a internal disconnect followed by connect to new BSSID
Change-Id: Ic61d3badd451f426db8b9925e2b4dd0b2f9ff307
CRs-Fixed: 3216546
As part of the sta_sap_scc_on_indoor support, a concurrent SAP
without indoor channel support can be started on an indoor
channel, therefore NO_IR flag is not set for the indoor
channels in the master channel list.
However, in countries where VLP is not supported, the concurrent
SAP is not allowed on these non-VLP channels. Therefore, restrict
the SCC indoor support only for INDOOR_ONLY 5 GHz frequencies.
Change-Id: I29f7bc4bed5fe5d06d535126eb8958425b5ad313
CRs-Fixed: 3208199
Split tx and rx monitor buffer add function so that
they can be indivudually called when lite monitor mode is enabled.
Change-Id: I9996d0261f1912237bd6fa45058d410698b9fa28
CRs-Fixed: 3206170
Enable bits in WMI_INIT command to let the FW know about host's
capability to support notify frame feature. If the feature is enabled,
host can mark certain TX frames as "notify frames" for hardware and they
need not be sent to FW. FW depends on this capability exchange to decide
whether to install HW rules for frames to be sent to HW.
Change-Id: I7158e79ae0fbdc73a2f4096ae1577337e8291246
CRs-Fixed: 3209399
Since more than one components depend on reap timer of
monitor status ring, add bitmap to record the trigger
sources of the timer and refine the APIs/calling functions
accordingly.
With this change:
When a new start request comes, if the source is
CDP_MON_REAP_SOURCE_ANY, skip bit set, and start timer
if any bit has been set in the bitmap; while for the
other sources, set the bit and start timer if the bitmap
is empty before that.
When a new stop request comes, if the source is
CDP_MON_REAP_SOURCE_ANY, skip bit clear, and stop timer
if any bit has been set in the bitmap; while for the
other sources, clear the bit and stop timer if the bitmap
is empty after that.
Change-Id: Idaa7837c4b93b247ff2236aa5072d309fa9548c2
CRs-Fixed: 3190347
For non-self sta peer (sta_self_peer is set to 0) and in error cases
like (WMA peer create failure), peer->txrx_peer is NULL which
indicates DP peer setup has not happened and therefore there are
no rx cached frames flush. Having a qdf_assert_always() if sta_self_peer
is set to 0 is incorrect. This a valid scenario.
Hence remove the irrelevant qdf_assert_always().
Change-Id: I1ab18dd681534bb9257be388a74adedc529a67cf
CRs-Fixed: 3212253
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.
Change-Id: I7e8efaa680c26d9e4a12268e97c1a82a7c7a7a44
CRs-Fixed: 3216249
As part of a transition of basic MLO functionality to IEEE802.11be
D1.5, add definition for 'All Updates Included' in MLD Parameters
subfield in TBTT Information field present as part of TBTT Information
Set in Neighbor AP Information field of Reduced Neighbor Report
element.
Change-Id: I2e8b08e5d23ac51168455116d1772d484682815d
CRs-Fixed: 3197190
As part of a transition of basic MLO functionality to IEEE802.11be
D1.5, add definitions and receive processing for the signaling of the
presence of BSS Parameters Change Count subfield in STA Info field in
Per-STA Profile subelement in Basic Multi-Link element Link Info
field. This presence is signaled by a new bit in the STA Control
field of the corresponding Per-STA Profile subelement. Rename the
definition for BSS Parameters Change Count (sub)field size to make it
generic since it may occur in various protocol signaling areas
related to MLO.
Change-Id: Ieb17f65547b7106442369b51cd6bc303046a224a
CRs-Fixed: 3197012
1) Change the following country mapping for WIN
i) Change 5GHz regdomain of Aland Islands to ETSI13.
ii) Change the mapping of Christmas Island to APL25_ETSIC.
iii) Change 2GHz regdomain of Colombia to FCCA.
iv) Change the mapping of Cook Islands to APL26_ETSIC.
v) Change the mapping of Heard Island and McDonald Islands to APL25_ETSIC.
vi) Change the mapping of Niue to APL26_ETSIC.
vii) Change the mapping of Norfolk Island to APL25_ETSIC.
viii) Change 5GHz regdomain of Sri Lanka to ETSI15.
ix) Change 5GHz regdomain of Svalbard and Jan Mayen to ETSI1.
2) Change the following country mapping for Linux Android
i) Change 5GHz regdomain of Aland Islands to ETSI13.
ii) Change the mapping of Christmas Island to APL25_ETSIC.
iii) Change 2GHz regdomain of Colombia to FCCA.
iv) Change the mapping of Cook Islands to APL26_ETSIC.
v) Change the mapping of Heard Island and McDonald Islands to APL25_ETSIC.
vi) Change the mapping of Niue to APL26_ETSIC.
vii) Change the mapping of Norfolk Island to APL25_ETSIC.
viii) Change 5GHz regdomain of Reunion to ETSI13.
ix) Change 5GHz regdomain of Sri Lanka to ETSI15.
x) Change 5GHz regdomain of Svalbard and Jan Mayen to ETSI1.
3) Change the following country mapping for DSRC
i) Change the mapping of Christmas Island to APL25_ETSIC.
ii) Change the mapping of Cook Islands to APL26_ETSIC.
iii) Change the mapping of Heard Island and McDonald Islands to
APL25_ETSIC.
iv) Change the mapping of Norfolk Island to APL25_ETSIC.
v) Change 5GHz regdomain of Svalbard and Jan Mayen to ETSI1.
4) Change the maximum bandwidth of the following 5GHz regdomains to 320MHz
i) FCC3
ii) FCC8
iii) FCC13
iv) FCC14
v) FCC17
vi) FCC18
vii) ETSI12
viii) ETSI13
ix) ETSI14
x) ETSI15
xi) APL19
xii) APL20
xiii) APL26
xiv) APL27
5) Add the following 6GHz regdomains
i) APL6_CLIENT_LPI_6G
ii) APL6_AP_LPI_6G
iii) MKK1_AP_LPI_6G
iv) MKK1_CLI_LPI_6G
v) MKK1_AP_VLP_6G
vi) MKK1_CLI_VLP_6G
6) Add the 5GHz_2GHz regdomain pair ETSI15_ETSIC.
7) Add the 6GHz super domains APL6_6G_0A and MKK1_6G_0B.
8) Set the 6GHz regdomain as ETSI1_6G_02 for the countries Aland Islands,
Andorra, Curacao, Cyprus, Czech, Denmark, Falkland Islands, Faroe Islands,
Finland, France, French Guiana, French Polynesia, French Southern
Territories, Guadeloupe, Guernsey, Ireland, Isle_of_Man, Jersey,
Liechtenstein, Lithuania, Malaysia, Malta, Martinique, Mayotte, Montserrat,
Morocco, Netherlands, Netherlands Antilles, New Caledonia, Portugal,
Reunion, Saint Helena Ascension and Tristan Da Cunha, Saint Pierre and
Miquelon, Sint Maarten, Spain, Svalbard and Jan Mayen, Sweden, Switzerland,
Virgin Islands British.
9) Set the GHz regdomain as APL6_6G_0A for the country Saudi Arabia.
Change-Id: Ib9cb9f2983e3302d138d831bce15e87451cebd68
CRs-Fixed: 3200990
Add enum REG_AFC_EXPIRY_EVENT_STOP_TX, which is mapped to
WMI_AFC_EXPIRY_EVENT_STOP_TX, to reg_afc_expiry_event_subtype and handle
the event in the exact way as REG_AFC_EXPIRY_EVENT_SWITCH_TO_LPI event is
handled.
Change-Id: I5289ea1b51e0c2d7573e60a23ded69295252f8d6
CRs-Fixed: 3209048
If a new disconnect/connect req tries flush the pending
disconnect/connect request and while doing so, it
remove the CM pending request, but before it tried to
remove pending command from serialization, the command
becomes active in another thread.
This active command will try to fetch the CM request
which is removed and thus return without any handling.
This lead to active command timeout for the request.
To fix it remove the command from serialization active
queue, if disconnect/connect request was not found in
CM request list after the command become active.
Change-Id: I81d147060fb21d17e4aa82e99c073d1bd0c5db68
CRs-Fixed: 3212746
Call trace is observed in the function dp_rx_per_core_stats_update()
with the following message.
"using smp_processor_id() in preemptible"
Use qdf_get_cpu() as it takes care for disabling preemption.
CRs-Fixed: 3203385
Change-Id: I9761bf707b5ee92c7e0bb698c2825c9369efd7d5
This change rejects association if MLD MAC address of Station
is same as AP MLD MAC address.
Change-Id: Ie8cafcf8bf0033dc63efbcd0047ddcabf996942b
CRs-Fixed: 3212459
Add API reg_is_sta_connect_allowed and it's wrapper function
wlan_reg_is_sta_connect_allowed to check if STA VAP connection is
allowed.
Change-Id: I7316545cf199deb6ceb64aa2bb30287fc9b8a34a
CRs-Fixed: 3195189