If Miracast is on, driver should send WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID
to FW. Currently this wmi is blocked because gEnableMCCAdaptiveScheduler is
set as 1, which is incorrect.
Add a new dynamic_mcc_adaptive_sched flag to allow wmi command
WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID for Miracast case.
Change-Id: I18e713b75a8cafc1b631bf5a1884a9b0123e5dba
CRs-Fixed: 2652271
Currenly only hdd initializes channel avoidance from platform.
Policy manager should also initialize channel avoidance from platform.
Change-Id: Iefcaae5ff4789d7d334ab2cab693f5dedfd2ca46
CRs-Fixed: 2645512
Currently QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST aren't aligned with
NUM_CHANNELS, these unalignment may cause some potential OOB access.
So replace QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST with NUM_CHANNELS
to keep unified.
Change-Id: Ib6c81a3979f2fd29ba1ec678f018a6704b599385
CRs-Fixed: 2644066
Consider SBS mode and 6GHZ, can't force scc only by band.
for example: 1 port on 5G, another on 6G, they may be on same
MAC, may be not. Just compare mac id from connection list
directly.
Change-Id: I5bfc9cd14b058a6a4f402c0e2d2f9ae7da8287fb
CRs-Fixed: 2646499
If there is no STA/P2P CLI on same MAC of SAP/P2P GO,
SAP/P2P Go needn't switch channel to force scc.
Change-Id: I529a57f73f529e41b8c0097fccabbe3e0e516993
CRs-Fixed: 2643106
Use INI "sta_disable_roam" to disable roaming on STA interface if
connection on other interfaces ex. p2p, ndp comes up. Each bit of
the INI "sta_disable_roam" represents an interface.
ex. LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)
As INI "sta_disable_roam" is generic for all the interfaces, cleanup
for INI "p2p_disable_roam" done.
Change-Id: Icd05a97c640ca07978d9960a33de036ed6fe38df
CRs-Fixed: 2637555
The default value of ini gDualMacFeatureDisable is 0 and this
enables DBS scan with simultaneous scan from upper layer to
firmware. P2P scans get priority over sta scans and when
continuoes p2p scans are issues from some userspace application,
STA doesn't get scan time and APs in the environment are not
seen the scan results on STA interface.
To avoid this, change the default value of the gDualMacFeatureDisable
to 6, which disables simultaneous scans from upper layer to the
firmware.
Change-Id: I7ea3ed521270fc50acba30f84749d35ee60fcaa0
CRs-Fixed: 2632562
When dynamic channel switch is enabled, trigger acs and switch to best
channel if wlan interference is found in 5g mac.
Change-Id: I56661f5c42a233a0dc0a6400d75cb8f5c0019706
CRs-Fixed: 2599176
Enhance logs in policy mgr module to remove duplicate
or unwanted prints and keep only useful logs to debug.
Change-Id: Ifd585256955aceec29286d82838be0c588228c32
CRs-Fixed: 2614763
Currently the driver sets the connection update
flag in case of the hw mode cb when the set
hw mode is done, irrespective of the status
code sent by the FW. This leads to the completion
for wait for event and the caller to the current
connection update would get a wrong expectation
that the hw mode requested by it was set, which
would not be the case when the hw mode is not set
according to the user or the set hw mode was
rejected by the target itself.
Fix is to set the connection mode only when the
status is success or already the HW mode is set.
Change-Id: Ic7257b0be5a4bcdaecffb788cf3394b06ddfd5e5
CRs-Fixed: 2604062
According to FW, DFS phyerr offload should be enabled before vdev start,
otherwise FW can't start DFS phyerr offload function.
Do not send DFS phyerr offload disable wmi command before vdev stop, and
FW will handle all the necessary cleanup in vdev stop wmi command.
Without DFS phyerr offload disable wmi command, DFS phyerr offload is
enabled before vdev start.
Change-Id: Id6275e9716afb34316cf46b69dd0b4f82b73ac5d
CRs-Fixed: 2598263
Scenario:-
1. Turn on SAP and STA on 2.4ghz and 5ghz
2. Turn off SAP
3. Turn off STA
4. Turn on SAP on 2.4ghz
Issue:-
In the start ap function, the driver calls
the stop opportunistic timer and calls the handler
to goto SMM mode.
After this, the SAP checks whether it requires the
DBS or not and then requests for DBS also, but since
the driver is already in DBS mode this command gets
rejected, so there would be 2 commands in the serialization
queue which would be SMM and start AP, which would lead to
a crash as SMM is sent before a connection on 2.4ghz as
Hastings is not capable to start a vdev in 2.4ghz without
DBS mode.
Fix:-
1.Not allow SMM if the current connection requires DBS
2. Check the HW capabilty in the active command only and
not before that to protect the reliability of hw mode.
Change-Id: I1c0c05ea05ba14d1556af2612daa3de2ffcba367
CRs-Fixed: 2587508
Firmware sends vdev id allocated for NAN discovery in NAN enable
response. Validate the same and add corresponding entry to
policy manager.
Change-Id: I5e7426c6739620e05480fb90cecdb8ff156fd4cd
CRs-Fixed: 2592021
Add g_prefer_5g_scc_to_dbs to give higher priority for 5g scc than dbs.
It is bitmap per enum policy_mgr_con_mode.
For example in GO+STA(5G) mode, when TPUT is onfigured as wlan system
preference option, If 5G SCC needs higher priority than dbs, set it as
0x8.
This can make GO have higher TPUT given that STA and ref AP mostly have
low speed at this time. This can improve user experience.
Change-Id: Ib8b4bfeef55d97277843df92d3b82aa7f3b9835d
CRs-Fixed: 2587068
When SAP is on 5G and STA connects to 6Ghz AP, the "force
SCC" logic will move SAP to STA home channel if SAP is 6Ghz capable.
If SAP is not 6Ghz capable, SAP will be moved to 2G (DBS) to
avoid MCC(5G+6G) for DBS HW and SAP will stay on 5G for non-DBS HW.
SAP is 6Ghz capable only when all of below statements are true:
a. SAP config includes WPA3 security - SAE,OWE,SuiteB.
b. SAP is configured by ACS range which includes any 6G channel or
configured by 6G Fixed channel.
c. SAP has no legacy clients (client doesn't support 6G band).
legacy client (non 6ghz capable): association request frame has no
6G band global operating Class.
Change-Id: I7e9723fd1b679326a3df61932850589e6e503f3d
CRs-Fixed: 2593569
g_pcl_band_priority - Set 5G/6G Channel order
This ini is used to set preference between 5G and 6G channels
during population of PCL.
0 - Prefer 5G channels, 5G channels will be placed before
the 6G channels in PCL.
1 - Prefer 6G channels, 6G channels will be placed before
the 5G chennels in PCL.
The change will only add 6Ghz channel to PCL for SAP or STA
mode.
Change-Id: I51b3073d6f4fb01af72ccb0a50d10822ac115bca
CRs-Fixed: 2590007
If STA is on LTE-coex channel, start SAP on same band, to force
scc, it need select the LTE-coex channel too, or SAP failed to
start.
CRs-Fixed: 2580240
Change-Id: Ib05524711cb2475c3ca5ec7cf61a2b29c05658b6
For SAP/P2P GO on 5G, when receive cmd to disable 5G band when
modem n79 band used, will move to 2G band via CSA.
1. If no active connection on 2G, select ch by safe list, or
channel 6.
2. If there is STA on 2G, force scc with it.
3. If there is SAP/GO on 2G, force scc with it.
4. Handle one race condition that if candidate is already
selected & FW has gone ahead with roaming or about to go ahead
when set_band comes, it will be complicated for FW to stop the
current roaming. Instead, host will check roam sync to make sure
the new AP is on 2G, or disconnect the AP.
5. If 2 SAP on 5G, move both to 2G and keep scc.
When Set band to enable 5G band again, restored all 5G SAP/Go..
Change-Id: I9b2b1ead3b4502022aeefc08359037457bb051f9
CRs-Fixed: 2580204
With this change,in concurrent mode
(SAP on 5g and peer connected + STA Scan ongoing),
active dwell time 2g is not reset to 0.
Change-Id: I20ace5561137a0dd8def497e3bbbbcbeede80ea5
CRs-Fixed: 2572918
policy_mgr_is_hw_dbs_required_for_band is for any HW where
PHYA/MAC0 doesn't support the given band. We need to switch
to DBS mode to support the band. So far we have
overloaded policy_mgr_is_hw_dbs_2x2_capable to achieve above.
Need a cleaner API to work in a generic way
(for 2x2, 1x1 or any chain mask configuration).
Change-Id: I1cb28bece1242fc749a0a6a56fadca0502850c43
CRs-Fixed: 2565939
The driver does not check the device DBS capability
and the DBS ini compatibility( ch select policy)
If the DBS ini channel_select_logic_conc is disabled
and HW mandates DBS capability then overide the ini
to always keep it enable.
Change-Id: I629fd8661f70b64808a55c4c9bdafa9608787b09
CRs-Fixed: 2551648
The driver does not check the device DBS capability
and the DBS ini compatibility.
If the DBS ini gDualMacFeatureDisable is disabled
and HW mandates DBS capability then overide the ini
to always keep it enable.
Change-Id: I2b31453f9c8a04cef7f943b30d3c28f844c276b5
CRs-Fixed: 2551644
The value 2 is to enable STA+SAP force SCC on DFS channel if STA
is already on DFS channel & also to allow SAP to come up on DFS
channel stand alone & perform CAC (DFS master mode). Set default
value of 2 for g_sta_sap_scc_on_dfs_chan.
Change-Id: Ic1873e1a5b79086aa3e41d3eecea2049b7fc3adf
CRs-Fixed: 2560614
As FW required, send WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID when there
is no beaconing session in DFS channel for FW which supports dfs offload.
Change-Id: Ib3c24758b81d6218d2504729d44cdbfb122933ee
CRs-Fixed: 2544846
In DBS mode 2x2 VHT40 2G and 1x1 VHT 40 5G, the MAC 1 (5G)
doesn't support VHT80. Update the ch_width to max of 40Mhz
in beacon OMN ie when switch to DBS2.
Change-Id: If5cf65bca815d1e8df67a1515b2fb3edcba52a8e
CRs-Fixed: 2520719
At the time of starting / stopping 2nd or 3rd connection,
Host sends WMI_PDEV_SET_HW_CMDID command to FW to change
HW mode to DBS / Single-Mac based on concurrency rule.
FW upon receiving this command turns off TXRX chainmask
which means that radar pulses might get missed for
20ms - 50ms during CAC period. To fix this, Host should
block new connection when existing SAP is performing CAC
on DFS channel.
Change-Id: I51eb117afa763a6ef54211808875419026c9075b
CRs-Fixed: 2533717
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_get_pcl
policy_mgr_update_with_safe_channel_list
policy_mgr_get_valid_chans_from_range
policy_mgr_get_valid_chans
policy_mgr_set_sap_mandatory_channels
policy_mgr_get_pcl_for_existing_conn
policy_mgr_get_mode_specific_conn_info
Change-Id: Ia21829345be2746cd3fc1f2337cfc90abf0c53f4
CRs-fixed: 2550092
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_get_chan_by_session_id
policy_mgr_get_mcc_operating_channel
policy_mgr_check_and_set_hw_mode_for_channel_switch
policy_mgr_is_chan_ok_for_dnbs
policy_mgr_is_safe_channel
policy_mgr_valid_sap_conc_channel_check
policy_mgr_disallow_mcc
policy_mgr_add_sap_mandatory_chan
policy_mgr_remove_sap_mandatory_chan
policy_mgr_is_hwmode_set_for_given_chnl
policy_mgr_is_valid_for_channel_switch
policy_mgr_update_user_config_sap_chan
policy_mgr_is_sap_restart_required_after_sta_disconnect
policy_mgr_is_sta_sap_scc
policy_mgr_nan_sap_scc_on_unsafe_ch_chk
Change-Id: I682f8380d9dc41fc015d73f06b6e055d1d04ef97
CRs-fixed: 2545110
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_allow_concurrency
policy_mgr_nan_sap_pre_enable_conc_check
policy_mgr_allow_concurrency_csa
policy_mgr_current_connections_update
policy_mgr_incr_connection_count_utfw
policy_mgr_update_connection_info_utfw
policy_mgr_get_channel_from_scan_result
policy_mgr_update_and_wait_for_connection_update
policy_mgr_get_sap_mandatory_channel
policy_mgr_checkn_update_hw_mode_single_mac_mode
Change-Id: I162c2b90a58539194907c5ecd6915eafecc635cc
CRs-fixed: 2545099
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_is_chnl_in_diff_band
policy_mgr_check_for_session_conc
policy_mgr_handle_conc_multiport
policy_mgr_change_sap_channel_with_csa
policy_mgr_get_channel
policy_mgr_get_nondfs_preferred_channel
Change-Id: I4a6673db3a02b6e8d7fa94ae452338db618e3883
CRs-fixed: 2545099
Update policy manager to use regulatory module API to get valid
channel list instead of MLME config item.
Change-Id: I2fa24c73892746de68ece00e50fd55d6135b7753
CRs-fixed: 2545120
Update policy manager data structures and APIs to use frequency
instead of channels. This is done to address channel number
ambiguity with introduction of 6GHZ band. Fix all references of
channel and add temporary internal functions for frequency
usage as replacement for public APIs using channels. Also modify
the channel list handling to frequency list in associated modules.
Change-Id: I11dff14a5fbe6d49cf411f8fce6863994ffccd75
CRs-fixed: 2540000
Currently the value of force 1x1 exception is 2
which can lead to STA connection to a OUI AP in 1x1.
In a DBS configuration when AS is disabled, STA came
up in Single Mac mode in 2x2, and when a SAP came up
in DBS, then it sent out a SMPS to AP which lead to AP
crash. But very few APs have this behaviour, so it is
better to have a higher throughput than limit the
connection to 1x1.
Change-Id: I0ebd1ed2b764c3280151ca55117545349e474cbb
CRs-Fixed: 2538438
Currently if there are 3 connections in MCC on same
MAC, FW asserts.
If there are several bssid for same ssid and channel id from wpa
supplicant is 0, driver will sort candidate AP and try one by
one, vdev start channel isn't decided until candidate is
selected, need do concurrency allow check at that time, or lead
to 3 connections on the same MAC.
STA+STA MCC on same MAC has no benefit, total throughput is even
lower than single STA for channel switch frequently on same MAC.
so add check to disallow STA+STA MCC.
Change-Id: Id286096ea156915432807e42983c68cc83a8b42e
CRs-Fixed: 2545411
Update SAP data structures to use channel frequency values instead
of using the channel id values to support 6GHz channels in SAP.
Change-Id: I9ef5857e8dcf3f7d879495d3f3c3ead083fe0bf0
CRs-Fixed: 2513083
If radar event is indicated in station vdev, it may be dropped by
station vdev since station does not support DFS master.
Select first sap vdev started in dfs channel to handle radar event.
Change-Id: I74229eb02c6ae6d81042df6b736d231db26253b5
CRs-Fixed: 2512836
In function csr_check_concurrent_channel_overlap, local
variable intf_ch is defined as uint16_t, but its pointer
is casted to uint32_t * before invoking
policy_mgr_get_sap_mandatory_channel, which will do
32-bit memory write and causes a stack memory over-
writing.
Call Trace:
dump_stack+0x46/0x59
print_address_description+0x66/0x22b
kasan_report+0x21f/0x245
policy_mgr_get_sap_mandatory_channel+0x1fd/0x258 [wlan]
csr_check_concurrent_channel_overlap+0xf84/0x10d2 [wlan]
sme_check_concurrent_channel_overlap+0xaa/0xf0 [wlan]
wlansap_check_cc_intf+0x102/0x124 [wlan]
wlan_hdd_get_channel_for_sap_restart+0x506/0x8f8 [wlan]
policy_mgr_check_sta_ap_concurrent_ch_intf+0x35e/0x425[wlan]
process_one_work+0x2cc/0x53b
worker_thread+0x357/0x490
Change the type of the 2nd parameter to uint16_t within
function policy_mgr_get_sap_mandatory_channel, so only
16-bit memory writing will take place.
Change-Id: If514a394e65d005a1fe025c0e753bf7440dd5dde
CRs-Fixed: 2508798
1. Add g_enable_go_force_scc INI configuration
to enable force SCC on P2P GO interface.
This option only takes effect when
gWlanMccToSccSwitchMode INI enabled.
2. Add API policy_mgr_is_go_allow_force_scc to get
the above configuration value for GO.
Driver will apply "MCC to SCC" logic to P2P GO
interface based on STA active status and the configurated
INI values.
Change-Id: I1d16368b5f2d88984b91ef0a3e882148c20dcd23
CRs-Fixed: 2509555
In AP+STA case, if g_sta_sap_scc_on_lte_coex_chan != 0,
SAP is allowed SCC with STA on unsafe channel. And
if g_sta_sap_scc_on_dfs_chan != 0, SAP is allowed
SCC with STA on DFS channel.
But when the STA disconnected, standalone SAP is not allowed
on unsafe channel or DFS channel. We need to move
the SAP to safe channel or non DFS channel.
The original API -
policy_mgr_is_sap_restart_required_after_sta_disconnect
only handle AP+STA case. Change it to cover 3VIF
concurrency case - AP+AP+STA.
Change-Id: Iec4e750d8b3fda0cc52ac698ecaa9a274f935706
CRs-Fixed: 2509545
SAP1 chan6, SAP2 chan6, LTE channel avoidance event marks
chan6 unsafe, driver will do channel switch for SAP1 and SAP2 to
safe chan 1.
In the middle of channel switch of SAP1, policy_mgr_allow_concurrency
disallows the channel switch request because new SAP1 channel 1
will cause MCC with existing SAP2 (channel 6) and firmware
doesn't support MCC for dual-beacon entities on same band.
This change removes all the SAP entry on the old channel
before do concurrency check for SAP channel change request.
Change-Id: Ic2c828a3fec4cbe2f11d4bedf471211bee442e9e
CRs-Fixed: 2491265
Currently the driver checks whether the device
supports antenna sharing, and if the AP is added
in the OUI framework, then the driver modifies the
nss value to 1 to avoid sending SMPS to the peer AP.
Now suppose the device does not support Antenna sharing,
but supports DBS and is helium HW, then going to DBS HW
mode would result in peer sending a SMPS frame to the peer
as the helium HW only has two antennas, and one is needed
by each MAC now.
Fix is to add a third param in force 1x1 ini which would
decide the driver should consider the antenna sharing as
mandatory or not.
Change-Id: I3ae00fcbd642c7780952d66ccbf1208335fcb077
CRs-Fixed: 2496831
Enable following special 4 ports concurrency for HST:
(SAP+STA) (2.4G MAC SCC)+(SAP+STA) (5G MAC SCC).
1. Update pcl table for fourth connection
2. Increase max connection number to 4
3. Add concurrency allow check for 4 ports
Change-Id: Ib87bcfd845208f0ed8821c7e18b2f30833db22b7
CRs-Fixed: 2457713
On single MAC devices, when a SAP or P2P-GO is already operating
on a DFS channel, MCC mode is not allowed. It is currently
possible, even with a SAP on DFS channel, to connect to a 2.4G
AP using the command: iw interface connect SSID [AP freq]
Add additional checks in policy manager to prevent this
MCC situation.
Change-Id: I9adf063fbc1cb4c2d3f22f6b4d1bb00beb079007
CRs-Fixed: 2485436
Currently, there is no logging for channel switch reason.
Add csa_reason to know the reason for the channel switch.
Change-Id: Iec02d7fa2b1ec51acb97005da220db7de705d7e0
CRs-Fixed: 2483206
The SAP channel change can be called in scheduler thread and thus
waiting for hw mode change in scheduler thread will always lead to
timeout and thus channel switch failure.
Fix is to avoid wait and continue channel switch after hw mode
change is completed.
Change-Id: I951fab6c95ff2a84d6a619859295b830685fac4e
CRs-Fixed: 2484147
Add new g_sta_sap_scc_on_dfs_chan value 2 with below
enhancement:
a. Allow single SAP (GO) start on DFS channel.
b. Allow CAC process on DFS channel in single SAP (GO) mode
c. Allow DFS radar event process in single SAP (GO) mode
d. Disallow CAC and radar event process in SAP (GO) + STA mode.
Change-Id: I47fdccda3314681806fa999cb01ee62052434e50
CRs-Fixed: 2465644
The old change I7e5a21601642e0d6afef73beeecf80a3e0475909
is missing when new scan mgr introduced, re-design the
change.
If DFS AP present, station scan 5g chanlist should be
avoided if target doesn't support Agile DFS Scan in Single
MAC mode. And also if current hw mode is DBS, the 5g chan
scan is not allowed as well.
1) if agile & DFS scans are supported
2) if hardware is DBS capable
3) if current hw mode is non-dbs
If all above 3 conditions are true then don't skip any
channel from scan list.
Change-Id: I3773c1c63ea3f33db6f6ee2c31cb5d09d3c2ae71
CRs-Fixed: 2471542