During mode switch no new service ready happens. However,
a mode switch function re-inits the regulatory channel list
with appropriate chip ranges.
After driver insmod and during device creation the chip
ranges (2g+5g) are initialized. However, if a sequence of wifi down
and ini mode change and wifi up happens, the chip ranges for pdev
are not updated (as it happens for dynamic mode switch command)
and we continue to use the old device object and the old chip ranges.
Since the mode has changed we also need to change the ranges in
the device object. Since the country code event comes for every
wifi up and down, Update the 2G and 5G frequency ranges supported by
the pdev in the regulatory pdev private object from the service
ready values for every country set to make sure that changes in
HW mode are also handled during wifi down and up.
Change-Id: Id1f486e73d792f77c591e39e216556e512a8b59f
CRs-Fixed: 3088128
Currently the monitor buffers allocation is attempted
for 2 RXDMA monitor status/destination rings.
For certain targets, eg KIWI, there is only one RXDMA
monitor status/destination ring, and the monitor buffer
allocation for the second ring fails. This return status
is not handled properly.
Fix the monitor buffer allocation to use the number of
rxdma rings from cfg context and handle the return status
properly.
Change-Id: I86718dbd790d96d794963b17a4c9bdf32792d854
CRs-Fixed: 3128299
Add support to parse the matched user info header
from the PHY TLV for EHT data traffic.
Change-Id: Ic5f47461b4617e087ff95863f4c6fc744266ee29
CRs-Fixed: 3128310
Add support to parse the common user info header
from the PHY TLV for EHT data traffic.
Change-Id: Id7d3359850806ec87945b4213771098121b0ce93
CRs-Fixed: 3094140
For KIWI, when operating monitor mode in 802.11BE,
there can be certain header fields which can be received
as split across multiple TLVs.
Add support to aggregate such split TLVs and decode them
after agregation.
Change-Id: Ia00323a8f9fbe39306b1bbab4afefaa937befdae
CRs-Fixed: 3092820
1. Add reg_get_min_chwidth to return the max chanwidth supported by
regulatory given the primary frequency and the pdev.
2. Add reg_get_max_chwidth to return the max chanwidth supported by
regulatory given the primary frequency and the pdev.
3. Add dispatcher functions for both
Change-Id: Ia21198fe778d32b1673e5dd30c8cd621cded2c45
CRs-Fixed: 3098311
The API reg_compute_chan_to_freq() computes frequencies only for channels
present in master channel list. A 6G channel may not belong to the current
(current power type's) master channel but be present in different 6g power
type's master channel list.
So if a 6G channel is not found in the current (current power type's)
master channel list, then search for the channel in all the 6g power's
master channel list to compute the frequency.
Change-Id: I7ccdaeb1f9de8d9baabe59ad673d445ed36a6a2d
While copying FFT bins from the target, Spectral Host driver reads
one DWORD (32-bits) at a time and extracts FFT bins out of those DWORDs.
This extraction uses standard bit shift and mask operations as below.
#define QDF_GET_BITS(_val, _index, _num_bits) \
(((_val) >> (_index)) & ((1 << (_num_bits)) - 1))
For a chipset that uses pack mode 0 i.e., packs 1 FFT bin per DWORD,
_num_bits in the above operation will be 32. So, we try to left shift the
integer constant '1' by 32. If the integer constant is represented by
32-bit integer, we could have issues in the result of shift operation.
As per C standard, the result of shifting an operand by a count greater
than or equal to width (in bits) of the operand is undefined.
This is because some platforms could optimize the shift operation by
masking the shift count to 5 bits. That means, the shift actually
performed is 32 & 31, which is 0.
Fix this by using 64-bit integer constant '1' in the above operation.
Change-Id: Ic7fe4de7917f3069d78a2ff29d86009cbf381e3f
CRs-Fixed: 3125158
Specify vdev_id in bitmask format for HW vdev stats reset instead
of directly specifying the vdev_id.
Change-Id: I6e3cecdc83d01ecdfdeca3236e94cc91c57511ef
CRs-Fixed: 3128590
MO stands for Monitor Other which is a filter setting specified by
host to hardware to receive TLVs for non-associated clients.
In case of enhanced stats and smart monitor, non-associated clients
are not considered and therefore disable filter settings for MO for
these features.
Change-Id: Ic533072ff668c7ab54188101a889882c4ee4ba4a
CRs-Fixed: 3123784
Currently, qdf_spin_lock/qdf_spin_unlock is used to protect
spectral_lock. This can lead to a deadlock when the process
context is holding the lock and gets pre-empted by the tasklet.
To avoid this use qdf_spin_lock_bh/qdf_spin_unlock_bh.
Change-Id: Ibd2be7b7f3faf2dea9d7df8d6468c7a8fda512f2
CRs-Fixed: 3124199
Add change:
1. Extract phyrx abort and phyrx abort reason error
code from PPDU END TLV
2. Extract additional necessary fields from L SIG,
HT/VHT/HE SIG TLVs
Change-Id: I3b05009cdc7ce7b585c00d1690ad238b9e6a88b2
Add change to fetch and save the WMI service capability of FW to
support multi AST delete using service bit.
Change-Id: I038073085dca1370bafe691b6b0ba8c4476be7a2
CRs-Fixed: 3118892
Add change to fetch and save the WMI service capability of FW to
support multi AST delete using service bit
Change-Id: Iba1af7c230574ae68086357cbb49ae3ca3d944e4
CRs-Fixed: 3118892
If coex_unsafe_chan_nb_user_prefer ini is not set then
avoid_freq_ind becoming NULL for "wmi_wlan_freq_avoid_event_id"
which results in sending regulatory update event to user space
and reduces PNO scan timeline.
This change is to update ch_avoid_ind for
wmi_wlan_freq_avoid_event_id.
Fixes regression : 7192d90810 ("qcacmn: update unsafe channel
list for SAP for freq extcmd")
Change-Id: I57ff334e9cf47468c30bc6884a9ead0a65a92b23
CRs-Fixed: 3119140
Align the string entries inside the rtpm_string_from_dbgid()
function in the order of wlan_rtpm_dbgid enum entries.
Change-Id: I455e93723f5df882babb758a4979d1b1cecd8e7e
CRs-Fixed: 3128352
Initialize txrx_ref_handle for whunt bypass,
Which is complaining use of uninitialized txrx_ref_handle,
as it is not able to detect that txrx_ref_handle is
populated from another API.
Change-Id: I0f69cf4c8442a5655559622a5825d7af35b9ae5e
CRs-Fixed: 3127788
Before MLO sta partner link is up, FW can't indicate CSA event to host.
For this case, host need save csa parameters and process it when MLO
sta partner link is up.
Change-Id: Id1803f32787002e020c6899ec72e428feb765b7f
CRs-Fixed: 3082438
Save quiet status of indicated link to sta contect of MLO mgr. Any link
should check quiet status of MLO connection, then decide whether it
can trigger inactivity to FW or not.
Change-Id: Ic294bbe6452030b6cae495ca0dd3e504416e2c9e
CRs-Fixed: 3117825
Extract information from wmi event wmi_vdev_quiet_offload_eventid and
send it to mlme
Change-Id: I49ef7f2811c5975a95e8e33050977c49e2b104e4
CRs-Fixed: 3101974
Currently, WMI APIs do not support new TWT public structures.
If the TWT componentization feature is enabled, then extend the WMI APIs
with TWT componentization structs.
Change-Id: Ic987960e880376066b81881dc32ec96faf609cc6
CRs-Fixed: 3085377
MLD can be formed only between APs of different pdev.
Add check to avoid creation of MLD between vdevs of same pdev.
Change-Id: I00f53de7016050b120db4b90b2e7662ea81612af
CRs-Fixed: 3104153
MLD can be formed only b/w AP vdevs or STA vdevs.
MLDs cannot contain vdevs of different opmode.
Add change to check for opmode of MLD VDEVs
Change-Id: I21112ba111bcadc48adf582b7ca9e7b936bd8e91
CRs-Fixed: 3104152
WAR for wrong length in first msdu in wbm rx error path while
handling scatter gather buffers. Get the msdu length from the
last buffer instead.
Change-Id: I869391ef5ca7005dce972013679c2143be836ecb