Commit graph android_kernel_motorola_sm6375/components
Author SHA1 Message Date
gaurank kathpalia
6f939ff044 qcacld-3.0: Move HE caps to vdev mlme priv
Move HE caps to vdev mlme priv and remove it from csr session.

Change-Id: I3f68aa66cfd1828dea4e46aff1dd758fbfde4a48
CRs-Fixed: 2809092
2021-02-01 18:40:05 -08:00
Liangwei Dong
9380857123 qcacld-3.0: Fix SAP 160Mhz radar event miss issue
When SAP operated in channel 36 with 160Mhz, the primary channel
36 is non-dfs and existing checking dfs will drop the radar event
if the radar detected on channel 52. Change policy mgr API to
check the dfs flags instead of primary channel state.

Change-Id: Ie2f242182b8df30e5d1875e278c5ebffa2e7cafd
CRs-Fixed: 2865173
2021-02-01 16:20:03 -08:00
Min Liu
23a4c839ad qcacld-3.0: Fix iwpriv command getMaxAssoc
Fix the issue that iwpriv command getMaxAssoc act as setMaxAssoc.

Change-Id: I8fddc0ff724147cb55d53b0ce5a918745b3101d3
CRs-Fixed: 2844640
2021-02-01 05:49:41 -08:00
Abdul Muqtadeer Ahmed
261a0b6895 qcacld-3.0: Add a new ini param to enable PCI gen switch
Add a new ini param to enable/disable PCI gen switch

Change-Id: Ie8c61dbfb9834aac96a95eb935521e1bc4b3b835
CRs-Fixed: 2865861
2021-01-31 12:02:34 -08:00
Alan Chen
f7877eaa80 qcacld-3.0: Split SAP and GO modes ini
Rename existing INI to enable_bus_suspend_in_sap_mode and define a
new enable_bus_suspend_in_go_mode. Also define new APIs
wma_is_vdev_in_sap_mode and wma_is_vdev_in_go_mode.

Change-Id: If38c4db7b3d1f7323df45d9a7d80a02a44e7ca41
CRs-Fixed: 2864596
2021-01-29 19:11:33 -08:00
Surabhi Vishnoi
7028b1194c qcacld-3.0: Add support for RX offload pkts in packet capture mode
Add support to process RX offload packets in lithium for
packet capture mode.

Change-Id: Ic307d83f579bf53a025b4b4c159e24de97e2dde6
CRs-Fixed: 2856783
2021-01-27 21:25:06 -08:00
Srinivas Dasari
5639d14557 qcacld-3.0: Allow/reject WAPI concurrency based on firmware support
Currently, host driver rejects any concurrent session with other
security modes(e.g. NAN) when WAPI is present. This is due to a
limitation on older platforms. But newer platforms(e.g. Lithium
architecture) support WAPI+other security modes concurrently.
Firmware advertises service capability WAPI_CONCURRENCY_SUPPORTED if it
supports other security modes when WAPI is active. Get the capability
and accept/reject concurrent sessions.

Change-Id: I0e004e1220afd9c42869589364606c9f729798f7
CRs-Fixed: 2844799
2021-01-26 23:22:43 -08:00
Will Huang
d2ed1c50cb qcacld-3.0: Fix get sap connected sta info fcs counter always 0
Stats event from target might have several sub events, and some event
has no peer stats but have adv/ext2 peer stats.

Check ext/ext2 peer stats even no peer stats in
target_if_cp_stats_extract_peer_stats(). Fix copy adv stats size error
in tgt_mc_cp_stats_prepare_n_send_raw_station_stats(). Although
get_station_stats_cb and get_peer_stats_cb is union callbacks,
better to assign to get_station_stats_cb because it is for
TYPE_STATION_STATS.

Change-Id: I0bead0cbb8b549cc538ef4a7327f0a8303c90bd1
CRs-Fixed: 2801842
2021-01-26 03:29:06 -08:00
Alan Chen
5ce95ada33 qcacld-3.0: Add PMO config for PCIe bus suspend in beaconing mode
By default, PCIe bus suspend is not allowed in beaconing modes
(SAP/P2PGO/NDP) with one or more clients connected. Some OEMs need
PCIe bus suspend in this mode. Hence, add a config item to serve
both types of requests.

Change-Id: Ia2d990f17f605036d43db75ecd4df57701b4ba1f
CRs-Fixed: 2860495
2021-01-25 17:19:39 -08:00
Jianmin Zhu
a712eb799b qcacld-3.0: Fix assert for sta ipa interface leaked
Once 1 roaming happened, ipa_ctx->sta_connected increased 1, and its
type was uint8_t, once increased to 256, overflow happened.
ipa_ctx->sta_connected became 0. then wlan_ipa_cleanup_iface couldn’t be
called to free old iface, but wlan_ipa_setup_iface was called to add new
iface, then there were 2 sta ipa interfaces with same session id 2.

When sta disconnected, only 1 ipa interface was freed, the other ipa
interface with session id 2 was left, but vdev 2 was deleted.

If 1st client connected DUT SAP, sta vdev 2 was found by mistake,
WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID was sent to F/W to enable IPA path
for vdev 2, but vdev 2 wasn't existed, assert happened.

To fix it, when LFR3 roaming happens, when wlan_ipa_cleanup_iface is
called to free old iface, ipa_ctx->sta_connected is decreased by 1
first, when wlan_ipa_setup_iface is called to add new iface,
ipa_ctx->sta_connected is increased by 1, then
ipa_ctx->sta_connected reflects real STA number on DUT.

Change-Id: I5c91b3402dcfe8b1828d8d1f0701f66ca3c15d50
CRs-Fixed: 2859438
2021-01-25 12:06:17 -08:00
Balaji Pothunoori
1953532251 qcacld-3.0: update max tx aggr size for lithium family
Currently user configured tx aggr size "0-64" is not honored in
firmware, By default firmware expects as 256 and its hardcoded.

In order to make user controllable, host has to send default max
tx aggr size as 256 for lithium and 64 for other targets.

Change-Id: I7a69f09d048f79da4c770e71b4d1c8726fa02faa
CRs-Fixed: 2846803
2021-01-25 07:23:21 -08:00
sheenam monga
b443ce806b qcacld-3.0: Use function qdf_snprint for time stamp conversion
Currently for converting timestamp to string qdf_snprintf
function is used which may not print timestamp correctly.

Use qdf_snprint instead of qdf_snprintf to print correct
timestamp provided by fw.

Change-Id: I803f678dc38afc03131e589a820d129dc38380ce
CRs-Fixed: 2835199
2021-01-22 03:14:44 -08:00
Jianmin Zhu
2dc49d229d qcacld-3.0: No Tx until WoW wake up event received
With Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7,
Tx register write is permitted after hif bus resume during runtime pm
resume, don't wait WMI_WOW_WAKEUP_HOST_EVENTID.
In F/W, there is an race condition when exit from WOW, both
WAL_TX_TID_TQM and WAL_TX_TID_TRANSITION_TO_TQM_ONGOING are not set yet,
data frame is received from host, assert will hapen.

To fix it, host tx register write shouldn't be permitted to update hp
until receive the WMI_WOW_WAKEUP_HOST_EVENTID.

Change-Id: Ic397652a9a0c4bc81667aed11805b2ce8070ee8d
CRs-Fixed: 2858115
2021-01-20 20:08:13 -08:00
sheenam monga
c04d112be0 qcacld-3.0: Enable periodic time sync between host and fw
Enable periodic time sync between host and fw by setting
gRemoveTimeStampSyncCmd to 0.

Change-Id: I52168ad6d065262c433c801716eec0d7782bf6e8
CRs-Fixed: 2845017
2021-01-20 07:44:05 -08:00
sheenam monga
d6d37c5bf8 qcacld-3.0: Print correct concurrency support
Currently host checks mac number to indicate
MCC or DBS which may not be correct. Host
may print DBS in case of MCC.

Check DBS support and print concurrency
based on hw mode if hw mode is dbs capable
then print DBS else MCC.

Change-Id: I1578e6a7a6b73b5b6c409653b4dc276954f51c3d
CRs-Fixed: 2845634
2021-01-20 07:44:01 -08:00
Abhishek Ambure
b7c5961308 qcacld-3.0: Don't block NAN+NDI+STA concurrency for non-dbs
When a new connection is about to come up, host checks if current
concurrency combination including the new connection is allowed or
not based on the HW capability.
Firmware manages NAN + NDI by dividing up slots. Connection on NDI
is re-negotiable and therefore a 3rd connection with the same MAC
is possible.

Change-Id: I63e39c5cd4945cd308e475c1e03f676336c4e7c1
CRs-Fixed: 2841457
2021-01-18 06:54:07 -08:00
Pragaspathi Thilagaraj
b9570e9fcb qcacld-3.0: Advertise TWT capability if "enable_twt" ini is true
Currently in SAP and STA mode the driver advertises TWT
capabilities in the HE capabilities IE based on the below ini
values irrespective of the master ini "enable_twt" to enable
the twt feature:
"he_twt_requestor","he_twt_responder", "he_bcast_twt",
"he_flex_twt_sched".
So even with the ini is disabled, twt capabilities are advertised

Advertise TWT capability only if "enable_twt" ini is true.

Change-Id: Iae3a98ee339f3859391e0deb64ddd354634b0cbf
CRs-Fixed: 2844516
2021-01-14 21:27:33 -08:00
Jianmin Zhu
d75c4ea61c qcacld-3.0: Fix long ping delay after enable RTPM
Issue1: Driver RTPM state is ON/NONE, Kernel state is RESUMING.
cdp_runtime_resume is already complete,
hif_pm_runtime_get return -E_INPROGRESS,
dp_tx_hw_enqueue will set the flush event,
but cdp_runtime_resume is already done,
this flush event will be handled only on next pkt tx.

Issue2: Driver RTPM state: Resuming
hif_pm_runtime_get returns -EBUSY,
dp_tx_hw_enqueue is interrupted by any IRQ,
cdp_runtime_resume is completed,
dp_tx_hw_enqueue will set the flush event,
This flush event will be handled only on next pkt tx.

Fix:
Introduce a link_state_up atomic variable in hif to track the link state
change by pld_cb.
Set atomic variable link_state_up=1 in pmo_core_psoc_bus_runtime_resume
just after pld_cb. pld_cb brings the PCIe bus out of suspend state.
Set atomic variable link_state_up=0 in pmo_core_psoc_bus_runtime_suspend
just before pld_cb. pld_cb puts the PCIe bus into suspend state.

Introduce dp_runtime_get and dp_runtime_put.
dp_runtime_get get refcount with increment of an atomic variable.
dp_runtime_put return refcount with decrement of  this atomic variable.
If hif_pm_runtime_get returns -EBUSY or -EINPROGRESS,
take the dp runtime refcount using dp_runtime_get,
check if the link state is up, write TX ring HP,
return the dp runtime refcount using dp_runtime_put.

cdp_runtime_suspend should reject the suspend, if dp_runtime_get is non
zero.
cdp_runtime_resume should wait until dp_runtime_get becomes zero or time
out, then flush pending tx for runtime suspend.

Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7
CRs-Fixed: 2849002
2021-01-14 21:27:29 -08:00
Liangwei Dong
178189c4fc qcacld-3.0: Change INI sae_connect_retries defalut 0x52
Change "sae_connect_retries" to 0x52 to increase SAE retries:
1 roam auth retry, 2 auth retry and 2 full connection retry.

Change-Id: I5b11dd07abfccfca9529ba9350e326dbf4c23a7a
CRs-Fixed: 2846440
2021-01-14 14:03:46 +08:00
Vulupala Shashank Reddy
a52682f649 qcacld-3.0: Process offload Tx data packet for pkt capture mode
Subscribe for offload Tx data wdi event and process offload Tx
data packets and post into mon thread for packet capture mode

Change-Id: Ic61043b8461eed4be5e8dc8d41baca2574224a90
CRs-Fixed: 2845598
2021-01-13 02:34:45 -08:00
Bapiraju Alla
92849931e4 qcacld-3.0: Add an INI param to configure HW assist feature in FW
HW assist is a FW feature and it is enabled by default. But there is
no provision to disable/enable this feature based on requirement.

To address this, add INI param to enable/disable HW assist feature
in FW.

Change-Id: Icdc4a842be4d5c6991a785ee270f61ba87fcfe79
CRs-Fixed: 2841346
2021-01-12 20:19:11 -08:00
Liangwei Dong
796c684186 qcacld-3.0: clear pmkid cache when ap off
In AP side power off/on case, AP security has been cleanup.
The STA side might still cache PMK ID in driver and it will always
use PMK cache to connect to AP and get continuously connect failure
in SAE security. This function is to detect AP off based on FW
reported BMISS event. Meanwhile judge FW reported last RSSI > roaming
Low rssi and not less than 20db of host cached RSSI to avoid
some false alarm such as normal DUT roll in/out roaming.

Change-Id: I5d8ec9e9d4f8a44178b113d370799fe2bc0373fb
CRs-Fixed: 2841481
2021-01-11 23:44:31 -08:00
Pragaspapthi Thilagaraj
4575f41b70 qcacld-3.0: Reduce excessive kmsg logging in roaming path
Reduce excessive logging for roaming path to reduce latency.
Also remove function and line prints in roam debug related
logging.

Change-Id: Ida6fc55886c944126720f8bdd4b944765426ccc6
CRs-Fixed: 2847773
2021-01-11 09:29:08 -08:00
Vulupala Shashank Reddy
e67bd248ea qcacld-3.0: Process Rx data packet for pkt capture mode
Subscribe for Tx data wdi event and process Rx data packets
and post into mon thread for packet capture mode

Change-Id: I1a2930110bebc152db32cb2c1f1bc1120fc29755
CRs-Fixed: 2845597
2021-01-11 00:47:54 -08:00
Vulupala Shashank Reddy
dbc0189477 qcacld-3.0: Process Tx data packet for pkt capture mode
Subscribe for Tx data wdi event and process Tx data packets
and post into mon thread for packet capture mode

Change-Id: Id4c231ce8f32c45f579289b37cb810581c6ab31b
CRs-Fixed: 2845593
2021-01-11 00:47:50 -08:00
Liangwei Dong
2d9b7778d6 qcacld-3.0: acquire lock before update connection list
Acquire connection list lock in policy mgr before update the
entry. The "conn_index" maybe changed for a connection entry
if other connection is up or down.
Fix by acquire connection to protect the whole "update" operation.

Change-Id: I91e82e74884ef32e83e0c4105e88bafe8d99db3d
CRs-Fixed: 2848209
2021-01-11 10:09:42 +08:00
Vevek Venkatesan
90a51a157e qcacld-3.0: sync rtpm suspend resume only for CE wake irq type
In moselle, the runtime suspend and wow resume sync logic has
been added without any condition, since hastings is doing APPS
side PCI bus suspend which cannot be reverted on suspend failure,
so doing this sync logic only if wake irq type is CE interrupt.

Change-Id: I07dc5a99d0661fe1ef81e7a46e7053244edf8eb6
CRs-Fixed: 2851261
2021-01-10 00:30:50 +05:30
Arun Kumar Khandavalli
add66eaa8c qcacld-3.0: Release the vdev reference in pmo
In pmo_core_configure_dynamic_wake_events vdev reference is acquired
and its not released leading to the reference leak, leading to
vdev destroy timeout.

Release the vdev reference to resolve the issue.

Change-Id: Idd3bcb366f211e037ede278c91d6bcefd4165651
CRs-Fixed: 2850076
2021-01-07 22:41:39 -08:00
Vevek Venkatesan
4a40f3bd18 qcacld-3.0: add sync between suspend and wow resume in runtime pm
In moselle, once wow enabled there is a possibility that wow wake
interrupt can be fired from FW during runtime suspend in progress
in host, this will introduce a race between runtime suspend and
resume, so adding a synchronization between runtime suspend and
wow triggered runtime resume.

Change-Id: I19a4d70f47d5c202d0ba291c3edc8a260690f434
CRs-Fixed: 2845670
2021-01-05 05:37:56 -08:00
sheenam monga
192bf9d78d qcacld-3.0: Use CFG_BTM_ENABLE to forward BTM request frame
Enable 10th bit of CFG_BTM_ENABLE ini to forward BTM request
frame to upper layers when frame contains MBO assoc retry
attribute. when supplicant receives this MBO frame it will
use the frame info for blacklisting the AP so for the next
connection framework will avoid this AP.

Change-Id: I9a675cc01769c38ad5be26ea5fd28ada8dc03546
CRs-Fixed: 2843323
2021-01-04 01:13:26 -08:00
Abdul Muqtadeer Ahmed
2448e874b3 qcacld-3.0: Use objmgr api to get the vdev for pmo
Currently pmo_psoc_get_vdev api just returns the vdev without
taking the vdev reference and it is caller's responsibility to
take the reference, there could be a race condition where after
getting the vdev and before getting the reference of that vdev,
some other thread may delete this vdev.

To avoid this issue use objmgr api to get the vdev for pmo.

Change-Id: I3495589e2dbbb7d8efc579a62fff1a08a92c318f
CRs-Fixed: 2771211
2021-01-03 01:02:31 -08:00
sheenam monga
1048d0a079 qcacld-3.0: Update documenation of CFG_BTM_ENABLE
FW considers 9th bit of CFG_BTM_ENABLE for btm query
with candidate list which is not mentioned in ini
documentation.

Change-Id: I4fefdaa464e14c350d885107a28051fa0ad309f0
CRs-Fixed: 2839587
2020-12-28 03:44:51 -08:00
Abhishek Ambure
c0954d33d7 qcacld-3.0: Allow switch to RSO STOP State while roam in progress
Problem scenario:
1) Host gets roam event from FW and RSO state is switched to
   ROAM_IN_PROGRESS.
2) Host gets reassoc response followed by FW down indication.
3) Host processes reassoc response in HDD and sends disassoc to
   FW as FW down indication received.
4) As a part of disassoc host tries to switch RSO state to STOP.
   But as present RSO state is ROAM_IN_PROGRESS and FW is down,
   host fails to send RSO stop command to FW and doesn't switch
   RSO state to STOP.
5) Lim disassoc send fails due to FW is down and host proceeds
   with lim_send_disassoc_cnf and lim_cleanup_rx_path.
6) In lim_cleanup_rx_path() host checks for present RSO state is
   ROAM_IN_PROGRESS and returns without calling lim_del_sta();
7) Thus peer delete and vdev delete is not send to FW and host
   vdev State machine stuck at SP-SUSPEND_DOWN which leads to
   peer and vdev reference leaks.

Fix:
Allow switch to RSO stop state while present RSO state is
ROAM_IN_PROGRESS.

Change-Id: I4a838ecd98a7ca377cd557d7a01a93ac53449595
CRs-Fixed: 2844647
2020-12-27 05:44:06 -08:00
Sachin Ahuja
b7b8edaee7 qcacld-3.0: Return failure for runtime resume if FW is down
Currently when the FW is down, runtime resume return success
status but does not send the power exit and WOW wake up from
sleep command to FW. So WMI_WOW_SET_ACTION_WAKE_UP_CMDID
command is sent to FW which leads to panic.

To avoid this issue, send the correct error status for runtime
resume if FW is down.

CRs-Fixed: 2830614
Change-Id: Id27d2648427b32d32c15370fbb170fafec9450d2
2020-12-27 03:33:14 -08:00
Tushnim Bhattacharyya
4c5948f09c qcacld-3.0: Release resource after TDLS cmd processing
It doesn't free resources in failed cases like getting vdev or tdls
vdev object when handling tdls commands. This causes reference
count of psoc leak or memory leak. Following are the functions,

tdls_set_responder
tdls_notify_sta_connect
tdls_notify_sta_disconnect
tdls_set_operation_mode
tdls_reset_all_peers

Change-Id: I8b5d5fa8a137a1b07f0fa6e4667047db95d7b99e
CRs-Fixed: 2839099
2020-12-22 15:03:33 -08:00
Saket Jha
d912e80971 qcacld-3.0: Request fw stats for monitor mode
Periodically request pdev stats from FW to receive channel noise floor
information after monitor vdev has been brought up, based on the band
currently being sniffed. Use the band information as a secondary parameter
when sending periodic request to fw so a single noise floor value is sent
to host. Pass this noise floor information to dp_pdev to be populated in
radiotap header.

Change-Id: I488e4985392cb646ffdee914359fa995dbeb025e
CRs-Fixed: 2833458
2020-12-21 00:17:38 -08:00
Bapiraju Alla
c399ef60b6 qcacld-3.0: Request stats over qmi only when target suspend is success
Currently, Stats request commands are sent over qmi right from the
target suspend request is sent to FW. This is leading to a crash in
FW since it is trying to access PCI when it is in suspend state.

To address this, send stats request over QMI only after the ack is
received for the target suspend command.

Change-Id: I1b2b6a60c5d8c7ec4375d328e58a66d749794e3f
CRs-Fixed: 2835903
2020-12-17 21:27:49 -08:00
Subrat Dash
2532e56d69 qcacld-3.0: Add support to enable TWT roles
There are cases where only a few TWT roles may be required
to be enabled. For example TWT Requestor role alone or
TWT Respondor role alone. Also, it could be unicast TWT only
and disable broadcast TWT.

Support broadcast TWT  configuration in requestor and responder
role by adding new INI.
Extend the use of existing requestor and responder INIs to further
enable requestor and responder roles itself.

Change-Id: I3dfa196edfda9cafd01fa56c0bb6ce73e27b4144
CRs-Fixed: 2828718
2020-12-16 00:28:29 -08:00
Ajit Vaishya
d5e1d1c12f qcacld-3.0: Advertise Adaptive 11R supported feature to user space
Currently when Adaptive 11R feature is disable via ini
then user space parse Vendor Specific IE and trigger
connection in FT-PSK/EAP based on STA configured key
mgmt, but due to feature disabled via ini it failed
to connect AP and trigger Assoc reject to user space.
To overcome this advertise Adaptive 11R supported feature
bit to user space and based on this feature bit user space
parse, trigger connection in FT-PSK/EAP other wise fallback to
PSK/EAP.

Change-Id: I5d67a0cb77c3f39328467a6313a7a795e6a7a4d8
CRs-Fixed: 2785878
2020-12-16 00:28:25 -08:00
Srinivas Dasari
1986787cac qcacld-3.0: Handle NAN+STA reconnect concurrency
Currently, STA reconnect (e.g. reconnect to same BSSID) is handled
as STA+STA as part of NAN concurrency checks. This results in NAN
disable when reconnect is issued.
Check if the current incoming connection is on same vdev as
previous sta connection instance and disable NAN only if it's
different.
Handle NAN+SAP reenable in similar way.
Also, remove the redundant usage of NDI cleanup API
ucfg_nan_check_and_disable_unsupported_ndi in
if_mgr_connect_start.

Change-Id: Ia063a69bb2efdf1d51c6988b8905ceac0f454dab
CRs-Fixed: 2821352
2020-12-15 11:06:28 -08:00
Wu Gao
fafb60d08c qcacld-3.0: Release WLAN_TDLS_SB_ID when teardown TDLS connection
It doesn't handle failed case about getting vdev or tdls vdev object
when teardown tdls connection. Which causes reference count of psoc
leak.

Change-Id: Ie4e7966c0a07f378483cd5e6344599645c75ac68
CRs-Fixed: 2836949
2020-12-14 22:21:02 -08:00
Jianmin Zhu
9123e51697 qcacld-3.0: Clear whole operations bitmap when RSO deinit
To avoid roaming enable failed for operations bitmap set/clear mismatch for
SAP+STA or STA+STA concurrency, clear whole operations bitmap when RSO
deinit, then roaming can be enabled again after STA disconnect and
reconnect.

Add log when set/get operations bitmap to help debug.

Change-Id: Ie1f1a213dcdefb393ec3e1e2c6a8a71ab17b226c
CRs-Fixed: 2834199
2020-12-11 17:06:47 -08:00
sheenam monga
34b42ada97 qcacld-3.0: CSA count offload to fw in case of AP/P2PGO
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 in case fw has
not sent beacons but host decremented switch count due to
timeout and sent new channel switch frame or vdev restart in
case count beacomes 0.

Fix is to offload CSA to fw to avoid any sync issue.

Change-Id: Idb48d419ec4117ff39cb823ca8af75d7a0abc3c0
CRs-Fixed: 2828045
2020-12-11 02:29:21 -08:00
Deeksha Gupta
6d9d9c56b2 qcacld-3.0: Don't allow SAP to switch to DFS channel if master mode is disable
Previously, if force SCC is enabled and Standalone SAP starts
on non-DFS channel, it starts with master mode Disable. If it
is switched to DFS channel it will switch without CAC.

As a fix, if SAP is started on non-DFS channel with force SCC,
don't allow it to switch to DFS channel if master mode is disabled.

Change-Id: I1822f67a5480d6c16fa980c9c6b262341af7c2de
CRs-Fixed: 2827237
2020-12-10 02:44:13 -08:00
Gururaj Pandurangi
a266ccd8f0 qcacld-3.0: Modify connect start code in if mgr
Modify connect start code in interface manager by
moving disable roam and tdls link teardown notify
APIs from HDD to if mgr. Alongside, move tdls link
teardown notify API from HDD to if mgr in start bss API.
Also, move the tdls link teardown API to TDLS module from
HDD module as TDLS should manage the wait logic.

Change-Id: I09fa31878563a3daaa7c5fde46327475829317b3
CRs-Fixed: 2811807
2020-12-09 06:31:52 -08:00
gaurank kathpalia
c181958548 qcacld-3.0: Overide blacklist and connect to AP
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 overided 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: Id47fd214130411179d9a53005841786d6d14ce81
CRs-Fixed: 2831535
2020-12-07 20:38:32 -08:00
Liangwei Dong
b83227ed06 qcacld-3.0: Fix SAP moved to unsafe channel
At present when user trigger SAP move to unsafe channel,
driver doesn't reject the request since "strict = false"
and unsafe checking is skipped.
Fix by check SAP channel switch target channel safe or
unsafe with API policy_mgr_is_sap_freq_allowed before
perform channel switch.

Change-Id: I2950fb31346df8705c8fc608fd79e1a44f4d4947
CRs-Fixed: 2826619
2020-12-03 10:22:50 +08:00
Yu Wang
5380cd5b82 qcacld-3.0: add api to check if the channel is allowed for sap
Check the factors as below to decide whether the channel is
allowed or not:
 * If the channel is in LTE coex channel avoidance list;
 * If it's STA+SAP SCC;
 * If STA+SAP SCC on LTE coex channel is allowed.

Replace policy_mgr_is_safe_channel() with this new function
for sap channel selection and acs channel filtering, to allow
unsafe channels when it's STA+SAP SCC and STA+SAP SCC on LTE
coex channel is allowed.

CRs-Fixed: 2743042
Change-Id: Ic5a84b2628200fe9decf6972f00706f190f04722
2020-12-03 10:21:38 +08:00
Utkarsh Bhatnagar
6409f3f0f2 qcacld-3.0: Stop SAP if STA is on 6ghz
Stop/Reject SAP connection if STA is/comes up
on a 6ghz freq and SAP is not capable of 6ghz
freq to avoid MCC situation in a non-DBS capable
HW.

Fix is to stop/reject the SAP startup in above
mentioned case.

Change-Id: I451c95929f378cd0790bd5fc647235fc2dd0071a
CRs-Fixed: 2818030
2020-12-02 07:03:21 -08:00
Pragaspathi Thilagaraj
ade8d25a37 qcacld-3.0: Add support for peer create confirmation event
Firmware sends peer create confirmation to detect duplicate peer
on other vdev. If the status field in the
wmi_peer_create_conf_event_fixed_param is 0, peer creation is
successful.
Add support to handle the peer create confirmation command for
sta mode. For roaming scenario, the peer will be internally
created by the firmware, so bail out after creating object
manager peer/datapath peer without sending the peer create
command similar as the current implementation.
For SAP/P2P Go mode the legacy peer create path will be used.

Proceed to do post linkstate change if status is success, else
do vdev stop and indicate failure to upper layers

Change-Id: I0abbd70dd509f2b9afa8d4d7db1774e289d1e021
CRs-Fixed: 2747870
2020-12-01 17:42:31 -08:00