Propagation from cld3.0-1.1 to cld3.0-2.0
Upper layer can send cfg80211 disconnect command anytime in the life
of a connection. It arrive when firmware roaming may have started,
completed, failed, etc. Processing of roam events may collide with
processing of disconnect command in the host driver.
Defer the hdd disconnect command if roaming has started. Upon completing
roaming send the deferred disconnect command to sme which will
eventually complete the requested disconnect.
If disconnect is deferred during roaming, then do not send the
new roam event to supplicant since it is not expected and upon
honoring the disconnect later, a disconnect event would be
sent to supplicant.
Remove the earlier workaround done to send a try again error message
to upper layers upon receiving a disconnect request when roaming
is in progress
Firmware can now handle the ROAM_SCAN_OFFLOAD_STOP command even
if it is in the middle of roaming operation. Hence remove this
check in SME.
Add LFR3 roaming state to the cds_is_connection_in_progress API since
it currently captures only LFR2 roaming states.
Change-Id: Id352d94b41f0766889ceebd0b57b2c566ce3ca42
CRs-Fixed: 1114853
Enhance gEnableSifsBurst to support legacy mode for 11n certification
0 - disabled
1 - enabled, but disabled for legacy mode
3 - enabled
propagation from qcacld-2.0
Change-Id: Ia0a21cec25ce46b3ef2ed0ee8d4e4682558da468
CRs-Fixed: 2018162
Currently struct hdd_wext_state_s (typedefed as hdd_wext_state_t)
contains the field "qdf_event_t scanevent". This event is created, but
beyond that it is never used. Since this object is obsolete, remove
it.
CRs-Fixed: 2017476
Change-Id: I7bd4290e1b4d0df069e8e6e6c9347c1ac3c01c63
Currently struct hdd_wext_state_s (typedefed as hdd_wext_state_t)
contains the field "struct completion completion_var". This completion
object is initialized, but beyond that it is never used. Since this
object is obsolete, remove it.
Change-Id: Ibebd7b4d1e8879b4de223a8be4bab2ca0d2fc165
CRs-Fixed: 2017354
Curretly FW considers minimum time of hysteresis for PER based roam as
constant value which is 25 seconds.
Add changes to make this configurable using ini.
Change-Id: I1a985594d515f42d1aaca8e4ef174fb29b51586a
CRs-Fixed: 2005849
DUT should be able to roam to a better access point if current
AP is having congestion/packet error.
This roam also devise a new selection logic for candidate
selection which considers channel congestion and AP capabilities.
Change-Id: I39594e37bd209be2603a4636514e2c9b1a907761
CRs-Fixed: 1090934
As per the current implementation wmmAcTspecValid is reset during roaming
and set after establishing TSpec but currently wmmAcTspecValid is not
considered before classifying the data frames based on AC and UP.
Due to above issue after roaming we are still sending packets with UP
for which tspec session is not established.
Fix above issue by checking wmmAcTspecValid for AC before
classifying the frame.
Change-Id: I37039fa568696f0861b02d094c3a513dbc2b9967
CRs-Fixed: 915555
As part of I707054c44a882f6dd4a4a9df2b6821b93b724f7a, completion
of wlan_start_comp variable is removed at hdd_wlan_startup,
that leads to timeout crash waiting for driver registration.
Add complete wlan_start_comp at hdd_wlan_startup.
Change-Id: I2e80465cd1ec66b9330b8f6e9b11fd14076035eb
CRs-Fixed: 2017668
Disable Qpower when UAPSD is enabled or if the max ps poll is
configured by user.
Change-Id: If9c747406d65a6f89fa123592c3f9d79724b8ae0
CRs-Fixed: 2017432
Add an ini item for configuring the keepalive method used by station
interfaces.
Change-Id: Id44773f5ae7f7ad1ad9441592512ab3e2ce3a076
CRs-Fixed: 2016799
Inform the bss using the new API cfg80211_inform_bss_frame_data() which
also has the ability to inform the timestamp when the frame has
been received.
If the support is not present in the kernel fallback to the legacy
inform bss.
Change-Id: Iaa512248a5e56d77cff39da562e0c9ee4eaeeefd
CRs-Fixed: 1082423
Check the FW capabilities to enable VHT160MHz support.
Disable 160MHz by default in the configuration.
Change-Id: Ia6985d9f7c55a070dbb47faf95cd409201037e0c
CRs-Fixed: 2004245
Currently, enable/disable channel avoidance event based on INI is done
in hdd_wlan_startup. In power save scenarios, where WMI configuration
needs to be sent again to FW, channel avoidance event setting is not
sent.
Move the channel avoidance setting to hdd_features_init so that this
config is set properly to FW in power save cases as well.
Change-Id: I707054c44a882f6dd4a4a9df2b6821b93b724f7a
CRs-Fixed: 2009299
wlan-cld3.driver.lnx.1.1-dev to wlan-cld3.driver.lnx.2.0-dev propagation
As a part of add virtual interface API kernel takes the rtnl lock,
if start modules fails then it will take the rtnl lock again while
closing the adapter which causes the UI freeze issue.
To resolve this issue, call close adapter API with indication that
lock is already taken.
Change-Id: Ic186eba794600b189021d7455a5811972280ee84
CRs-Fixed: 2013661
Presently if there is an error during the add interface, closing of adapter
and the stopping of the modules is not handled.
So, close adapter during the failure adding the new virtual interface
and if there are no interfaces running start the interface change
timer callback.
Change-Id: I807bc5b295a7faf369e8a9f1e0958eac869f189f
CRs-Fixed: 1097312
qcacld-2.0 to qcacld-3.0 propagation
Add below four keys to allow user to tune WRR TX scheduler params.
Each key is mapping to one AC defined in data path module through
OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC.
gEnableTxSchedWrrBE
gEnableTxSchedWrrBK
gEnableTxSchedWrrVI
gEnableTxSchedWrrVO
Change-Id: I5c34b604297d83673ea065243cc58c3f2180ff3e
CRs-Fixed: 1020141
HDD to send user configurations received from ini to object manager.
Common components to refer to them from psoc object using public APIs.
Change-Id: I85045ccc291e280132be4164b13d07dee4538951
CRs-Fixed: 2003447
During wifi logger start if the modules are in close state,
it will access uninitialized lock.
To handle this, check module status during start of the wifi logger.
Change-Id: I10b3fffa45475c602c22b548d521f75c627b133e
CRs-Fixed: 2012742
Add new diag events for the wlan disconnection these
events will be used to inform the wlan disconnection scenario.
Change-Id: I6bdddb2d3f45deca2dc92a94e2abf59f46d7c38f
CRs-Fixed: 1108380
Change default log level for all firmware modules and
also per module with a specific log level.
Change-Id: I33275f2737e0e56daea4e2edd8debca8016f1ed0
CRs-Fixed: 2013439
Firmware has implemented two new chanimask control parameters:
WMI_PDEV_PARAM_SMART_CHAINMASK_SCHEME
WMI_PDEV_PARAM_ALTERNATIVE_CHAINMASK_SCHEME
Add two new INI parameters to control the values of these firmware
parameters.
Change-Id: Iafe8d38684c5f2ab3f4150eee722461ec21e3e21
CRs-Fixed: 2011634
Following tdls functions wlan_hdd_tdls_find_peer(),
wlan_hdd_tdls_set_peer_link_status() and
wlan_hdd_tdls_is_progress() allows mutex protection
inside the function depending on the mutex argument
as an input to the function. But the mutex argument
is always false in all the calling functions.
This change removes mutex argument from the functions
wlan_hdd_tdls_find_peer(), wlan_hdd_tdls_set_peer_
link_status() and wlan_hdd_tdls_is_progress().
Change-Id: I173e2a768b1f0b4d91dec1a9150efac630fb5c86
CRs-Fixed: 1106836
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function __wlan_hdd_
cfg80211_tdls_mgmt() and __wlan_hdd_cfg80211_tdls_oper().
Change-Id: I6563170863c51d0eb400801cc863234e11440421
CRs-Fixed: 1106815
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function hdd_roam_tdls
_status_update_handler().
Change-Id: Id4fd0931df5ec38ad07657751feff34946a18c02
CRs-Fixed: 1106735
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function __wlan_hdd
_cfg80211_configure_tdls_mode(), wlan_hdd_tdls_set_params()
and wlan_hdd_update_tdls_info().
Change-Id: I03d4d74356ff6401772c69a7686352783cf22b6b
CRs-Fixed: 1106726
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function wlan_hdd_tdls_
find_first_connected_peer() and hdd_set_tdls_offchannelmode().
Change-Id: Ic2112e19873a86fbd89dfb0a5a674a2a7e643b21
CRs-Fixed: 1106714
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for the function wlan_hdd_
tdls_get_peer() by removing the need for mutex lock inside
the function. The change also refactors the calling functions
for wlan_hdd_tdls_get_peer().
Change-Id: I3acb278162127e84d751ef7fdeaac2dc245bbe81
CRs-Fixed: 1106682
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function wlan_hdd_tdls
_indicate_teardown() by removing the need for mutex lock
inside the function, and refactors the calling functions.
Change-Id: I5a0da34b0db78a88a99046bf2ee007b50d6ce5c4
CRs-Fixed: 1106305
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function
wlan_hdd_tdls_disable_offchan_and_teardown_links(),
wlan_hdd_tdls_scan_callback() and wlan_hdd_tdls_teardown
_links() before calling wlan_hdd_tdls_find_all_peer().
Change-Id: I881e12bb0c50bfbeb4fe60cb21cfdf0f7d6c2f56
CRs-Fixed: 1106293
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function
wlan_hdd_tdls_discovery_timeout_peer_cb() and
wlan_hdd_tdls_scan_callback().
Change-Id: I6927aee62c726edd1944d3b6638ae68d9c91d6ab
CRs-Fixed: 1106235
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for function wlan_hdd_tdls
_idle_handler(), hdd_tdls_connection_tracker_update() and
hdd_roam_tdls_status_update_handler().
Change-Id: I75dc17b581b0c5ef12cbc9203d679a5ea175c752
CRs-Fixed: 1106172
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for hdd_roam_tdls_status
_update_handler(), wlan_hdd_tdls_ct_sampling_tx_rx() and
wlan_hdd_tdls_update_tx_pkt_cnt().
Change-Id: I7e3e74d149b3dfe527aeb01ee5b3d7a51b16fc61
CRs-Fixed: 2009223
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_set_callback(),
wlan_hdd_tdls_extctrl_config_peer() and wlan_hdd_tdls_
extctrl_deconfig_peer().
Change-Id: I07d708f5e9475c57ee473f455ee716d2b6ba7139
CRs-Fixed: 1115923
The function wlan_hdd_tdls_indicate_teardown() calls
wlan_hdd_tdls_set_peer_link_status() with need_mutex
agrument as TRUE.
This change passes mutex argument to the function
wlan_hdd_tdls_indicate_teardown() that inturn passes
to wlan_hdd_tdls_set_peer_link_status() for need_mutex
argument.
Change-Id: I96400c00470dba7ae5ba9ad26142c7c5aaf2feb7
CRs-Fixed: 1115911
peer_list is a parameter for tdls_ctx, so every access
to peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_tdls_add_station()
and wlan_hdd_tdls_set_link_status().
Change-Id: Ibb323d6dccfb91fddf8bde849054cfc331081ff8
CRs-Fixed: 1115781
qcacld-2.0 to qcacld-3.0 propagation
peer_list is a parameter for tdls_ctx, so every access
to peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_tdls_reset
_peer() and wlan_hdd_tdls_set_sta_id().
Change-Id: I5950c411ca48186d6cb7cbd5a4acd688db1a0cba
CRs-Fixed: 1108994
qcacld-2.0 to qcacld-3.0 propagation
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_tdls_get_peer(),
wlan_hdd_tdls_set_cap(), wlan_hdd_tdls_recv_discovery_resp(),
wlan_hdd_tdls_set_peer_caps(), wlan_hdd_tdls_get_link_estab
lish_params(), wlan_hdd_tdls_set_responder() and
wlan_hdd_tdls_set_signature.
Change-Id: I4589eea7f5f97d0e9887e008921a89af05bce329
CRs-Fixed: 1108972
qcacld-2.0 to qcacld-3.0 propagation
peer_list is a parameter for tdls_ctx, so every access to
peer_list should be protected with mutex lock.
This change refactors the code for wlan_hdd_
tdls_set_rssi() and __wlan_hdd_cfg80211_tdls_mgmt()
before calling wlan_hdd_tdls_find_peer().
Change-Id: I1cedeff6f42854a66b4c878dd8d4ecf345ae875f
CRs-Fixed: 1108952
When TDLS exists and new virtual interface is added, then
TDLS gets teardown. But TDLS connection tracker is disabled
only when new connection comes up successfully. When STA
interface is present and TDLS is running and SAP is started,
TDLS gets teardown while adding new virtual interface. But
TDLS gets formed again if there is delay in starting BSS.
Thus, TDLS gets formed, but TDLS connection tracker gets
disabled.
The change is to teardown TDLS links if TDLS connection
tracker is disabled in cds_incr_active_session().
Change-Id: I0ae6526ad0aa321b666e62d09c2ca5b1be8f9157
CRs-Fixed: 2010694
TDLS connection tracker gets disabled while decrementing the
session. While incrementing the session, cds_set_tdls_ct_mode()
is called first, which does not enable TDLS connection tracker
as TDLS mode is already disabled. Then, wlan_hdd_update_tdls_
info() is called that enables TDLS mode, but still TDLS
connection tracker is disabled. TDLS connection tracker gets
enabled only in wlan_hdd_tdls_scan_done_callback().
The change is to enable TDLS connection tracker whenever
wlan_hdd_update_tdls_info() enables TDLS mode.
Change-Id: I00acaebdea737c4482b204ddc25df6b15b330254
CRs-Fixed: 2009566
In the case of concurrency, considering STA+P2P-GO, if P2P-GO is
removed, then cds_decr_session_set_pcl() will be called from two
contexts mc_thread and supplicant. Thus, if race occurs, then
cds_store_and_del_conn_info() will remove STA temporarily for one
caller, and it simply returns for second caller. As
cds_conc_connection_info stores garbage values for the second
caller, thus, new interface is created with junk variable.
The change is to avoid the race condition for calling
cds_decr_session_set_pcl() in two contexts. The change is also
to initialize cds_conc_connection_info() with zero before simply
returning because of failure in cds_store_and_del_conn_info() to
avoid creating new interface with junk values.
Change-Id: I7bc4dcea6dfb66954f2cead607eef303df62e6d6
CRs-Fixed: 2009364
Access to tdls_ctx should be protected with mutex since
it is being accessed and freed in different contexts.
ct_peer_mac_table is a parameter of tdls_ctx and it is
being accessed in tx/rx path which runs in softirq context.
So we cannot hold the mutex while accessing the tdls_ctx
in tx/rx path.
In this change the ct_peer_mac_table is moved to hdd_ctx so
that we no need access the tdls_ctx in tx/rx path.
CRs-Fixed: 1105539
Change-Id: Iafcc450a6e34500929605a11274fb2077b3f81fe
wlan-cld3.driver.lnx.1.1-dev to wlan-cld3.driver.lnx.2.0-dev propagation
As per the 80211 spec, except for setup req and resp frames all
other TDLS management frames shall be transmitted with AC VI. But
this may cause packet check failure for WMM certification-STAUT
-5.2.31 when Admission control is enable for VI.
To overcome this issue discard discovery request and setup cfm
frame when ACM is set for AC VI.
Change-Id: I13da566e9de5e9a366c1efc41c0af67320305570
CRs-Fixed: 1083561