During re-init of SSR, host restarts adapters one by one, by
traversing adapterNode link-list, whose all interfaces are up.
But if any of adapter's interface is down, then driver will be
in infinite loop as its not traversing to next adapter node.
So, on adapter's interface down, go to next adapter node to
break infinite loop.
Change-Id: I334a6304578d833485b58b2f6f494b4556c781ed
CRs-Fixed: 1069498
wpa_supplicant queries for DFS capability as part of
initialization and the interface is not up by then. So, allow
userspace components to query for the same even if the interface
is not up.
Change-Id: I2b8dc04260e1cbe007fda4be7f1b8aa196ae7a79
CRs-Fixed: 945597
Clean up PLD source file by moving one-line function calls to
header file and make it static inline. Also, remove unused function.
Change-Id: Ibaa7357db4ac305f0bab9d8ad2f7dfe9351fda7d
CRs-Fixed: 1070075
In low memory conditions TX/RX histogram memory allocation failure
is not handled properly and because of it 2 kernel panics are observed.
1st kernel panic is caused when freed HDD context is de-referenced in
hdd_wlan_startup and 2nd kernel panic is caused by kernel wake lock
list corruption because WLAN driver during load failure corrupted kernel's
wake lock list.
As part of this fix make sure TX/RX histogram memory allocation failure
is handled gracefully by properly sending failure reason code to
hdd_wlan_startup.
Also in order to make fix complete and avoid any other kernel panic, deinit
HDD context properly by freeing all HDD created wake locks such that when
HDD context is freed its wake locks are not poisoned to 0x6b6b6b6b6b6b6b6b
(SLUB magic pattern) pattern by kernel and hence corrupting kernel wake lock
list.
This fix ensures driver load failure caused by TX/RX histogram allocation
failure is handled gracefully in low memory conditions without leading to
any kernel panic.
Change-Id: I17a46c346402642f39e6548cd40bedd1f7ff96a4
CRs-Fixed: 1069014
Current driver doesn't send WMI command to notify firmware to disable
all dual mac features when DBS is disabled from INI.
Disable dual mac features including all scan policies when DBS is
disabled from INI.
Change-Id: Id452c1de795dbeb7dc897a71e1578731d9dad2f9
CRs-Fixed: 1069650
Add support to include VHT opmode IE in association request
frames when the STA is connecting to VHT AP and the connection
has SMPS enabled.
Change-Id: Id18a6356ac6f08d1846abe42f84713fddef984dc
CRs-Fixed: 1062430
DTIM period is configured during add_bss and is taken from scan
cache bss descriptor.Scan cache can have both probe response and
beacon frames, but the TIM IE is present only in beacon frames.
If scan cache has the probe response frame then DTIM values is
configured as 0.
Get the DTIM period value from beacon and configure it to FW.
Change-Id: I2b92e5e133a70d33987a50b6113681142bc4896a
CRs-Fixed: 1067558
Move HT/VHT parameter from PEsession to Station dph entry which are
introduced as part of wlan data logging.
Change-Id: Icd9258c32a82d3842708ac92b498106d870d7f4f
CRs-Fixed: 1053747
Remove the per band chain mask support flag as the chain mask
configuration by user is not supported. And set the HT and VHT
IEs to FW unconditionally.
Change-Id: Ic29ec1019a7d83c7080409096ec41e827c4009fb
CRs-Fixed: 1068108
The WLAN_FEATURE_MBSSID conditional compilation flag is no longer
needed since MBSSID is a required feature. Remove this flag and
any alternate code referenced in the conditional compilation blocks.
In phase 4, completely remove the MBSSID compilation flag.
Change-Id: I9c74ae624f1db39f13c62b148396a3c8ac49ad88
CRs-Fixed: 1067450
FW crashes when disconnect STA interface in STA only mode, since
sending WDI disable command while it is not enabled yet.
WDI disable should be sent only when STA disconnected while SAP
client is connected.
Fix by adding check if SAP client is connected in prior to send
WDI disable command to FW.
Change-Id: Ia7f46e0567d4d5d6f7efe78be5ab5b007419210d
CRs-fixed: 1068439
qcacld-2.0 to qcacld-3.0 propagation
Currently, tdls lock has not been acquired and if tdls peer or
tdls context freed in other context then it will lead to crash.
Fix is to ensure that the tdls lock is acquired for tdls peer
list and tdls context.
Change-Id: I52c3e7b67c7f61160c54a1a6688db09f0137b7e1
CRs-Fixed: 945302
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default WCNSS_qcom_cfg.ini contains the following entry:
gEnable5gEBT=1
The default value within wlan_hdd_cfg.h is:
define CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT (0)
Since this feature improves power consumption it should be enabled by
default, so update the default value in wlan_hdd_cfg.h.
Change-Id: I585cb06f227ee4575b06165c751a93fb93c2fad6
CRs-Fixed: 1068914
lim_cmp_ssid api returns zero when comparison ssid matches
else returns non zero. Checking return value with true/false
can cause confusion and errors.
Replace the return value check from true/false to
zero/non-zero values.
Change-Id: Id22560cb4c2289431995dab3087b4eb24546a8bf
CRs-Fixed: 1067454
qdf_mem_cmp api returns zero when comparison string matches
else returns non zero. Checking return value with true/false
can cause confusion and errors.
Replace the return value check from true/false to
zero/non-zero values.
Change-Id: I485d69a4bf85d1e6273ea780af6d0423c3910686
CRs-Fixed: 1066946
If the peer is not present in the deleted list,
this function frees the resources for that peer and
add it to the deleted list. If the peer is already
in the deleted list, do nothing and continue to scan
for other peers. Incorrectly checking the return value
qdf_mem_cmp make the above functionality broken.
Fix the check for return value of qdf_mem_cmp to
allow the proper processing of the peers in deleted list.
Change-Id: Ica97b3bcaa651e2ca5935beb1381e9fc5b196e8a
CRs-Fixed: 1067411
Integration from cld-2.0 to cld-3.0.
Currently the throughput is measured every 100 ms. Delack is set to 20
if throughput for this interval is greater then threshold (~57 Mbps).
In the case of congestion control, tcp may take longer duration for
rampup. In this change, throughput is checked for consistency for
about three seconds and then tcp delack is set to 20.
CRs-Fixed: 1028085
Change-Id: I1a4e9be3407ac426a314e1192d0e1d315e1899e0
If SAP is operating in DFS channel, and STA comes up in 2.4
GHz band, then irrespective of DBS capability, SAP switches to
STA's channel for SCC.
The enhancement is to allow SAP to operate in DFS channel,
and restrict the preferred channel list for STA with 2.4 GHz
channel, if the device is DBS capable.
Change-Id: I548889265443c391d07d00951f6112983edafbcd
CRs-Fixed: 1067720
Proivde PLD wrapper APIs for getting SMMU mapping
context and mapping SMMU to a specific physical address.
Change-Id: I3feb61b26c839547e4d050f62963e64f5ca062a7
CRs-Fixed: 1057714
Add PLD wrapper for platform athdiag read/write.
HIF will call these two functions when a athdiag read/write
triggered from user space.
CRs-Fixed: 1061837
Change-Id: Ie34c634beaf1cd91e24eca1b7ce5b6444a60393e
qcacld-2.0 to qcacld-3.0 propagation
Host should not allow roaming if bssid is set in connect request
and hence RSO_START should not be sent.
Add changes to not send RSO_START if bssid set in connect request.
Change-Id: I1037c60837a90472fee312e8654197ea7f68702e
CRs-Fixed: 1016886
qcacld-2.0 to qcacld-3.0 propagation
When supplicant issues enable/disable firmware based roaming on the
basis of the Bssid modification in network block (e.g. AutoJoin modify
Network Block), that time middle-ware will issue this pvt cmd to Driver.
Driver need to disable/enable firmware roaming.
(in our current design we can enable firmware roaming by offload scan
to firmware so firmware can scan and find candidate ap when rssi threshold
meet the criteria, same way driver can stop firmware roaming by stop
offload scan to firmware).
Change-Id: I378917d9d56c4d3ef13bfe8c3bf62adc6d5e7aa6
CRs-Fixed: 1012420
Currently, host driver adds Supported channels IE, ESE Version IE in
reassociation request initiated from driver. In LFR3, these IE's are
missing in reassociation request frames as it is initiated by FW.
As part of MBO changes, assoc IE's are sent to FW via Roam Scan Offload
command as soon as connection successful. Add the above supported channels
IE and ESE Version IE also while sending assoc IE's to FW via RSO command.
Change-Id: Ic73491d60b532e3b9bb79144599fbe111591f64a
CRs-Fixed: 1061698
Currently, host driver adds RRM IE, Power cap IE in reassociation request
initiated from driver. In LFR3, these IE's are missing in reassociation
request frames initiated by FW.
As part of MBO changes, assoc IE's are sent to FW via Roam Scan Offload
command as soon as connection successful. Add the above RRM IE and Power
Cap IE also while sending assoc IE's to FW via RSO command. For FTM[Fine
Time Measurement] cases, RRM IE's are changed dynamically. Hence, send
the updated RRM IE with other IE's via RSO/Update_cfg command to FW.
Change-Id: Iff5ff961df89d4564a31763257b13811c4f57df4
CRs-Fixed: 1061698
Update MAC address to FW if it is provided by host. Otherwise,
MAC address will be out-of-sync between host and FW.
Change-Id: Idcf00d80d6d9e3e39b5a5ccb6d96390c2d883fe6
CRs-Fixed: 1066986
Some cleanup is needed around a previous code change that reset the
power save timeout when power save is requested from user space.
Perform minor code cleanup, moving a logging statement and removing
a blank line.
Change-Id: Idc656fbaba16e58ef57625b5f9d5de37a191793a
CRs-Fixed: 1066022
Current host driver is using default pattern id 0 for various
WoW pattern configuration which is overwriting WoW rules in FW.
WoW pattern id should be unique for each vdev. Same WoW pattern
ID can be used on 2 different vdevs but on same vdev pattern id
for various WoW patterns must be unique. Add fix to make sure
unique pattern id is used for each vdev.
Change-Id: I893044ae50bee44b5e986f3c30967fad601eb057
CRs-Fixed: 1067951
roam_synch_in_progress is set by default in csr_roam_synch_callback function,
and will be reset only on SIR_ROAM_SYNCH_PROPAGATION roam op_code.
On roam_synch_in_progress set, no roam call back will be called and roam
command will not be removed from active list.
If roam_synch_in_progress is set on roam op_code other than SIR_ROAM_SYNCH_PROPAGATION,
roam_synch_in_progress will remain till next roam, till that time no roam commands will be
processed.
To fix this set roam_synch_in_progress only on SIR_ROAM_SYNCH_PROPAGATION roam op_code.
And also add log in csr_roam_set_bss_config_cfg if roam_synch_in_progress is set.
Change-Id: Id50e6f871280bd3eac9f61513db308ea748eec2d
CRs-Fixed: 1064213
In rx path replayed mcast packets are dropped and freed,
but debug node reference for dropped skb is not removed.
This is resulting in invalid tracking of allocated netbuf.
Remove debug node reference for dropped skb.
Change-Id: I1e36436dadaefb666c14af57c72876a70b887e88
CRs-Fixed: 1066770
qcacld-2.0 to qcacld-3.0 propagation
Fix the race condition, between 2 kernel worker threads
while shutdown is in progress.
Change-Id: I6e71ae55c57dac8c2adb36167783615e218cb481
CRs-Fixed: 834362
qcacld-2.0 to qcacld-3.0 propagation
SSR should wait until ndo hard_start_xmit ops is completed.
Change-Id: Ic3148cfb655f87d22c40bca7825809648c7b4b4a
CRs-Fixed: 952660
qcacld-2.0 to qcacld-3.0 propagation
Capture WMI version in a global variable for crashscope
to extract WMI logs.
Change-Id: I2f06eaf182bb67dceade397652f801e6311b8f68
CRs-Fixed: 978901
qcacld-2.0 to qcacld-3.0 propagation
GTX use this parameter to drop TPC and in turn TPC drop is the cause
for mcs rate drop and may happen in higher percentage. This change,
provide a way to select the desired value and reduce mcs-8 usage to
2% from 8%.
Change-Id: I64f05c8b41cf3d360819122a08eca72f3a2c1aed
CRs-Fixed: 1010564
qcacld-2.0 to qcacld-3.0 propagation
As per current implementaion whenever ACS is enabled via
INI all the update beacon from cfg80211 module fails because
sapconfig channel points to AUTO_CHANNEL_SELECT(0).
When driver ACS is enabled skip channel validation to fix
this issue.
Change-Id: Ie3e7d19332629fc860752b2240690fd6a15bb0a2
CRs-Fixed: 977101
qcacld-2.0 to qcacld-3.0 propagation
"log buffers are dropped" are consistently printed which
is affecting the tput KPI's. Masking the same with debug level
which is not enabled by default.
Change-Id: I6e9abc7d65f276d71810aedad9062152035699c0
CRs-Fixed: 956599
qcacld-2.0 to qcacld-3.0 propagation
Presently we are not validating the length of the essid received
and directly copying the buffer without size checking.
Perform bound checking before processing the scan req.
Change-Id: I786e4feb67bf039df3d217138a412da54f51787d
CRs-fixed: 890228
Currently hif_ctx is passed as a parameter in hif_get_hw_info
and hif_bus_reset_resume without any validation check for the
parameter. This change Validates hif_ctx before
dereferencing the hif_ctx.
Change-Id: I17636692863bfdded691594cef40ebe55e262849
CRs-Fixed: 1066838
qcacld-2.0 to qcacld-3.0 propagation
Currently, if get_station is called during roaming, host does
not send the correct rssi.Because of this, supplicant reports
very low rssi to upper layer and handover happens to cellular.
To mitigate this issue, send the cached rssi when get_station
is queried during roaming.
Change-Id: Icceb5839503ccd99e7aef535ee438d072d3a8823
CRs-Fixed: 1055388
qcacld-2.0 to qcacld-3.0 propagation
After interface down, kernel frees the ongoing scan
request memory and call cfg80211_scan_done.
Now, during IBSS change iface, stop adapter is called
which does not abort the scan. Once the ongoing scan is
done, HDD calls the cfg80211_scan_done for which kernel
has already freed scan req memory and this leads to crash.
Abort the scan during stop adapter for IBSS case also.
Change-Id: Ie53576399926cc3a07e6f66c0f3997b6617f9f04
CRs-Fixed: 1047004
qcacld-2.0 to qcacld-3.0 propagation
Currently, if MC list count is more than mc count that
target can support then host configures only max count that
target can support.Rest of MC addresses are dropped.
Now if host wakes up for any MC packet, there is no way to
identify if MC address was configured to FW or not.
Change the code to print all the MC address list that userspace
has sent to Driver and the MC address list that is sent to FW.
Change-Id: Idd63385a657d1af550cf07bbfe052ce465d30608
CRs-Fixed: 1023043
This changes fixes the qcacld-2.0 tp qcacld-3.0 propagation error
of Change-Id:I4b37d072bc92e003fcfe62ffe8f93f7c185eb6c7. Host driver
doesn't honor the Assoc reject with eSIR_MAC_TRY_AGAIN_LATER status
for non-PMF connection, due to this error.
Change-Id: Ib2defa27ee5c97ada53808d2e24a29b976fe5107
CRs-Fixed: 1067670
qcacld-2.0 to qcacld-3.0 propagation
Currently the age out of scan results is ineffective as the aging
timer is started only once the scan results are obtained from
the FW, which would expire in 1 sec, so it could be possible that
the cached scan entries may still persist and may not be aged out
To address this issue, purge the scan results by age, before the
scan results are updated to upper layer.
CRs-Fixed: 997430
Change-Id: Ib70b04f4a720123d21ba820dd3c1e86076083dc9
qcacld-2.0 to qcacld-3.0 propagation
In the driver, while processing the scan results, if the max
BSS limit is reached, all the newest scan results are dropped
and stale scan results are updated to upper layers.
To address this, remove the oldest scan entry if the max BSS
limit is reached.
Change-Id: Ib85a8a3b66fbf903311002887a3c5c3d10bfbccf
CRs-Fixed: 991417
qcacld-2.0 to qcacld-3.0 propagation
In limLogQosMapSet, dscp_exceptions is max of 21 size but
there is no limit check for num_dscp_exceptions.
Check for max size for num_dscp_exceptions to avoid overflow.
Change-Id: Ia1f64860f924aa0d586b2d0d532183ef9b18f2e0
CRs-Fixed: 933465
qcacld-2.0 to qcacld-3.0 propagation
In convert_qos_mapset_frame, dscp_exceptions is max of 21 size but
there is no limit check for num_dscp_exceptions.
Check for max size for num_dscp_exceptions.
Change-Id: Id098da5231b4f3e40abe369e52960859091dc200
CRs-Fixed: 931435
qcacld-2.0 to qcacld-3.0 propagation
If reg domain changes during connection and the connecting channel
is not valid, driver may connect to an invalid channel.
In this case wlan_hdd_cfg80211_update_bss_db will return NULL and
thus sta will not be registered to TL. This will cause RX frames
buffered in TL layer and eventually low resource condition.
To avoid this schedule a disconnect for the session if
wlan_hdd_cfg80211_update_bss_db returns NULL.
Change-Id: I72b62ea7d47f53db55daea5725fa833fd1a45fb8
CRs-Fixed: 1034569
qcacld-2.0 to qcacld-3.0 propagation
When RRM measurement request is received, it triggers a RRM scan.
Now if DHCP is in progress when this scan is triggered, DHCP may
fail leading to disconnect.
To avoid this block the RRM measurement request till DHCP is
completed or DHCP timeout happens.
Change-Id: I9f84bdc04519363933b5de3229bee9d1c4f9fe43
CRs-Fixed: 1020108
qcacld-2.0 to qcacld-3.0 propagation
For supplicant there is no way to differentiate between connect
failure due to assoc rejected by AP and probe resp/auth/assoc
timeout.
Thus use cfg80211_connect_timeout API instead of
cfg80211_connect_bss API if connect request fails due to
probe resp/auth/assoc timeout.
Change-Id: I675fa17d1151e957a04050490f3efe343fdcc7c6
CRs-Fixed: 1056230
qcacld-2.0 to qcacld-3.0 propagation
Currently DSRC feature is compiled for all the
targets even if DSRC is not required.
Fix to protect DSRC changes with DSRC enabled feature.
Change-Id: I2e6f975366e1de8aa8afb818a073e1591f76d7fb
CRs-Fixed: 1053362
qcacld-2.0 to qcacld-3.0 propagation
At the time of driver load, sap session is opened as part of
hdd_init_ap_mode but in case of sap restart, sme_open_session
is called from sapFsm.
At the time of opening session, sme_open_session register
wlansap_roam_callback callback for connection status.
If this callback is not registered, HDD will not get connection
status and HDD will start cleanup after SAP connection timeout which
will result in SAP failure.
Need to register wlansap_roam_callback as part of sme_open_session
when session is not created as part of hdd_init_ap_mode.
Change-Id: Ifd2cec5fec432f1dcd2b39c59df1f1c5b13c55d5
CRs-Fixed: 1051097
qcacld-2.0 to qcacld-3.0 propagation
In SAP case there are two situation when driver needs to do vdev restart.
1)Hidden SSID: In case of Hidden ssid, vdev restart happens.
In process of restart first vdev stop happens then vdev restart and
finally VDEV_UP happens.
2)DFS detection on current channel: In this case due to DFS detection
driver need to change the current channel.
To change the channel vdev restart happens.
There can be a race condition when restart is happening as part of
Hidden ssid or switch channel, wma_send_beacon can do vdev up.
Fix this by not calling wmi_unified_vdev_up_send if restart is in progress.
Change-Id: I16c86105748b34b76ed575fc2e69a54cc7bab1c6
CRs-Fixed: 958230
qcacld-2.0 to qcacld-3.0 propagation
Check if the spectrum management, short preamble, immediate block ack
are supported by BSS before sending Reassoc request in roaming and
reset the corresponding capability info bits in Reassoc request if the
respective BSS does not support it
Git-commit: 1424fcbda6a8a71484ead54c059e17069f9895d7
Change-Id: Ied61d9b963b0b8176655fadaa7f1458cb1e830ef
CRs-Fixed: 1002770
qcacld-2.0 to qcacld-3.0 propagation.
TDLS teardown event sent by firmware is not processed whenever
host is in WOW mode which will lead to failure of TDLS
teardown
Fix is to handle this event in WOW mode.
Git-commit: 9cd6b405b3b75ff59febc30b5d8a6374b3f69675
Change-Id: I3649bfdf4381f49483a3ffe2c80d5339b52a3764
CRs-Fixed: 1009456
qcacld-2.0 to qcacld-3.0 propagation
Currently when PE queue is full, timer message gets queued at the
end of PE queue even when timer gets expired in time. This causes
delay in processing timer messages. This delay can be maximum if
timer message is the last message in PE queue. This can take substantial
amount of time to process timer message as timer message will be
processed only after processing of other messages. For instance,
if timer message processing takes substantial amount of time during
scan, it can delay sending max channel timeout and may result in
scan timeout. So, add timer related messages at
the top of PE queue to process those messages immediately.
Change-Id: Iccaf0075c97a7edd2c1de1d168f1a4e7d01381c2
CRs-Fixed: 936179
qcacld-2.0 to qcacld-3.0 propagation
Currently, capabilities su_beam_formee are set during association request
but not in re-association request. This can lead to failure in beamforming
after roaming. Fix this by updating them during roaming as well.
Change-Id: I28e86b93a5114f3b76733effe4428a92cf94b441
CRs-Fixed: 1033328
qcacld-2.0 to qcacld-3.0 propagation
Currently the p2p scan results are not flushed if the p2p
scan is issued for a single channel scan which would result
in a stale entry.
To address this, flush the p2p scan results before issuing
single channel p2p scan.
Change-Id: Iaaee1b4b4147e68e99927ea90082bc6f288a2e72
CRS-Fixed: 855782
Propagation from qcacld-2.0 to qcacld-3.0.
During TDLS session establishment, assume the peer is HT
capable STA. If WMM-QoS is enabled in the DUT, but the TDLS
peer does not have WMM/WME IE in TDLS Setup Request/Response
and has QoS Capability element, then the DUT does not
transmit data with QoS. Thus, the throughput gets decreased.
Fix is to enable QoS for the STA for TDLS session if the peer
is HT/VHT capable or WMM/WME IE is present.
Change-Id: Id74983f41ce5de797202edc501f3904d57535ec6
CRs-Fixed: 1053852
qcacld-2.0 to qcacld-3.0 propagation
DUT is enabling QOS based on fixed capabilities in host which
is leading to issue of sending data frames withou QOS header
even though peers are capable.
Fix is to ensure that QOS will be enabled by interpreting
WMM IE.
Change-Id: I08d12ccfc6f1587f228618f2add4b5a1549df8ad
CRs-Fixed: 955872
qcacld-2.0 to qcacld-3.0 propagation
Currently, the QOS capability of the TDLS link is updated
based on the BSS capability. Thus, if the BSS is not QOS
capable, the TDLS link eventually is not considered as QOS capable.
To address this, update the TDLS link with the data path with the
QOS capability based on the TDLS handshake between the peers.
The information of QOS is obtained to the driver through
the change_station callback from the supplicant and thus
the information is updated to the data path accordingly.
Also, this commit advertises that the station is QOS capable
by default in the TDLS setup request /response handshakes.
Change-Id: I6a36fd77b333e66e8c030f5230b4aaaee6d7a00c
CRs-Fixed: 776081
Propagation from qcacld-2.0 to qcacld-3.0
Add diag event for WOW reason code.
The event EVENT_WLAN_POWERSAVE_WOW will be used to
inform the WOW reason code.
Change-Id: I9273c9e737b97207ce0acee131ab6f3c19cd3e0d
CRs-Fixed: 1037383
qcacld-2.0 to qcacld-3.0 propagation
If SAP receive auth from an already connected STA, it post
eWNI_SME_DISASSOC_IND msg to SME to delete the STA context and
return. STA may try to send auth again as it didnt receive auth
resp.
Now many frames (probe req, auth etc) may get accumulated in PE
message queue and unless PE queue is fully processed SME queue will
not be processed and thus del sta will get delayed. This may again
cause STA to send more auth req and every time MC thread process an
auth req before the sta is deleted, eWNI_SME_DISASSOC_IND msg is
posted in SME message queue.
And if PE keeps on getting auth before the sta is deleted,
SME queue will pile up leading to crash.
To fix this do not trigger del sta if it is already in progress.
Change-Id: Icff3778d35ef7ea646463fe49c4335e260e9e156
CRs-Fixed: 982329
qcacld-2.0 to qcacld-3.0 propagation
If BSS is present in kernel and driver scan cache, supplicant
tries to connect to the BSS multiple time even if the BSS is
unreachable. Due to multiple failures to connect supplicant
disable the network.
To avoid this, remove the BSS from scan cache:
- If connect fails due to BSS unreachable i.e. probe
resp/auth/assoc timeout and scan for ssid failure.
- If disconnect is due to Link lost.
Change-Id: I3263dd02691000d83d4aef61c75b72d78c28f582
CRS-Fixed: 1039104
qcacld-2.0 to qcacld-3.0 propagation..
P2P action frame confirmation can be called from work queue
wma_mgmt_tx_ack_work_handler as well as from MC thread during
remain on channel completion. So it can lead to race condition
where frame confirmation is called twice and driver tries to free
frame buffer twice.
To detect duplicate use PE global lock in P2P action frame
confirmation.
Change-Id: Id193b5a979fad5effa7c6b00d89452ad876ae00e
CRs-Fixed: 1035077
Propagation from qcacld-2.0 to qcacld-3.0
Some of the logs are printing quite often and spamming the kernel logs.
Hence move them to appropriate log levels and remove the useless debug
messages.
Change-Id: If38d7a6a3cf13a5879f6a628d3d7eb4f5156a95b
CRs-Fixed: 1001441
qcacld-2.0 to qcacld-3.0 propagation
Add changes to support VHT transmit power envelope sub element in
channel switch wrapper.
Change-Id: Ieac517ec44238034e1a5539cbe10ebbefb30dd09
CRs-Fixed: 1052716
qcacld-2.0 to qcacld-3.0 propagation
Host should trigger bug report if HDD has zero scan results
to report to cfg80211 layer.
Add changes to trigger bug report if HDD has zero scan
results.
Change-Id: Ibac7fc5abfc860fc8759fe2cd029d19e2d6662a9
CRs-Fixed: 992733
When GETIBSSPEERINFOALL command is used to print IBSS peer info,
both creator and peer info are displayed.
Fix is to decrease the loop iteration by one so that creator
info is not displayed.
Change-Id: I1cc467d6fd4b3b29f86f01aa111235f04ddaef42
CRs-Fixed: 1061472
qcacld-2.0 to qcacld-3.0 propagation
If ll stats provided by FW has more than one peer then
Driver is allocating memory for all the peers but copying stats
for only first peer before sending it to upper layer.
Fix the issue to copy stats for all the peers.
Change-Id: I91b14377acfed6ccdde4315c4796ef1adbfd18c3
CRs-Fixed: 1018539
qcacld-2.0 to qcacld-3.0 propagation
There are some Access points that have not included the
capability field in the RSN ie's though the length for the
RSN ie's indicate for the presence of this field. This shall
result in the next byte after this RSN ie as the capability
field, thus resulting in the improper interpretation of this
field, the end result being a failure to connect to such AP's.
This commit introduces a work around to interop with such AP's
by appending the capability field with 0 value to the obtained ie.
It updates MPDU length of received RxPacket based on addition of
RSN Capability if it is missing in Probe response.
Change-Id: Ic599c8bdb19e368fefb13293499451e7ab38d517
CRs-Fixed: 667983
qcacld-2.0 to qcacld-3.0 propagation
Currently, sizeof(tAniHdr) is not added to payload length in
messages in wlan_send_sock_msg_to_app, ptt_sock_send_msg_to_app.
These missing lengths can cause user space
to drop these messages. Fix this by adding appropriate lengths.
Change-Id: I2609029445110e661440a7fc55f36801e4f72afc
CRs-Fixed: 985614
qcacld-2.0 to qcacld-3.0 propagation
In limInitPeerIdxpool, driver initializes gLimAssocStaLimit/
gLimIbssStaLimit entries of peer index pool. But there is a chance
of allocating less memory for peer index pool in peCreateSession
which can overwrite adjacent memory locations as maxStation can be
different from gLimAssocStaLimit/gLimIbssStaLimit. Fix this by
initializing maxStation entries.
Change-Id: I915e67fe7a15ebe622273af971d8a88ad78585cf
CRs-Fixed: 1025378
qcacld-2.0 to qcacld-3.0 propagation
Currently pmfComebackTimer is not initialized during roaming. This
can lead to error in pe_delete_session when driver tries to destroy
pmfComebackTimer. Fix this by initializing pmfComebackTimer during
roaming. Also, handle status eSIR_MAC_TRY_AGAIN_LATER as failure
during roaming.
Change-Id: Ic9c4e996c4078d09ef7cd9b3b073105d94eb53fb
CRs-Fixed: 1037640
qcacld-2.0 to qcacld-3.0 propagation
use_protection in erp IE was not reset after legacy AP goes away
which was leading to reduced throughput issue.
Fix is to reset protection bit and update the FW once legacy AP
goes away.
Git-commit: c7218f04e83907f1bba51131adf448360076d1d4
Change-Id: I4138434477e1de432b9547ce1aec4968a559188f
CRs-Fixed: 1006601
qcacld-2.0 to qcacld-3.0 propagation
Client connectivity with SAP fails after Association due to DHCP Timeout.
This happens as iwpriv command is issued to change the SSID type to hidden,
As part of this command VDEV STOP->VDEV RESTART->VDEV UP are issued to
firmware. DHCP frames are stuck in the driver queues as queues are paused
as part of VDEV restart sequence done for hidden SSID. VDEV unpause is not
done after VDEV up which leads to this issue. This fix unpauses the data
queue after the SSID configuration is done. Also, recalibration of Hidden
SSID setting is avoided if the required setting(broadcast/hidden SSID) is
already configured
Git-commit: a14bb2ab3423674c2b6a1a67f7a33232816af7f7
Change-Id: Ic31fc5c7fc8ea7d47358cf701e51fa830eefd2ab
CRs-Fixed: 990208
qcacld-2.0 to qcacld-3.0 propagation
User can configure the vendor IE and access policy from
application. Driver has to parse this vendor attribute and
update the protocol stack.
Change-Id: I176570336aea74b10c5a7e6ad42ed9854dc11b8c
CRs-Fixed: 1020078
qcacld-2.0 to qcacld-3.0 propagation
User configures vendor IE and access policy to allow or deny
association. PE should allow or deny connection based on access
policy and presence of vendor ie in probe request/association
irequest frame.
Change-Id: Ia2714ba07a67602e552a6f43928f02de0d4d0b9b
CRs-Fixed: 1020078
qcacld-2.0 to qcacld-3.0 propagation
During roaming the connected AP's operating channel is used instead of
preauth channel to fetch the band, based on which the data rate is set.
Due to this incorect data rate is set.
To address this, use the preauth channel during roaming to fetch the band
and set the data rate accordingly.
CRs-Fixed: 1017943
Change-Id: Ia3bf13c1a93a156eba8461bcdcf3490b9f49c2a2
qcacld-2.0 to qcacld-3.0 propagation
Currently, On sending disassoc from HDD lim will process
disassoc and clear's session of station and thus leading to
drop deauth in lim since context is already cleared. Hence
deauth frame is not sent from SoftAP although deauth command
is executed on hostapd_cli.
Fix will ensure to send disassoc command through new API
and doesn't clear's session and the same is cleared after
sending deauth.
Change-Id: I912a91f1df4001bb2d4f1f0d6031cc102d1bbd65
CRs-Fixed: 981121
qcacld-2.0 to qcacld-3.0 propagation
use the same reason code in the disassoc, which the upper
layer has passed to the driver
Change-Id: I6302a5c8318a8e3c1221b9272637455da4e7f150
CRs-Fixed: 852387
Propagation from qcacld-2.0 to qcacld-3.0.
Add sanity check based on TLV len in addition to the check
based on TLV tag id to ensure that if fw does not support or
is not sending rssi stats then HOST does not process it at all.
Change-Id: I92b197f9578aa003bf622617c363fea7334dbcb2
CRs-Fixed: 1023179
Propagation from qcacld-2.0 to qcalcd-3.0.
Add support to get per chain rssi from fw via
already existing WMI command WMI_REQUEST_STATS_CMDID
and then store it in the station_info structure defined
by cfg80211.
Change-Id: Id50c96dd322b5ca4db34cf2df901730d8b103251
CRs-Fixed: 1005367
qcacld-2.0 to qcacld-3.0 propagation.
Validate ssid length before accessing the ssid
if the length exceeds max ssid length then return.
Change-Id: I6902a8a3edf6547cf30d37fe5e435ad4f226ac46
CRs-Fixed: 1059205
qcacld-2.0 to qcacld-3.0 propagation
Validate cfg_ini before dereferencing the ini
parameter gEnableRoamDelayStats.
Change-Id: I0b2b78f8838cb1c46c60669b8f327ac18e863e80
CRs-Fixed: 1059205
There's mistake that pld_power_off calls pld_pcie_power_on. Fix
this by calling the correct pcie power function.
Change-Id: I9e968d749479856510e0dd7f32f5babc57b6ebed
CRs-Fixed: 1064058
The CDS config flag bpf_packet_filter_enable is not being populated.
Populate bpf_packet_filter_enable with the corresponding value from
the ini config.
Change-Id: Ia13386e74d43d7a5cad55e4c77f5eb8bcdc9f43b
CRs-Fixed: 1067041
The WLAN_FEATURE_MBSSID conditional compilation flag is no longer
needed since MBSSID is a required feature. Remove this flag and
any alternate code referenced in the conditional compilation blocks.
Phase 3 covers wlan_hdd_hostapd.c, with other *.c files to follow in
future changes.
Change-Id: I740344af895edadbc30cb8a3d8aea2909d9661cb
CRs-Fixed: 1066509
The WLAN_FEATURE_MBSSID conditional compilation flag is no longer
needed since MBSSID is a required feature. Remove this flag and
any alternate code referenced in the conditional compilation blocks.
Phase 2 covers wlan_hdd_cfg80211.c, with other *.c files to follow
in future changes.
Change-Id: Id7171529eaeefe652085bd1ed6377e3cde050694
CRs-Fixed: 1066411
The WLAN_FEATURE_MBSSID conditional compilation flag is no longer
needed since MBSSID is a required feature. Remove this flag and
any alternate code referenced in the conditional compilation blocks.
Phase 1 covers wlan_hdd_p2p.c, with other *.c files to follow in
future changes.
Change-Id: I7c68b0af7181cdabc324d94464ae6ceb8edd66df
CRs-Fixed: 1065945
1) Do not dereference mac_ctx for logging when mac_ctx itself is NULL
2) Use standard logging mechanism such as the QDF infrastructure for
logging purpose
Change-Id: Iedb4b5d20fd7aa85ff1b98e5fab4edb9de51f7b2
CRs-Fixed: 1065301
Once WMA context is retrieved, check if it has NULL value
before dereferencing it
Change-Id: I9896204933deb0588bca51e006e1477d5ed6c03e
CRs-Fixed: 1065301
Some HDD suspend/resume logging messages are vague or include redundant
status codes. Update these messages to reflect what actually happened and
remove redundant status codes.
Change-Id: I5c4a481a8fbbdebe88f2ecffffb1f2189922da4f
CRs-Fixed: 1062544
PM suspend and FW interrupt handler is running at same time
which is leading to multiple race conditions and host is missing
FW wake up interrupt which is causing APPS not waking up reliably.
Define .suspend_noirq and .resume_noirq callbacks and make
sure there is no pending FW interrupt before allowing PM
suspend to complete. Kernel PM suspend framework gives guarantee
that suspend_noirq and device interrupt handler can't run
simultaneously. This helps WLAN driver to reliably detect FW
wake up interrupt during PM suspend and fail PM suspend gracefully
if FW has requested for initial wake up.
Change-Id: Ic82d7dd6b6b743dd3f55b036e012ad0c8bebd50d
CRs-Fixed: 1060748
Register suspend_noirq/resume_noirq callbacks to kernel. It will
make sure no wake up is pending from FW and if initial wake up is
received then failing it should trigger resume.
Change-Id: Ie553dfc1401c2c6934961773bc98a24626a9cd34
CRs-Fixed: 1060669
Remove freeing of msg from helper function lim_delete_sta_util, since
caller of that will free the msg buffer at the end of function.
Change-Id: I2e0ee43dda9d5e30e86c4033eba934e4d7938887
CRs-Fixed: 1066025
Currently cfg.ini supports the following configuration items:
gRrmOperChanMax
gRrmNonOperChanMax
However these configuration items are no longer in use, so remove
them.
Change-Id: Ib6f1ea0b86d97132ebf58b09ad1699efc96e592f
CRs-Fixed: 1060775
Previously change "qcacld-3.0: Fix max dwell time for passive scan
beacon report" (Change-Id: Idc0b4f15f2b7464507aacfaefb99e1ba48ad1eca)
modified the default value of the "rm_capability" INI item, but it
also included other changes which incorrectly utilized the obsolete
gRrmOperChanMax & gRrmNonOperChanMax INI items. Since those INI items
are going to be removed from the code, the original implementation of
"qcacld-3.0: Fix max dwell time for passive scan beacon report" was
reverted. To correctly solve the original problem, bring forward the
change to update CFG_RM_CAPABILITY_DEFAULT.
Change-Id: I7a473a5babf7a7b32a633ea1fe6373574457dcb3
CRs-Fixed: 1060775
This reverts Change-Id Idc0b4f15f2b7464507aacfaefb99e1ba48ad1eca.
"qcacld-3.0: Fix max dwell time for passive scan beacon report"
introduced a change to allow some of the RRM parameters to be
controlled by the existing gRrmOperChanMax & gRrmNonOperChanMax INI
items. However those INI items are obsolete, having been replaced
with rm_capability. So revert the change, and a subsequent change
will update the default value of rm_capability to correctly solve the
original issue.
Change-Id: Ie67f9f95ea6832a5aec706a8ec0a42ee49b4844c
CRs-Fixed: 1060775
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default WCNSS_qcom_cfg.ini contains the following entry:
gDataInactivityTimeout=200
The associated default value within the driver is:
#define CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT (20)
These are obviously divergent and should be converged.
Note that this flag is used to change the value of the MAC CFG item
WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT, and this currently has the
following default value:
#define WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT_STADEF 20
Since all recent testing has used the default WCNSS_qcom_cfg.ini,
converge on the value defined there, 200, in all locations.
Change-Id: I7895911708d5d17f73971254865da2cc177a3c5a
CRs-Fixed: 1063037
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default WCNSS_qcom_cfg.ini contains the following entry:
ImplicitQosIsEnabled=0
The associated default value within the driver is:
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT (1)
These are obviously divergent and should be converged.
Note that this flag was added in a prior generation of the driver
during WMM-AC certification testing since some test cases would fail
when Implicit QoS was enabled. It is expected that all customers are
disabling this feature, and hence this feature should be disabled by
default within the driver itself.
Change-Id: If611b2b491b81b46c3254146ebd734dc244ffde5
CRs-Fixed: 1062978
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default WCNSS_qcom_cfg.ini contains the following entries:
Intf0MacAddress=000AF58989FF
Intf1MacAddress=000AF58989FE
Intf2MacAddress=000AF58989FD
Intf3MacAddress=000AF58989FC
The associated default values within the driver are:
#define CFG_INTF0_MAC_ADDR_DEFAULT "000AF5898980"
#define CFG_INTF1_MAC_ADDR_DEFAULT "000AF5898981"
#define CFG_INTF2_MAC_ADDR_DEFAULT "000AF5898982"
#define CFG_INTF3_MAC_ADDR_DEFAULT "000AF5898983"
These are obviously divergent and should be converged.
Elsewhere in the driver, in hdd_update_tgt_cfg(), is logic to
auto-generate MAC addresses if no addresses have been configured.
This logic currently checking:
static struct qdf_mac_addr default_mac_addr = {
{0x00, 0x0A, 0xF5, 0x89, 0x89, 0xFF}
};
Since this logic is aligned with the values present in the default
version of WCNSS_qcom_cfg.ini, update the CFG_INTF*_MAC_ADDR_DEFAULT
definitions to match.
Change-Id: Ic34bc67cffad44b4d61cdfeb06776d0e3a63889f
CRs-Fixed: 1062967
Currently cfg.ini supports an "isAndroidPsEn" configuration item.
However this item is no longer in use, so remove the obsolete support
for this item.
Change-Id: I632513b5e6365a658bb02e0a47a40de94b04856c
CRs-Fixed: 1060747
Currently cfg.ini supports the following configuration items:
beaconEarlyTerminationWakeInterval
enableBeaconEarlyTermination
However neither of these is actually used by the driver, so remove the
obsolete support for these configuration items.
Change-Id: I41caec6697c0ff37efcf7db5dd7ab27ff2cdee95
CRs-Fixed: 1060657
Currently cfg.ini supports a "gFlexConnectPowerFactor"
configuration item, and this is used to override the
WNI_CFG_FLEX_CONNECT_POWER_FACTOR entry in the MAC CFG database.
However this MAC CFG database entry is no longer in use, so remove
the obsolete support for this configuration item.
Change-Id: I660a18a2663ca7ce29ca2c8bacf4a869de684ffb
CRs-Fixed: 1060643
Currently cfg.ini supports a "gEnablePhyAgcListenMode"
configuration item, and this is used to override the
WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE entry in the MAC CFG
database. However this MAC CFG database entry is no longer in
use, so remove the obsolete support for this configuration item.
Change-Id: I24a0dcf3d834ec794d88d16ca092ee25084183ce
CRs-Fixed: 1060636
Currently cfg.ini supports a "gNumRxAnt" configuration item, and this
is used to override the WNI_CFG_CURRENT_RX_ANTENNA entry in the MAC
CFG database. However this MAC CFG database entry is no longer in
use, so remove the obsolete support for this configuration item.
Change-Id: I8a8f7ca382262edee187013425fd41598783342c
CRs-Fixed: 1060626
Currently cfg.ini supports a "gEnableAutomaticTxPowerControl"
configuration item, and this is used to override the
WNI_CFG_TX_PWR_CTRL_ENABLE entry in the MAC CFG database. However
this MAC CFG database entry is no longer in use, so remove the
obsolete support for this configuration item.
Change-Id: I8ca653bc75c18692519ff1d88f52441e7f0375f5
CRs-Fixed: 1060597
Currently cfg.ini supports a "gEnableCloseLoop" configuration item,
and this is used to override the WNI_CFG_ENABLE_CLOSE_LOOP entry in
the MAC CFG database. However this MAC CFG database entry is no
longer in use, so remove the obsolete support for this configuration
item.
Change-Id: Ic8b7f4f522e910476273dd428bbb471a19cbe79f
CRs-Fixed: 1060579
Interrupt handlers do not have valid process context and hence
current pointer is not valid for software/hardware interrupt
handlers. In WLAN log to user space API current process name is
logged using current->comm but hardware/software interrupts do not
have corresponding current pointer because they use current pointer
of interrupted process. Make changes to not to log process name when
log message is generated from hardware/software interrupt handlers.
Change-Id: I42420c501f9e7161112c5210909f83755ba4813e
CRs-Fixed: 1065898
In softap case DEVICE_IFACE_OPENED flag is not set/cleared when the
interface is opened/stopped(hdd_hostapd_open/hdd_hostapd_stop).
During the STA+SAP concurrency when the STA is turned
off, during the interface down it check's if any interfaces are opened,
if no interfaces are opened it starts the timer to close the modules.
Since the interface opened flag is not set for softap case the timer
is getting kickstarted and resulting in closing the modules even when
the SOFTAP is running.
To migitate the issue, set/clear the DEVICE_IFACE_OPENED in the adapter
even for SOFTAP.
Change-Id: I9e3f1391d92473d8a189d9fee6523ec3a7554c96
CRs-Fixed: 1065130
When FW wakes up APPS processor from power collapse it sends 120
bytes of payload piggy backed to wake up event handler. There are
some types of frames for which packet stats is not maintained.
Clean up log messages in WMA such that error message is not logged
to console.
Change-Id: I31d032874e5c9b8773a4e8d5067923c1dd20e23a
CRs-Fixed: 1065309
Send vendor specific TPC report IE as part of scan request IE to firmware.
This IE will then be included in probe request sent by firmware for scan.
Change-Id: I16e067de3980faa773d5027306795ca8e2a3c247
CRs-Fixed: 1062155
When receiving a power save request from user space, disable any active
power save timer and start a new one using the timeout supplied from
user space.
Change-Id: I88299776a973118e1bdba8cfd5fa4c8018f0758a
CRs-Fixed: 1065234
When coniguring NS Offload via Cfg80211, configure firmware NS Offload
to match via HDD.
Change-Id: I8d95be773ff29512ebb72a8eb5e9dddbc9e675dd
CRs-Fixed: 1064168
qcacld-2.0 to qcacld-3.0 propagation
In the current implementation, there is no log of instructions
set by framework.
To resolve this and understand the packet filters,
log of set instructions is added.
Change-Id: Ibe3c23de374261741f78a76c05c97b2342e9064e
CRs-Fixed: 1013062
Currently in wma_wow_wakeup_host_event, NDP WOW handler code is doing manual
pointer arthematics followed conversion to event tlv. This is duplicate effort
as necessary wmi event struct is already available. Remove this and directly
use wmi event struct.
Change-Id: I90da473d773781d007f4932d6ffbec389d5a2766
CRs-Fixed: 1058503
This is qcacld-2.0 to qcacld-3.0 propagation.
Change NDP_SERVICE_INSTANCE_ID from 16 bits to 32 bits
Change-Id: I4fab1af6d9b8e34396bb3679f112c7f29bbe9f93
CRs-Fixed: 962367
Fix below build error:
qcacld-3.0/core/hdd/src/wlan_hdd_softap_tx_rx.c:605:2: error: implicit
declaration of function 'cds_host_diag_log_work'
[-Werror=implicit-function-declaration]
cds_host_diag_log_work(&pHddCtx->rx_wake_lock,
^
cc1: all warnings being treated as errors
Change-Id: Ia1fe71abd783e24e91ae197db4a6b8fcc0b28ec7
CRs-Fixed: 1065872
When NS offloading is enabled, and we reach the maximum number of supported
addresses, disable NS offload so Apps can handle it.
Change-Id: I8312d5e8091cfbdc1f6e3e1e1093ae1dca0c096c
CRs-Fixed: 1063737
In sap_random_channel_sel function, new channel and channel width will
be calculated based on the available channels. New channel width is
populated to only new_chanWidth and this new channel width value will be
assigned to new_ch_params in wlansap_set_channel_change_with_csa.
This channel width from new_ch_params will be used as new channel width
on restarting SAP on Radar detection.
wlansap_set_channel_change_with_csa will get called only when radar is
detected when SAP started beaconing (after CAC wait).
If radar is detected during CAC_WAIT state, new_ch_params will not be
having new calculated channel width, it will be having zero, So during
this scenario SAP will be restarted with 20MHz bandwidth.
To fix this, populate new channel width to new_ch_params in
sap_random_channel_sel along with new_chanWidth.
Change-Id: If07f875dda3a4f6d29480c84b784ca7995c19c7f
CRs-Fixed: 1063038
(cherry picked from commit 714eb0a7fae9c4e50b1c52fa27001705991ab6eb)
Peer create is called before peer delete which
triggered assert at firmware.
Remove the duplicate peer entry before creating
a new entry for the same peer by serializing
the messages.
Change-Id: Ibf044df5271e9cd2fc3e869bb28d101d3ea9ad43
CRs-Fixed: 1052279
(cherry picked from commit fe914b42b15af00236e3db8e0d6c7d408c5bc4be)
As part of MBO(Multiband Operations), the Assoc IE's including
MBO IE need to be sent to FW as part of Roam Scan Offload command
so that these IE's can be used later in firmware initiated roams
Change-Id: Ia873c65a7813ae63d8e53d7445095990b0c2fed7
CRs-Fixed: 1039969
(cherry picked from commit 0af3520421400b65002604e0a3a9c7c714cc1e21)
qcacld-2.0 to qcacld-3.0 propagation
Due to race between user triggered disconnect and OTA disconnect,
On receiving OTA disconnect PE sends DISCONNECT_IND to SME and
waits for conformation from SME. By the time if SME already received
disconnect from user it will give PE DEAUTH_REQ instead of DIASSOC_CNF
messgae. Upon receiving this PE will do the clean up and will send
DEAUTH_RSP message. SME will also process DISASSOC_IND and will send
eSmeCommandWmStatusChange. But this will be in pending queue as user
triggered deauth is in progress as a SME active command. If this is processed
after user initiated disconnect command, HDD will get two disconnects which
cause mess up of eConnectionState_Disconnecting/eConnectionState_NotConnected
states in hdd disconnect handler.
Fix is to remove pending eSmeCommandWmStatusChange command after
DEAUTH_RSP from SME.
Git-commit: 7f0986129d00270d1b7bba3d671bba79ba323933
Change-Id: I004834785491ab7cf3e90371dfd1910c25d0bbef
CRs-Fixed: 1003374
(cherry picked from commit 2b4f56c8dcbc292391d705993c7cd874c3dea008)
Link speed is returning incorrect value.
Fix is to allow link speed only for P2P GO/Client. Return error
for other device modes, as link speed feature in FW is only
supported for P2P interfaces as it was implemented to support
Miracast.
Change-Id: I5747d9ebbcbac3ae1ebf69f261d721a96e22d53c
CRs-Fixed: 1063541
(cherry picked from commit 9327fc30217078d165f7be85a3fb277e9d09e669)
(cherry picked from commit a346e371732b5fc24f171a3bde4666e7950f3c01)
qcacld-2.0 to qcacld-3.0 propagation
Kernel updates RSN IEs in BSS table only if it receives the Probe
response. Hence set fProbeRsp flag in BssDescriptor if PNO found
indication is due to probe response.
CRs-Fixed: 907635
Change-Id: I2bfee96c5a2abc6b0730c11e0c694ede81a69a21
(cherry picked from commit abb1af07e98ca6581186538a04a735b33e0ca66f)
(cherry picked from commit 5985919d63cb0e58920fc0022f0807ae36fa19fa)
Propagation from qcacld-2.0 to qcacld-3.0.
While initiating TDLS connection, overflow occurs when the
minimum time for TDLS stats is less than 1000 ms.
To avoid the overflow, the default time is kept as 2000 ms
and minimum time as 1000 ms. To improve the TDLS discovery,
packet threshold is changed to 40 packets.
Change-Id: Ibbb422c739b5927c5f2d788712f376a1cfa42930
CRs-Fixed: 1020247
(cherry picked from commit f9fe1c7d3a55caf8cf263f280508a91f0fe06a96)
(cherry picked from commit 388cc4379009f9e7a09fbfec6a846bcc80452d43)
Propagation from qcacld-2.0 to qcacld-3.0.
The device supports only 20 MHz while operating in IBSS
mode in 2.4 GHz band. There is no support in firmware to
do OBSS scan in STA/IBSS mode. Thus, the device will not
start IBSS when the configured bandwidth is other than
20 MHz in 2.4 GHz band.
Update channel width as 20 MHz if the device is in IBSS
mode and is operating in 2.4 GHz.
Change-Id: I01fa0df44f8b6f9ada835c0fc80a46eb0da6d6d7
CRs-Fixed: 1009922
(cherry picked from commit 5167d6c9b4271f08d3e819a0e9a7da1142630094)
(cherry picked from commit 5baf73480e91e68a2b5dfbe2a6981003d064fc9c)
qcacld-2.0 to qcacld-3.0 propagation
Add radio index at the end of wlan svc msg in TLV format inorder
to maintain the backward compatibility with user space application
like wlan_services and cnss_daemon.
Change-Id: If578d66eada17784eef7daafa7351df95fc74f5a
CRs-Fixed: 1019664
(cherry picked from commit 6a1d4b9d33b10ed50990efc825e530e020661153)
(cherry picked from commit 53627e3d41d55a9d71889443daa2ab769227c170)
qcacld-2.0 to qcacld-3.0 propagation
Function wlan_hdd_tdls_connection_callback takes few milliseconds
to complete its functionality which can effect roaming delay.
Move this functionality after enabling queues to reduce roaming delay.
Change-Id: I78d7b4deadb6cccdfd81f8431b6dd7c013e05340
CRs-Fixed: 978673
(cherry picked from commit a86f1940b048ef49dae99c903c0dee3400444068)
(cherry picked from commit 827dea48dfc7c6d25e77ade6383645f866991e5e)
qcacld-2.0 to qcacld-3.0 propagation
Currently session id is not initialized for auth retry timer
during roaming which can result in error in lim_deactivate_and_change_timer
during preauth. Fix this by initializing session id for auth retry timer.
Change-Id: Ia7093802c9240c967378de54695a258d80c395de
CRs-Fixed: 1043384
(cherry picked from commit 2095a2a7167cb8ca5fb23aa339639f360709edbb)
(cherry picked from commit 9232eaf4e118445b187252c8b8c80249da16c624)
qcacld-2.0 to qcacld-3.0 propagation
It could be possible that after SSR, pMac context is lost,
due to which the management frame callback will not be invoked
and none of the management frames will be processed,
resulting in scan and connection issues.
To address this, Register management frame callback during wlan re init.
CRs-Fixed: 962187
Change-Id: I5429da9dbc33c7e2044d5a4daa1c8d3d7af241ee
(cherry picked from commit aa3229ce46b3b8922d6dbad512aeb038df15530a)
(cherry picked from commit 48a63b11432f5879cc5abaf2cff78977253d5d41)
qcacld-2.0 to qcacld-3.0 propagation
The wait time in go negotiation response is set to 100msec by
the wpa_supplicant. Due to which, there could be a possibility
for the DUT to miss go negotaition confirmation frame if the
ROC times out, resulting in connection failure.
Also the wait time for GO negotiation confirmation, invitation
response and provisional discovery response frames are set to 50msec.
To address this, increase the wait times for these response frames.
CRs-Fixed: 1050955
Change-Id: I1fa8a0ae669293ab27c5b4f43f6f33465ff3f2c0
(cherry picked from commit 9481683888c272bacddd2d7983b909157a576a97)
(cherry picked from commit a5b48ffdb93f686e2df0291143549e657a3eb285)
qcacld-2.0 to qcacld-3.0 propagation
Convert the pr_info logs to qdf_trace logs with error log level,
so that the logs are displayed both in kmsg as well as in logger
app logs.
CRs-Fixed: 956590
Change-Id: Ib6ed5744cf38924a6b1dc20e3291639554c42c6b
(cherry picked from commit e7d8f2a4214e32aa30152aff806c0caa15c78787)
(cherry picked from commit ecb280f37bfea24afd6996480ca70ee0ef15de94)
qcacld-2.0 to qcacld-3.0 propagation
Add error log to print channel number and frequency in
wlan_hdd_cfg80211_inform_bss_frame() if it fails to retrieve the
channel.
CRs-Fixed: 1010559
Change-Id: I8fe77db17ffa40ea07206a3701c02f02564ea8fd
(cherry picked from commit c56aea24166cbdcbfe4acc44fc3cb8464ddaabca)
(cherry picked from commit 9cd27801a80b2b71959289efd66f99e4ac32e1fc)
qcacld-2.0 to qcacld-3.0 propagation
Currently driver is setting TDLS supported capability only in case
of tdls peer discovery response. In case of explicit trigger discovery
is optional, so it could be possible that the false capabiltiy is sent
as tdls not supported though it supports when link is enabled using an
external trigger.
To address this, set the tdls supported capability during the tdls setup
confirmation.
Change-Id: I13041f2b03e749617e58a74d82bdf77d9e6886ed
CRs-Fixed: 988686
(cherry picked from commit fab4eefd36b1b452dc96149beab1536414571e06)
(cherry picked from commit db27ba3e3d92af5d3d361f9ad59c4cd9213b31cd)
qcacld-2.0 to qcacld-3.0 propagation
In earlier android builds PMF was not enabled by default in the supplicant
unlike the latest builds. So even if PMF is set as optional, driver was
mandating it. So if we try to roam to an AP which is not PMF capabale
driver would simply drop the connection.
To address this, allow non PMF connection if PMF is set as optional by the
supplicant and the AP is not capable.
CRs-Fixed: 1018482
Change-Id: Ideecb861dcc362f94a73b47d1a4766d621a38214
(cherry picked from commit ec4d9feff5461a575b2988b38428b89cf6337584)
(cherry picked from commit 54b657e08ac628616b8cf6cbddfb9204ecf28ce5)
qcacld-2.0 to qcacld-3.0 propagation
Sometimes it is possible for the host to receive the ack for
go negotiation request after the go negotiation confirmation
is sent. So supplicant assumes go negotiation confirmation is
success though it is not and results in connection failure.
To address this, drop the pending ack for the go negotiation
request. so that the supplicant will wait for the ack of the
negotiation confirmation.
CRs-Fixed: 1032185
Change-Id: I54f305319e23b1ffcbd54cc6e7dcc74d39a2e511
(cherry picked from commit 83df79da05419397ef85b77acef353a9ffb05ced)
(cherry picked from commit f13a15829f20a644e5cbaad4a1783a33d0f78014)
qcacld-2.0 to qcacld-3.0 propagation
We do not support SAP on DSRC channels, so skip the DRSC channels
during sap channel initialization.
CRs-Fixed: 1050454
Change-Id: If5544027bca7bc0a578978dfe91adc37e897e992
(cherry picked from commit 0005bfa2adcbe4bc06b96523bb387a7df902a6c7)
(cherry picked from commit b8f62655ae5a86b745ca099fa371914a702abf59)
qcacld-2.0 to qcacld-3.0 propagation
During P2P functionality, Host will send GO NEG REQ and
receives ACK completion from firmware which will be queued
to indicate HDD. Meanwhile if host receives GO-NEG RESP it
will be sent directly to HDD via function callback. In HDD as
we got GO NEG RESP before ACK completion for GO-NEG REQ, HDD
will generate pkt completion for GO NEG Request.
Now GO NEG CONFORMATION frame will be sent and driver will be
expecting completion for this. The GO NEG REQ ACK completion
which got buffered in PE will be delivered to Supplicant and
Supplicant assumes that this is the ACK for GO NEG CONF frame.
This causes early termination of remain on channel due to which
firmware may drop the GO NEG CONF frame and may not retry as ROC
is terminated.
Fix this by making ACK Completion indication to HDD via function
callback.
Git-commit: 32ddf4196f423b8eaea7ec6c0816e2961aa7fc45
Change-Id: I0dd3acb236b270839649d2becfdc007e7aae9fdd
CRs-Fixed: 1012547
(cherry picked from commit a3996d421de7f55d5a6f7da19d7ff4b568ce7c50)
(cherry picked from commit 42405db3bd3f4b10800cde8cdcd14f521461a5a7)