The bcast twt functionality may need to be enabled separately
for requestor and responder roles. Enable such configuration
by looking up WMI service bit support from target:
wmi_service_twt_bcast_req_support
wmi_service_twt_bcast_resp_support
Change-Id: Ibc91173c23cf69f0d248af27d61c77bee3e8f48a
CRs-Fixed: 2828720
TWT nudge is a combination of suspend and resume in a single request.
Add TWT nudge operation and QCA vendor attributes to support
the TWT nudge request.
Change-Id: Iddc4cb6722e88ad9dd65933091bdaa468718f2cf
CRs-fixed: 2822267
Currently, the function "reg_is_regdb_offloaded" always return false
for WIN as "reg_is_regdb_offloaded" is a "static inline" one-line
function defined in a header file "reg_utils.h". Make it common for
both WIN and MCC by moving it to the "reg_services_common.c" file.
Also, by default, initialize the variable
enable_5dot9_ghz_chan_in_master_mode as true for WIN and false for MCC,
in the function wlan_regulatory_psoc_obj_created_notification as
MCC does not support it by default and WIN does it.
Change-Id: Ica023ec0788e1dd6973fef59e33e6e64c336ba26
CRs-Fixed: 2829674
Introduce proper logging APIs for diag module and also rate limit error
logs when skb allocation fails in low memory conditions to avoid excessive
logging side effects
Change-Id: Ia41ff7cfd526180825df61a43f1f59163947f257
CRs-Fixed: 2836681
Currently, reg_set_2g_channel_params_for_freq only considers
enabled channels when filling in the channel params. This
could cause issue when starting vdev in a passive channel.
Update the logic to consider CHANNEL_STATE_DFS as well.
Change-Id: I7a49aaa9a51e09729d7b912a6e3fd62fa240d714
CRs-fixed: 2835565
In other than the FTM modes the memory allocated for the ftm
object is not used. Optimize the memory allocations by checking
for the device mode before allocating.
Change-Id: I5e8e454ae43b480e9d55cadb89c0757a1267b029
CRs-Fixed: 2809963
The current timer modification API does not return the status
of the underlying OS specific API.
The return status of the underlying API could be useful
to detect if the timer was modified even before the timer
has expired before the last update to the timer.
Update the API to return the status of the underlying API.
CRs-Fixed: 2835319
Change-Id: Ieade0ff82386f959d7f29264a25b75a96a72e644
During interrupt mask initialization, bitmap of tx ring
mask and reo dest ring mask are filled in host mode based
on the number of rings.
When NSS offload mode and dynamic HW mode are enabled,
interrupt reset is done based on modified ring count.
This is causing invalid hal_srng access for interrupt
context which are not reset.
So, resetting tx ring mask and reo ring mask based on host
mode ring count. Also reset when mask value is non-zero.
Change-Id: I6e3ef2df7a1f71aa17ebf8499467b39bc84f88bf
Add enum to indicate the connect or disconnect request initiated
due to a config change.
Change-Id: I68e058f37f00b548076874c97903dc78d4f4cb25
CRs-Fixed: 2826533
Update the maximum bandwidth value of the channels in the current
channel list based on the chip's supported modes and the
availability of the adjacent channels.
Also remember the maximum phymode and bandwidth supported by
the device in the regulatory pdev private object.
For determining if a channel is DFS or not, use the flag
REGULATORY_CHAN_RADAR which comes from regulatory rules, instead of
using CHANNEL_STATE_DFS.
Change-Id: I844857ef63af3f7628b37eedfe5098bb88e3e0dc
Add the following new API for the connection manager
to get the active request type, active connect request,
active disconnect request
wlan_cm_get_active_req_type
wlan_cm_get_active_connect_req
wlan_cm_get_active_disconnect_req
CRs-Fixed: 2821225
Change-Id: I8b2a2edfafe09c5642c376f45d4b2ae349145dbf
ALD files are now part of SON project hence make file changes
to include dependent header from SON project.
Change-Id: I72884f35a0d9ac9059ccad274eff492e09e7acaf
CRs-Fixed: 2816301
The scheduler watchdog timeout is currently fixed at 10secs.
There are few customer use cases, where the CPU is busy for
sometime and the scheduler message processing is taking longer than
the coinfigured watchdog timeout value.
Add a new API to be able to configure this value different than the
default as per the requirement.
CRs-Fixed: 2834194
Change-Id: I976f1f0ad17f09cf3960f99ad80226d775b8b2f2
Currently the connection manager queries the
blacklist manager about the action to be taken
and if all the candidates of a certain SSID are
blacklisted then the connection would be rejected.
There are various types of blacklisting, some
can be overridden and some have to be strictly
followed.
Fix is to overide the blacklist candidate and
connect to it if no other candidates are suitable
for connection.
Change-Id: I84358df5f94d4c82989bf81412355f312320dc0b
Crs-Fixed: 2825519
Add drop statistics for duplicate EAPOL frames received
in the REO exception ring as OOR frames. This will help
understand if EAPOL frames are getting dropped which could
cause connection issues.
Change-Id: Ib9d5a3c04ce6638c65166f02261af5c526cc47eb
CRs-Fixed: 2814633
RTPM wow resume gets triggered from ongoing WMI cmds related to SAP
getting started on the 5 GHz DFS channel. Even though PCIe link resume
is successful, there is a link up vote from UMAC and scn link suspended
state is not getting clear. Thus, clear the scn->link_suspended state
at the end of hif_pci_bus_resume_noirq() because before HIF PCIe bus resume
noirq phase is complete, PCIe link is already resumed.
Change-Id: If05593c95d2d63d271fed4abcf84b43e96cc070e
CRs-Fixed: 2833831
Whenever there is a recovery triggered, if there is a
failure in reading the bus id collect the bus specific
registers to understand the reason for the failures.
Change-Id: I7387d63d9205d24fd881824b9a9fac48a7816c73
CRs-Fixed: 2833331
If module is not registered for dbr in any platform it
results into Null pointer dereference.
Added Sanity check to avoid Null pointer dereference for
cfg80211tool wifi0 g_dbr_ring_status.
Change-Id: I9e68dfc9d58d70693184f53913cd7f2324d788c1
Enhance athdiag to support 32bits HAL register address access. And support
the live dump mode to access the HAL registers directly using PCIE
interface.
Change-Id: I2322059e68b30ae47228e06dca01537b23ac2074
CRs-Fixed: 2831283
Since dp_11abgnratetable table supports till 12 mcs for HE modes,
restoring NUM_HE_MCS value to 12 for correct computation of rates
Change-Id: Ieea846cf17866612f94af36de39a4a16f13b9beb
Vdev object manager reference should be taken before enqueuing
serialization command and it should be released after dequeuing the
command from serialization queue. Currently this reference release is
done before moving the command to active queue from pending queue.
This may lead to vdev object deletion before the command is moved to
active queue and result in use after free access for vdev object.
To resolve this, release vdev object reference after moving the
serialization command to active queue.
Change-Id: Ibef0814a245abb36f526997d848cf15ef6a49a44
CRs-Fixed: 2832676
FFT bin is 10-bit wide in Spectral pack-modes 0 and 1. However, HW packs
just one FFT bin in a 32-bit DWORD by adding extra padding bits in
pack-mode 0. Currently, the Host reads the entire 32-bit DWORD to figure
out the FFT bin value. Instead, read the only useful bytes i.e.,
least significant 2 bytes of a DWORD. This approach is efficient,
especially on a Host that implements a byte-swap mechanism on FFT bins on
a big-endian Host.
Also, while dumping FFT bins for debug purpose, print the first 2 bytes of
an FFT bin in pack-modes 0 and 1.
Change-Id: I20ca8c4905671e80251dca07f80ce17801b98f5c
CRs-Fixed: 2831530
Add new wrapper to get the bus specific register information via
the bus driver.
Change-Id: I544b23c8f6654e9215fb4f03203d6754c766dada
CRs-Fixed: 2833251
Whenever driver does a recovery because of the bus failure the
reason for the recovery is not known until the reason code is
read in the hif layer. So, update the recovery reason if there
is a bus id read failure in the hif.
Change-Id: I5ed6adc92ef2a94a031f682e5ffd17af9ac6893d
CRs-Fixed: 2833247
Currently, host decrements beacon switch count and sends
channel switch frame every time until count becomes 0 this
may introduce sync issue between fw and host.
To avoid sync issue csa switch count is offloaded to fw. fw
will send CSA_SWITCH_COUNT_STATUS_EVENTID once beacon count
becomes 0 and host will send vdev restart once it recives
CSA_SWITCH_COUNT_STATUS_EVENTID.
Change-Id: I60238e8e83b56ca4c6490f9516d673d14ef9c323
CRs-Fixed: 2831356
Add support to view station's peer RSSI value in auth and assoc request
packet by extracting rssi from probe request and passing it down to
FW in the auth request and assoc request mgmt frames.
Change-Id: I92f714ed815ab8c77f6a6b7df3363dc96f1119bc
CRs-Fixed: 2832982
Use cache invalidate api instead of cache_sync since
cache_sync api is not available in MIPS platform.
Change-Id: I4b8e2fc3cb9055d1c392c2f6dbe7d6be7c66031b
Make the following changes to update Host Regdb to accommodate the
new 6G regdomains:
1) Add a macro COMPILE_REGDB_6G, to prevent compilation of
the new 6G regdomains in the host.
2) Add new 6G super domains, 6G sub domains, and 6G reg rules (add a new
structure regulatory_rule_ext) and place them under
COMPILE_REGDB_6G.
3) Add 2 new fields to the
struct country_code_to_reg_domain - reg_6ghz_super_dmn_id and
max_bw_6g. If COMPILE_REGDB_6G and CONFIG_BAND_GHZ are defined then,
reg_6ghz_super_dmn_id and max_bw_6g are part of the
country_code_to_reg_domain table for a country entry. If
COMPILE_REGDB_6G or CONFIG_BAND_GHZ, is not defined then they are
absent.
Change-Id: I72ba7b8f6fb4761205fbde51bbc8570bac531e87
CRs-Fixed: 2794085
The QDF_GET_BITS is only applicable to the 32 bits. Add 64 bits version
QDF_GET_BITS64 to support 64bits operation.
Change-Id: Iaa40c5c52e259cd14358162f2b193fcbe257e319
CRs-Fixed: 2828527
Change the alternate indication_0 to WBM instead of
REO2TCL. This is done such that, WBM takes care of
the of the de-linking of the link descriptors and
release the buffers to the respective WBM rings.
WBM should take care of the NULL entries if present
in link descriptor as WBM internal errors.
Change-Id: Ie084e54861bb4611a45cd724bb32d211c62f4f21
WLAN chip components are little-endian based. When such a chip is attached
to a big-endian Host platform, there will be a mismatch in the order of
bytes for the data that is transferred between the Host and target.
Direct DMA framework writes 64-bit values to its DMA ring entries.
These DMA ring entries are present in the shared memory between the Host
and the FW and the data transfer doesn't go through any copy engine.
So, to avoid invalid reads at the FW side on a big-endian platform, write
ring entries in little-endian format so that the FW reads them correctly.
Change-Id: I9c9189f914fdda335723c25fc05484487985447c
CRs-Fixed: 2828746
Some AP disables AMSDU in BA256 mode, this has draw back
with KPI in HE mode, so leave a config field to use 64 BA
forcibly to make high KPI with these types of AP
Change-Id: Ia69ffe118fd5bbda78cfb98126a483fcf305294e
CRs-Fixed: 2828304
Extract btm response and initial roaming stats coming
from FW through WMI_ROAM_STATS_EVENTID event as
wmi_roam_msg_info_tlv_param.
Change-Id: I9a9b768d09a45ba70066cacb4aa420a90a39a76d
Crs-Fixed: 2826323
Add an enum to encode various DFS channel states.
The dfs channel states are represented using a per dfs array object rather
than maintaining a channel state field for each channel (since dfs channel
states are not required for 2G and 6G channels).
The size of the array is approximately 30 because
first_dfs_chan = 52
last_dfs_chan = 161(in case of ETSI EN302 502)
channel_spacing = difference between 2 consecutive 5G channels = 4
size_of_the_array = (last_dfs_chan - first_dfs_chan) / channel_spacing
= (161 - 52) / 4
= 27.25
~= 30;
The dfs channel array is indexed by hashing the frequency. The conversion
(hash function) is as follows:
given_chan_number = (given_chan_frequency - 5000) / 5;
where 5 is: 5Mhz = minimum IEEE chan bandwidth.
array_index = (given_chan_number - first_dfs_chan) / channel_spacing;
Add the following functionalities:
1) initialize the DFS channel state array.
2) update the channel state array.
3) read the channel state array.
4) convert the channel frequency to channel state array index.
5) convert the dfs channel event to dfs channel state.
Change-Id: I7921571fcc80b43a7ef7caf92c34b016fe396e45
CRs-Fixed: 2823529
The nla_data coming from user space is a variable length data,
but the driver is checking nla_len() against a fixed length struct only.
It is possible that the nla_len() check against fixed length struct
may pass and if the nla_data does not have the payload and it may
result in possible out-of-bound read (slot->payload).
Hence the fix is to, check if nla_len() is atleast more than
the fixed length struct and also account for payload length.
Change-Id: I2e68d55c0411cff55908c1704031e3c070f3316e
CRs-Fixed: 2825763
Define QCA vendor attributes to dynamically configure TX NSS and RX NSS
to be used with QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION and
QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION commands.
Change-Id: I9b3b3d3c5be2abd01fa8669b10c2961c271ecdbb
CRs-Fixed: 2831257
Add CDP API to dump the SW head pointer and tail pointer
of a few important srngs. This can be used to debug or
get a direction when the device doesn't dump ram info.
dp_print_ring_stat_from_hal is not being used, since without
device force wake recipe in place, reading hardware hp/tp
value can lead to NOC errors.
Change-Id: Ib0381acb007f1b4431f6a02cd9762e461d6393e8
CRs-Fixed: 2826084
check csa_beacon_template service and set
WLAN_SOC_CEXT_CSA_OFFLOAD/25th bit of
soc_fw_ext_caps in psoc if service is
supported by fw.
Change-Id: I8dca74c805cc8696f261e0f791818bca579c80c8
CRs-Fixed: 2826451
Add feature capability indication for dbs for the
drivers to advertize support for this.
Change-Id: Ic6941e58a30d6aa6a867a12ddd7a8db5abbb1673
CRs-Fixed: 2821654
Declare a TPE pointer to store the TPE IE in the scan cache ie list.
Write a function to obtain the TPE IE stored in the scan cache ie list.
Declare a minimum TPE IE length as 2 Bytes and use that to check the
sanity of the received TPE IE before storing it. Discard the TPE IE if the
length check fails.
Change-Id: If5b06604b03d07dd5fb26a62f90fb7202ce4eff0
CRs-Fixed: 2826300
Write disptacher and core functions to set and get the following
6g ap and client power type parameters in regulatory:
1) current 6G AP power type - LPI/SP/VLPI.
2) current 6G client mobility type - Default/Subordinate.
3) RNR Usable.
4) Unspecified AP usable.
Change-Id: I926642d1a3e7d9049772c5c4d2aad7cd472f8bd0
CRs-Fixed: 2825676
The macro QCA_DFS_RCSA_SUPPORT is currently residing inside common
code. But this feature is not used by MCL, therefore in order to
reduce code approval process, this macro and associated code is moved
to WIN specific component-dev git repository.
CRs-Fixed: 2822626
Change-Id: I43a9e63ede5958f8641be1be45f7c5cd71820667
The existing QDF implementation does the following
1. The QDF trace either prints to the console
2. The QDF trace message is directed to the utils,
which based on log level
a. redirects to a user space daemon or
b. redirects to console
There is excessive logging detection in the utils code
before redirecting the prints to the console.
If the number of prints to console is more than
the configured threshold, we assert in development builds.
Moving the API for excessive logging detection from utils to
QDF trace.
The configuration for detection of excessive logging currently
is only for the number of prints per second.
Adding time configuration also to detection of excess logging
to the console.
CRs-Fixed: 2809752
Change-Id: Iecc408fc9b576fa900a6d7ee793639f1dde3110d
Add cache invalidation support for for MIPS platforms. The API
on mips platform takes start and size as input. Obtain size by
subtracting end and start.
Change-Id: Iaf2920b8fed2b2a2870682c6bf75c905cb8ca836
In mission mode, when PKTLOG is enabled, dp_mon_filter_update()
will reset the RXDMA2SW ring filters which will block the RX
completely leading to connection issues.
Reset monitor mode filter only when monitor VDEV is configured.
Change-Id: I0f55370af74a5f538ef926d8f8d61bffaa64a69e
CRs-Fixed: 2827739