Currently a single API(dfs_get_precac_enable) is used to get
dfs_precac_enable and dfs_agile_precac_enable. This API is
wrongly returning value for dfs_precac_enable since agile
capability is set even for Cascade.
Separate out the GET APIs for getting dfs_precac_enable and
dfs_agile_precac_enable so that getting these flags becomes
independent of each other.
Change-Id: I08b0cbcd29c320a345865e3e9456ce3e809e26a6
CRs-fixed: 2501266
Optimize BSS score to consider OCE WAN and Band score only if
congestion is less than 75% (CONGESTION_THRSHOLD_FOR_BAND_OCE_SCORE)
Change-Id: I114032db59be162cad62dfa4cdcd52983f5eec9b
CRs-Fixed: 2505430
WIN and MCL both uses common targer_if code for vdev manager.
So legacy code and "CMN_VDEV_MGR_TGT_IF_ENABLE" macro is removed.
Change-Id: I2984ae44f3a7cfa01b8f1455353d09deb4db5759
CRs-Fixed: 2503804
In regulatory non-offloads, when a user is trying to set the country code,
if the country code is not present in the driver regulatory database then
restore to WORLD domain.
Change-Id: I7de523f734920baaf5a7c690873a69c346d55a64
CRs-Fixed: 2495799
Current regulatory non-offloads has following issues:
1) In "iw reg get" output "00" can not be shown when trying to
set country code to "00".
2) In BDF file, if only reg domain is specified then
"iw reg get" output should contain alpha2 code of country which
first matches with BDF reg domain.
To fix these issues in reg_get_reginfo_form_regdmn_pair(),
populate reg_info->alpha2 with:
(a) "00" for WORLD domain and
(b) alpha2 code of first country matching with non WORLD domain.
Change-Id: I5cf87587a1a0f648700cffdc7ff60f05f043f723
CRs-Fixed: 2494516
This feature enables a user to change HW mode dynamically
from DBS to DBS_SBS mode and vice-versa. Currently, HW
mode configuration is only possible through INI setting
requiring a subsequent reboot.
Primary target_if changes are:
1. Add structure definition wlan_psoc_host_hal_reg_cap_ext
to parse and store the new extended regulatory capability
info in WMI_MAC_PHY_CAPABILITIES tlv sent in EXT service
ready WMI event
2. Add API target_psoc_get_num_radios_for_mode to retrieve
the number of radios corresponding to a hw-mode
3. Add API target_psoc_get_mac_phy_cap_for_mode to retrieve
the pointer to the mac_phy_cap info of the first radio
corresponding to the input hw-mode.
Change-Id: Ia10f0fd5e50c0ce0cbe99f9281147266aedce4e9
CRs-fixed: 2490212
A new firmware capability advertising support for flow search engine
in HW has been added. Process the new service for flow tagging.
CRs-Fixed: 2475913
Change-Id: Ie69cfd5733b6d6c02792da59dee4f823a72fb431
Support to Enable/Disable multi group key and configure
maximum number of group keys.
Change-Id: Ie6ce2a38d0ad04a47f966fc281f35a8af7125447
CRs-Fixed: 2490599
VLAN group keyix is greater than WLAN_CRYPTO_MAXKEYIDX
Each VLAN will have separate group key in single VAP.
CRs-Fixed: 2490599
Change-Id: I585b2deaa13da337c5df7b55ec8e4672221e4edb
It is easier to just compare return value of reg_freq_to_chan/
reg_chan_to_freq with 0 to check whether the channel is valid.
Change-Id: I4124cc090d31687774d8d71fee4efc822e0a6b38
CRs-Fixed: 2496010
Clean up MGMT_DESC_POOL_MAX and add the corresponding
macro values in umac cmn_services mgmt_txrx ap config file
Change-Id: I083a199e2cacf70738851426167c601ab793c29d
CRs-Fixed: 2496215
As part of supporting different bandwidths for preCAC, the preCAC list
also maintained current channel CAC information independent
of preCAC being enabled.
Once the current channels are CACed, they are marked as CAC done in
the preCAC list irrespective of preCAC being enabled or not. If
radar is found on any of these channels, they are not marked as NOL
in precac list if preCAC is not enabled. Since the channels are still
marked as CAC done, after NOL timeout, switching to this channel does
not start CAC.
Mark the preCAC list as NOL during radar, irrespective of preCAC
being enabled or disabled.
Change-Id: Ica24315c1e06fd603d7039e1233fcbd84bfeb594
CRs-Fixed: 2496747
This change is required by MCL for VDEV conversion. This change
adds target_if all common code.
Change-Id: If43cbbe12c9b4a2bc7fc46ff01f24a2fb6fda09e
CRs-Fixed: 2460791
Currently while processing wakeup stats, the driver doesnot increment
the icmpv4 packet count in case of a ICMP req frame. This causes only
the unicast packet counts to be incremented.
Add a case in function ucfg_mc_cp_stats_inc_wake_lock_stats_by_protocol
to increment the count in the above mentioned case also.
Change-Id: I0ee3e6e91f3bc7a8d9043af1af46739037cb7678
CRs-Fixed: 2439237
Add a runtime PM wake lock for MGMT TX frames and prevent
runtime PM suspend if there are outstanding MGMT TX descriptors
in fw because fw may try to access host ddr when PCIe link is down
which can lead to system NOC errors.
Change-Id: I46b851b7babc8f0fe2c31f27892b0c7a3f255a17
CRs-Fixed: 2495612
FTMRR and WRU frames should be sent from host and these request should
not be forwarded to FW. Add support in wifi pos to process this request
and send response to userspace.
Change-Id: I54049a1a889839e44d418ceebcca09e5092f6063
CRs-Fixed: 2500751
Provide Global function pointers for accessing DFS/REG APIs that
1. Build channel list as per the configured HW Mode.
2. Reinitialize DFS timers after mode switch.
3. Reset ADFS Config.
CRs-Fixed: 2481535
Change-Id: Ied4d13b0c3ce39e696f273a7ac1f51962671c734
Add regulatory API and a dispatcher function to compute current channel
list after dynamic HW Mode Switch. range_5g_low, range_5g_high and wireless
modes are extracted from wlan_psoc_host_mac_phy_caps based on the new
HW mode configured and are used to derive the current channel list.
Change-Id: I799712da8992ede0b5896dd2eb438cffea5fe048
CRs-Fixed: 2481535
Clean up MAX_BCN_PROBE_IN_SCAN_QUEUE and add the corresponding
macro values in umac scan ap config file
Change-Id: I34699372b948bc1e2f515048321018e85259e273
CRs-Fixed: 2497518
Clean up CONFIG_MCL and add MAX_BCN_PROBE_IN_SCAN_QUEUE
in the defaul_defconfig file.
Change-Id: I5c79ed31609ae67545d7ddf4a649925d1d071b9a
CRs-Fixed: 2495605
Provide Global function pointers for accessing DFS APIs that
1) allow or prevent the HW pulses. HW pulses are to be prevented
to detect the synthetic pulses.
2) query whether the HW pulses are allowed or not.
Change-Id: Id1e90ba6682afe747774b46da78f7ae6b56c94e6
CRs-Fixed: 2484584
FW sends vdev stats on vdev down, current host
implementation does not process this event as host is
only processing the stats events for which stats are
requested.
On vdev down FW sends the last available vdev stats and
based on that host updates it's RSSI on disconnect.
With CP stats infrastructure host is not processing
this event and is not updating rssi on disconnect.
To address above issue add a logic to process all the
vdev stats event received by host.
Change-Id: I9a5c32d061562cd3e3741cd9fe4a69f3278e7a98
CRs-Fixed: 2497104
Smart monitor uses HOSTAP type and no subtype currently.
Also vdev_up is not sent for smart monitor vap. Therefore
target will not enable rx_unicast for this vap and in dfs
channel we dont receive pkts. To differentiate between
regular Host ap and smart monitor vap for target to enable
rx_unicast we send new subtype.
Change-Id: I6c82c152d75eefb608cd80279e60ce211e17b709
Crs-fixed: 2491087
For multi-radio SoCs, wmi handle is maintained per pdev to map to
separate copy engine used for sending WMI commands to taget. Add support
to send wifi position related WMI to send it per pdev.
Change-Id: I300be2bbfd77cb9390fef37b5b02a002284976e0
CRs-Fixed: 2495277
Add support to print vdev req/resp string
on target_if timer start conflict and timer
timeout handler
Change-Id: I0116c03089f4ab80623596bb9e8d0268efb0dd87
CRs-Fixed: 2495018
During radar detection, with subchannel marking enabled, when the mode
is HT160, the secondary segment center frequency is determined by
adding +40 offset to the 160 band center frequency.
Consider the case where AP comes in channel 116 HT160. In this case,
the secondary segment center frequency is 5530 which is -40 to the
160 band center frequency (5570).
Primary segment center frequency is 5610 (+40 offset).
Due to this wrong offset addition, the channels added as part of
radar detection are in the wrong segment.
Find proper secondary segment center frequency used for radar
detection.
Change-Id: Icb527fad4fd1317acf8c2b9c010a8ac6a765f985
CRs-Fixed: 2475720
Replace mlme void * data members having different types across
different drivers with specific type.
Change-Id: I4343800e836c8ae0996c19b39a420b314e465a75
CRs-Fixed: 2477457
Replace cp_stats void * data members having different types
across different drivers with specific type
Change-Id: I5497df358e495aaf187097b093622b34ab637f42
CRs-Fixed: 2477447
NS offload is not working for NaN mode because BSS peer is not set.
Hence, set the BSS peer for NaN mode as it is done for SAP/P2P GO.
Change-Id: I4c8fbd502cb1d90dd235ae35d0a85a9981e68773
CRs-Fixed: 2494515
Currently, mgmt_txrx_get_action_frm_subtype does not handle
ACTION_CATEGORY_FST. In case action_category is
ACTION_CATEGORY_FST, mgmt_txrx_get_action_frm_subtype
returns MGMT_FRM_UNSPECIFIED due to default handling. Function
tgt_mgmt_txrx_rx_frame_handler returns QDF_STATUS_E_FAILURE
on receiving MGMT_FRM_UNSPECIFIED frame type and drops mgmt
frames.
Fix is to add support for ACTION_CATEGORY_FST in
mgmt_txrx_get_action_frm_subtype to avoid drop of FST mgmt
frames. Add new management frames
MGMT_ACTION_FST_SETUP_REQ, MGMT_ACTION_FST_SETUP_RSP,
MGMT_ACTION_FST_TEAR_DOWN, MGMT_ACTION_FST_ACK_REQ,
MGMT_ACTION_FST_ACK_RSP, MGMT_ACTION_FST_ON_CHANNEL_TUNNEL.
Add handling for ACTION_CATEGORY_FST in
mgmt_txrx_get_action_frm_subtype, Find fst frame subtype and
return fst frame subtype from mgmt_get_fst_action_subtype
instead of returning MGMT_FRM_UNSPECIFIED in case FST
action_category is received.
Change-Id: I67b7c14f03cab252b13b677a2c9f20a327be24bd
CRs-Fixed: 2495273
Currently peer_adv_stats is present in peer_cp_stats structure
which is shared between WIN and MCL and only common features
should be part of this structure as peer_cp_stats is an
abstraction structure for WIN and MCL for cp stats component.
Since peer_adv_stats is MCL specific structure, this should be
moved to peer_mc_cp_stats which is MCL specific feature for
cp stats component.
Change-Id: Id46cdd153aa6b8137c24fdca30365221d2646d3f
CRs-Fixed: 2480147
Currently ext scan is enabled by default in driver which
is increasing driver size significantly and ext scan
is not getting used anymore.
Disable ext scan with feature flag CONFIG_FEATURE_WLAN_EXTSCAN
to reduce driver size and fix related compilation issue.
Change-Id: Id2344e6ed21caefa459773bb6e891ffb1e70cb92
CRs-Fixed: 2491455
Send proper minimum and maximum agile preCAC timeout values to the target
as part of starting agile DFS detector. Add a common agile preCAC
parameter structure with the timeout values, channel and width fields
which are to be sent as part of configuring agile detector.
Change-Id: If5f5b179aa12a6c549cb9a4402aa10e957129d78
CRs-Fixed: 2482929
For a 2.4 GHz pdev, dfs object is NULL and hence 'dfs is NULL' print is
in tgt_dfs_set_agile_precac_state().
To fix this, add non 5 GHz pdev check before dfs NULL check.
Change-Id: I32cf622d7b769ce841d30de538527639b87f459b
CRs-Fixed: 2490145
With the addition of the pdev restart command to handle multivdev restart,
a placeholder is required at the mlme to hold pdev restart attribute.
Change-Id: I885bf71d0e7977452120714a659e839769ade33e
CRs-Fixed: 2492531
While processing stats event there is an invalid debug
log which is always getting printed and resulting in
confusing loging.
Remove this invalid log from the stats event handling.
Change-Id: I5c60bf73b6b01afce82ebf93e19254f6e302042f
CRs-Fixed: 2493076
Currently vdev response start timer logic is in
target_if layer and stop timer logic is in tgt
layer which is asymmetry.
So, move stop timer logic from tgt layer to
target_if layer for vdev start, stop and delete.
Change-Id: Ia06e2e6d90cf9c4366d654e016e2eeab8c2a0719
CRs-Fixed: 2442199
Replace void * tgt_if_handle of objmgr psoc/pdev with
abstract type handles provided by target interface
Change-Id: I9e0ae991776daa0c25c4ad7b4e4dc022441318a3
CRs-Fixed: 2482708
As a part of regulatory update #29,MKK17 should support channels
until 5730MHz(including channel 144). But, it was missed in
regulatory update #29 and MKK17 supports channels only until
5710MHz(until channel 140).
Add channel 144 to MKK17.
Change-Id: Ic4b4c162f03a033b697764d65f4733b49e00c9c8
CRs-Fixed: 2489544
The host driver serialization module currently supports upto 4
commands in non scan pending queue. This is calculated at the
wlan_serialization_vdev_create_handler() as:
max_pending_cmds = (WLAN_SER_MAX_PENDING_CMDS /
WLAN_SER_MAX_VDEVS)
But in SAP case, if multiple STA sends deauth at the same time,
4 pending commands in non scan pending queue is not sufficient
and will result in only disassoc from the first 4 STA getting
honored.
The current host wlan driver supports 3 SAP mode and
2 STA vdevs amounting to a total of 5 vdevs supported.
So calculate the total non scan pending commands for
serialization based on the total peers supported for each
mode to fix this issue.
In SAP case, maximum 32 peer are supported and for STA case,
maximum 4 pending commands for serialization. So change the
max pending commands calculation as:
max_pending_cmds = (No. of sap modes supported * 32) +
(No .of STA modes supported *4 )
For MCL case the definition of WLAN_SER_MAX_PENDING_CMDS
will be moved to Kbuild.
For WIN case, the existing maximum count will be retained.
Change-Id: Iff1d9430b45e26812b600560b08e85e6040eafef
CRs-Fixed: 2483520
In wifi_pos_parse_req(), payload sections of nl attributes ATTR_DATA and
ATTR_META_DATA are type casted to driver internal structures tAniMsgHdr
and wifi_pos_field_info respectively without validating payload lengths
which can lead to buffer overread if the payload lengths are less than
size of internal structures.
To fix this, avoid type-cast and return error if payload lengths of nl
attributes ATTR_DATA and ATTR_META_DATA are less than size of tAniMsgHdr
and wifi_pos_field_info respectively.
Change-Id: Ie9e3197f2cd3852b394e834991aa8d3a5b530d85
CRs-Fixed: 2471275