Replace timer_stop with timer_stop_sync & add some debug print to
track the roc cookie.
Change-Id: I9a71d30b31da3de2bf3242e4a310bad4542b10aa
CRs-Fixed: 2537164
CFG_VENDOR_ROAM_SCORE_ALGORITHM is added to specify the
preferred roam score algorithm.
With value 1, the new V2 roam score algorithm will be used.
With this roam score Algorithm, AP score will be calculated
based on below equation:
AP Score = (RSSIfactor * rssiweight(0.65)) +
(CUfactor * cuweight(0.35))
This algorithm value will be sent to firmware over the
WMI_AP_PROFILE command.
Change-Id: I5e7857108a9623fdf3e698cb842dbc22c21f61a1
CRs-Fixed: 2513571
As a part of 802.11ax amendment, 6GHz band operation is added.
Since the 6 GHz channel numbers are overlapping with existing 2.4GHz
and 5GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.
As a part of above requirement frequency attribute is added to the
struct sSirMacChanInfo, in driver some APIs directly copies this
structure info considering as every member of the structure as uint8_t,
as frequency is uint32_t this breaks above asumption and results into
corrupt info and gives undefined behaviour.
To address above issue, use the structure members individually and
give the information by member-by-member copy.
Change-Id: Ied6ad30d8a0800211f99371969ddd192ff40545c
CRs-Fixed: 2537975
Merge from 2517936 & 2490501.
SMMU fault is observed for WDI 1.0 MCC TX when SMMU is enabled.
Issue is that dma_addr passed from IPA driver is iova of IPA
domain. WLAN driver directly uses the iova to do transmission.
Since iova is not mapped in WLAN domain, SMMU fault occurs.
Fix is to map skb to WLAN domain for TX when SMMU is enabled.
After doing DMA map, an offset of frag_header and ipa_header
is added to the iova and skb->cb is updated with the new iova.
After TX completion, skb DMA unmap is done but with the iova
of the above offset included, which leads to unmapped iova error.
Fix is to recalculate the iova and update skb->cb with new iova,
which has frag_header and ipa_header length removed.
Change-Id: Ib0112d6a3de6dc9af43e5c48a49085c7d4f41a9b
CRs-Fixed: 2534845
Currently the bitmap of action frames that can wake up the host
during suspend is sent via the wmi command
WMI_WOW_SET_ACTION_WAKE_UP_CMDID. This bitmap doesn't include
RRM action frames so currently the host doesn't wake up for rrm
action frames when in suspend mode.
Selectively enable wake up for rrm action frames during runtime PM
alone. Don't enable host wake up during normal suspend as it will
consume more power.
Change-Id: I097596118c2888fc9ea24802e4dbe69d02c5c5f7
CRs-Fixed: 2507185
If fw is down, there is no point to dsc panic. Thus, disable dsc panic
if fw is down.
Change-Id: I1128ea3f32b879305e19fdf45a6e3588a570bd4c
CRs-Fixed: 2535312
During wlan IPA suspend, force the bandwidth voting to high
when CFG_DP_IPA_ENABLE_FORCE_VOTING is enabled.
Change-Id: I9b368081f9c0919f5fecfacf318ad1a714cc33cf
CRs-Fixed: 2521815
For 3th connection bring up, if first two connections
are SCC on same mac (STA+SAP or SAP+SAP), third connection
(STA or SAP) is not supported on same mac. Previous
commit If30cf58d2b16fc3ff4dfff4f75d7eeaa51786cad
lost the same mac check.
Change-Id: I278e94cbb1e368af57327da869bd961237e7b4b6
CRs-Fixed: 2534987
Set chainmask for 2x2 dbs capable device if enable2x2,
AS, and diversity are disabled.
Change-Id: I3ec8da95b868e79af1f44fdba63b2ee57e4365fa
CRs-Fixed: 2528035
Currently, TDLS set state command is sent to FW after any session
decrement without checking the HW mode is DBS. This can lead to
FW assert.
Check for HW mode before enabling TDLS in FW.
Change-Id: I70d5ba15c9b891f5d9b411960d51d684105061e8
CRs-Fixed: 2530773
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
1. Add configurable dfs_pri_multiplier, controlled by
DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
QCS405 target report RSSI range [18, 45] while radar power
is 3 dbm. By using default rssi_threshold 24 will reject
many radar pulses, which leads to low detection ratio.
3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
in dfs_count_the_other_delay_elements(), check deltapri
between [1, dfs_pri_multiplier] * refpri and searchpri, if
the primargin is desired, mark it as matched pulse.
4. Pick lowpri as refpri for the radar filter with
rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
enabled. Observed original findref logic has some problems
which selects refpri is bigger than lowpri, which leads to
the lowpri pulses pri_match are set to 0, and in this case,
radar was not detected. Example for the issue, assume
rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
leads to: index 0, 4, 6 pulses with pri_match 0 in
dfs_count_the_other_delay_elements(). The fix is to select
lowpri as refpri(1489 in this case).
Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2522506
The max value of gReportMaxLinkSpeed should be
CFG_STATS_LINK_SPEED_REPORT_MAX_SCALED.
Set the max value of gReportMaxLinkSpeed to
CFG_STATS_LINK_SPEED_REPORT_MAX_SCALED, otherwise
gReportMaxLinkSpeed does not work.
Change-Id: I164de224a4f4bfdd2dea55fe0a943fc4884326ff
CRs-Fixed: 2532054
There is a race condition of vdev_to_iface, it is referenced in IPA W2I
callback routine, but it's updated after IPA enable operation. If frames
received right after IPA enabled, callback function will return failure
due to vdev_to_iface value is not filled.
Change-Id: Iff831b66771539d1de4af89e395821dc50d13af3
CRs-Fixed: 2517515
In __wlan_ipa_wlan_evt, for QDF_IPA_STA_DISCONNECT event,
ipa_ctx->vdev_to_iface[session_id] is reset back to
WLAN_IPA_MAX_SESSION only when ipa_ctx->sap_num_connected_sta
is greater than 0. So, in STA+SAP concurrency case, when
no client is connected to SAP, if STA is disconnected,
vdev_to_iface is not reset for that particular session id,
making it unusable for further events involving IPA iface
creation.
Fix is to move the code to reset vdev_to_iface outside the check
for ipa_ctx->sap_num_connected_sta in QDF_IPA_STA_DISCONNECT
scenario, so that vdev_to_iface is reset irrespective of SAP.
Change-Id: I06c79b62c540546cf4842f81d235f96b2965661e
CRs-Fixed: 2525709
User might modify the roam control config params through
multiple commands as part of roam control config enable.
Currently, only the params which are modified as part of
SUBCMD_CONTROL_SET command are restored. Restore all of the roam
control config params from the default ini values when the
control config is disabled i.e when the CLEAR_ALL is received.
Change-Id: I59ebc2e3018b01889ffb2bcd19b72d6d20fd0517
CRs-Fixed: 2517854
Currently, roam delta is updated to global mac ctx when it's
updated through DRIVER command. But the update should
happen only to the neighbor roam info of the corresponding vdev.
Retrieval also should happen based on vdev.
Change-Id: I355b9db2e142d4205088627672c3fb27c32d7fbd
CRs-Fixed: 2530333
Add an ini configuration that configures the inactivity timeout for NDP
peer. The value is sent to the firmware via the VDEV param
WMI_VDEV_PARAM_NDP_INACTIVITY_TIMEOUT.
Change-Id: Ifffe6bb40df94761d739463cf7e54a0be7e2a375
CRs-Fixed: 2531756
Currently sta id validation is not there in del
station command for tdls. There could be a case where peer
is there but sta id is not valid.
Consider a case where there is tdls connection between 2
p2p clients and one of the client decided to connect to SAE
AP, this brings up concurrency scenario on that client for
p2p client and station, so tdls connection should be tear
down. device tear down the tdls link and inform the supplicant
regarding the same. Now in the driver scheduler, connect
command is there which is queued when device tries to connect
to SAE AP, this command gets a chance to execute.
When SAE connection is executed, driver gets a command from
supplicant to disable tdls links for the previous connection
which is already teardown, this command is queued into
scheduler which blocks the supplicant thread.
For SAE connection to get complete driver waits for auth
request from supplicant.
Here supplicant waits for the tdls disable link command's
response which will never come as driver waits for SAE
authentication which leads to deadlock.
To address above issue, add a check to validate sta id
before queing tdls down link command to scheduler, if the sta
id is invalid, return response to supplicant as tdls peer is
already deleted.
Change-Id: Ie983aa9f217c0d7b4508639bb33ad1a44b3675c7
CRs-Fixed: 2521529
Currently as part of tdls enable link, If the peer is buff
capable or tdls uapsd is enabled in INI. UAPSD is enabled in
FW. Avoid sending this command to FW as it effects the behavior
with AP.
Change-Id: Idc023cb9de3ab63e7643815d473fe0efa98069b9
CRs-Fixed: 2528208
The add_bss_req struct is used while handling add bss resp,
and is stored in vdev priv mlme.
The resp path require the info which can be filled from vdev resp
and thus no need to store the add_bss_req. From response fill and
use the add_bss_resp in add bss response handling path
Change-Id: I7ec1189c7d399e181f451a442a2578964eb4e47d
CRs-Fixed: 2529289
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
As a part of 802.11ax amendment, 6GHz band operation is added.
Since the 6 GHz channel numbers are overlapping with existing 2.4GHz
and 5GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.
As a part of above requirement, in the existing WMI interface handlers
and related functions, wherever missing, add frequency attributes to
identify unique channel operation.
Change-Id: I757f60cef414d206b275b4fbd192d5d22bbc93d7
CRs-Fixed: 2517901
NAN_NDP+SAP concurrency is not supported. Disable all NAN_NDP
sessions on SAP startup.
Change-Id: I73284ef4f820dd15df808b9c44da5f09c6b5db26
CRs-fixed: 2524112
Add mlme APIs and structures to set and get roam
state, supplicant roam disabled flag and rso control
bitmap.
Change-Id: Ic97da49035462afffd9c86c1d9f9af08515e6747
CRs-Fixed: 2520824
Currently if num ns offload count is 0, vdev reference is
not getting released in pmo core enable ns offload in fw api,
this is resulting in vdev ref leak.
To address above issue, release vdev ref count if num ns
offload count is 0.
Change-Id: I2cb7ebf974869f96e5c53faf3855c6c835c28a6c
CRs-Fixed: 2521504
Set the same IPA bandwidth for both the cons and prod pipes based
on total packet counts, to avoid overwrite voting by one another,
as per IPA-PM implementation.
Change-Id: I5f93e1ff91f9fbeb42ea8bd93792e288a073b6b1
CRs-Fixed: 2521811
To ensure the total weigtage of various factors doesn't exceed
100, there is a check in mlme_init_scoring_cfg(). If the total
weightage for roam score exceeds 100, the default values are
pushed for the weight configs.
In this computation, the enable/disable value is also added,
which results in configuration only upto 99%. Fix this weight
configuration and remove the enable flag value addition to the
total weight.
Change-Id: I15cf70428b2e8afa2203299dae98c287e5e2222d
CRs-Fixed: 2527361
gEnablePowerSaveOffload is curretly set to 0 but the default recommended
value is 2. Change default value of gEnablePowerSaveOffload to 2.
Change-Id: I456b0947715be39756e2971a2b2cdcd40e527e4c
CRs-Fixed: 2498218
Modify roaming enhancements specific ini default value to work
adaptive 11r and roaming enhancements feature.
Change-Id: I58efd5d8cc50ca1a2b9252c9aad8484cda58ae25
CRs-Fixed: 2521810
In the host driver, after receiving NDP END INDICATIONs for all NDP
connections then policy manager deletes NDI mode from
pm_conc_connection_list.
From user-space application, if NDP END REQUEST and NDI DELETE request
are issued back to back without waiting for NDP END indication, then
firmware could process NDI DELETE command firstly and avoid NDP END
indication due to peer delete as a part of NDI delete.
If vendor command NDI delete request is issued without receiving
NDP_END_INDICATIONs for all active NDP peers then pm_conc_connection_list
contains stale entry of PM_NDI_MODE associated with deleted NDI.
Stale NDI entry in pm_conc_connection_list is the cause for failure of
get_second_connection_pcl_table_index() for PM_NAN_DISC_MODE, therefore
further NAN enable requests are rejected.
To address this issue, cleanup PM_NDI_MODE from pm_conc_connection_list
as a part of NDI delete.
Change-Id: Ic1535420b60224cc426b24e22fe7486781fd2fa6
CRs-Fixed: 2519625
Currently, in function tdls_process_reset_all_peers before checking
the tdls peer state connected peer count is checked and if is zero
then returned without checking the peer id. If peer is created
but the peer count is not increased then TDLS component will not
notify to delete the peer and this can lead to subsequent add peer
denials.
Change-Id: I2fd1d6945eb9dca478f11cd05ba0ee4a9ed007ea
CRs-Fixed: 2524442
For DBS HW, reject STA or SAP connection if
result to SAP+SAP and STA active on same mac.
SAP+SAP+SAP SCC is still allowed.
Change-Id: If30cf58d2b16fc3ff4dfff4f75d7eeaa51786cad
CRs-Fixed: 2498837
To pass WFA 11N 4.2.25 case, it's needed to enable legacy mode
SIFS burst. So add INI to make SIFS burst mode configurable.
Change-Id: I740fe33a7ae0d9b558aa3b3aeee434f482ed24cb
CRs-Fixed: 2486171
Cache the PMF capability of peer in peer_mlme_priv_obj while
adding bss for both station and AP modes. Process the mgmt frames
received from the peer as rmf frames only if the peer is of PMF
capable.
Move mlme_peer_object creation and deletion out of the define
CRYPTO_SET_KEY_CONVERGED to make it generic.
Remove the check where WEP bit is validated and modified based on
PMF capability of the peer. This is already taken care while
setting WEP bit in lim.
Change-Id: I0c93bb25db6a866e4c1793c9ba4c60773c0f019d
CRs-Fixed: 2520249
As a part of vdev convergence, legacy vdev code for vdev delete/stop/
down is removed. WMA timer for vdev manager operations are deleted,
now target_if takes care of it.
Structure del_bss_params is no more used to store bss delete request
params, hence struct del_bss_params is cleaned up from legacy code.
Change-Id: I487d2683908b705176ff8064dd3ce7cd49a3ce47
CRs-Fixed: 2517880
Time stamp for profiling system level power issues is currently using
qdf_get_system_timestamp(), which measures in milliseconds. To get more
fine granular data, use qdf_get_log_timestamp_usecs() to measure in
microseconds instead.
Change-Id: I920d0ec7c90ab602cbdc0d1efdb6061d6a72c122
CRs-Fixed: 2520939
The spin lock APIs are accessed from wake MSI hard irq handler as well,
causing deadlock. To solve this, change spin lock APIs to use spin lock
IRQ.
CRs-Fixed: 2519986
Change-Id: I4d05abd294a71a26915210ae7e2be9be6aa7a996
Add support to advertise the VHT MCS 10&11 support using vendor
specific IE to enable the MCS 10 and 11 support in VHT mode.
Change-Id: I2d197dcce20ab4aec617ca8a7f4a54b438fae635
CRs-Fixed: 2465662
Send TDLS offchannel as 0 if only 2G is supported otherwise
FW will do the TDLS offchannel in 2G and will result in MCC
and not desired in 2G.
Change-Id: Ieeea619526a3d8b04ac4bda3f3e0ca73aba2f78a
CRs-Fixed: 2517642
Add timing profiling log for runtime PM operations such that we can
know how much time each operation is taking.
Change-Id: Iad2aca8e8bb2f0dadc14d24e3a5c2b03938df9df
CRs-Fixed: 2518935
In function p2p_process_scan_complete_evt roc timer state is checked
using the api qdf_mc_timer_get_current_state, this api does not take
timer lock while returning the state. In other thread, if the timer
state is changed then the wrong timer state is returned in current thread.
And wrong timer state can lead to destroying roc timer without stopping
it synchronously.
Call qdf_timer_stop_sync api without checking the timer state
as the timer already checking the state by taking a timer lock.
Change-Id: Idb22e405178f2e0f1ed80b7c8aac04170e5b69bc
CRs-Fixed: 2511768
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