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
Changes to handle CFR information from ppdu_info in
enhanced stats disabled case.
In enhanced stats enabled case, CFR info is handled in
dp_rx_handle_ppdu_stats API.
CRs-Fixed: 3214538
Change-Id: I41ea6e080f5ede661eed06764939fe2feaa6102e
When the SSR and interface down happen in parallel,
the driver rejects the interface down since the
recovery is in progress. Kernel ignores the -EAGAIN
request from the driver and as part of NET_DOWN notification
in cfg80211_netdown_notifer the kernel invokes the
___cfg80211_scan_done to free the request but doesn't not send
scan_result indication, since it expects the scan_done work to
get scheduled and then broadcast the request to upperlayer.
The scan done checks currently only if the interface is up replace
it with driver specific internal driver state.
Change-Id: I0e5ac319783b9c1a69e7e19674f76f20da1d1590
CRs-Fixed: 3202812
Generally below process should happen in renegotiation failure
case.
1. TWT setup (successful)
2. TWT setup (renegotiation failure)
3. TWT teardown
4. TWT GET STATUS - 0(dialog ID) 0 0 0
5. TWT setup - successful
Since all WMI TWT events gets executed in WMI thread. So when
renegotiation failure case hits, driver sends TWT
teardown to firmware and waits for twt ack in worker thread.
In same worker thread TWT event needs to be processed.
TWT ack event will not process as it's waiting in same worker
thread and it will get timedout.
As part of fix, break the context in renegotiation and
send the teardown in the new worker context.
Change-Id: Id12cb906b780d3013562c1772e276639a056c8f7
CRs-Fixed: 3207537
This enables the option to configure when a peer's
TID queue needs to be flushed. This is required to
discard packets that are no longer useful to the application.
Change-Id: I558debff043fc0c8038e5f5f2c815b64c90e1561
CRs-Fixed: 3130422
Add changes to check if current descriptor which
is being process is not already reaped. In case
if the descriptor is already process and yet to
be replenished drop the descriptor and continue.
Change-Id: I2c46b7f4e50a27e2566f0ce2d9708cecb26c38e4
CRs-Fixed: 3177257
Add QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_11BE_EMLSR_MODE
value to allow or disallow eMLSR hardware mode for 802.11be
MLO capable devices. If this attribute is set to 1, and if
the FW supports this capability too, then the STA host
advertises this capability to AP over assoc request frame.
This attribute will not have any effect on legacy devices
with no 802.11be support.
Reference - https://w1.fi/cgit/hostap/commit/
?id=563162a5f521965e582acc32d7ce3034fa8fb32e
Change-Id: I4ae2cbbc6adcfef8fbc225bef60b3597771786f7
CRs-Fixed: 3185027
When either of the macros CONFIG_AFC_SUPPORT or CONFIG_BAND_6GHZ are not
defined, the function wlan_reg_is_afc_done returned false by default.
As a result, the upper layer set all the 6GHz channels to NO_IR and the
vap was unable to come up.
Fix this by returning true from wlan_reg_is_afc_done when either of those
macros are not defined.
Change-Id: I4acb564023d2a2b318ba1497fd858a02987c117a
CRs-Fixed: 3214096
Use CONFIG_SAWF macro to prevent linking dp_set_delta_tsf in
low memory profile.
Change-Id: I07b75f893e6d043839225d9b7288823b6ef2f823
CRs-Fixed: 3211426
Add eMLSR support for ML STA. It consists of 2 changes-
1) Since POLICY_MGR_HW_MODE_EMLSR_MODE_BITPOS macro has value of 32, a new
SET BIT function has been implemented to accommodate the 64-bit operation.
2) Add eMLSR related params to peer assoc mlo param struct to update FW
via peer assoc request.
Change-Id: I6e54c632677eacabc57338b0f159d97023b100f2
CRs-Fixed: 3185010