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)
qcacld-2.0 to qcacld-3.0 propagation
As part of "change iface" in HDD, host does close session (VDEV DELETE) and
as part of "start ap", host invokes open session(VDEV CREATE).
Link Layer(LL) stats query is received in host driver in a corner/race
condition between the events "change iface" and "start ap" which leads
to an exception issue in firmware since FW receives REQUEST_LINK_STATS WMI
for a deleted VDEV.
This fix adds a boolean variable vdev_active to vdev structure(wma_txrx_node),
which is set to true once vdev is created. vdev_active is checked for TRUE
before sending LL stats query to FW with WMI command.
Git-commit: cf7bf99eb9a71b1043cd230aee704c44c62c98ff
Change-Id: Ifcc986c3352e4e66da35b8d6c489d98dbe61401d
CRs-Fixed: 987734
(cherry picked from commit b82c03d8686a57b120f991ffbb9b9801c908aac8)
Send HT/VHT CAPs IE to firmware per band. This will allow certain
features like LDPC to be configured per band.
Change-Id: I21c83af984f9be3ade46121ef148b52568c3ad0f
CRs-Fixed: 1055774
(cherry picked from commit 2a94c5666ea0c66477d0086c8d5a401db8e4afcf)
This reverts Change-Id: I12e1db54468c7215318333b55d991c53886d21ff
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Getting/setting unsafe channels and
dfs nol are no longer be present after reverting.
CRs-Fixed: 1061220
Change-Id: I110df8d25464ff0d70428aa275538a98667ac57d
This reverts Change-Id: I3d3de3789a7d560ed171294fa9a1ebe6389746a7
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. PM suspend_noirq/resume_noirq are
not available after reverting.
CRs-Fixed: 1060669
Change-Id: I2b1300bbb19d2e4975bb86a82a892501b993827b
This reverts commit Change-Id: Ib16a4e86f2378a8ca3f7eaada54fc7a3d67a886b
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Race condition between PM suspend and fw
irq will occur again after reverting.
Change-Id: Ida519d607df1e1e183c7af445d48be2f50101ce7
CRs-Fixed: 1060748
In current codeflow, we are maintaining the length of the TSO segments
belonging to one jumbo packet inside tso_info, which is common for
all the segments of one jumbo packet. This works if the length of
the segments (frag[1]) is the same. In case it is not, it ends up
assigning incorrect length to all the segments. This is resulting
GMS login failure.
Fix issue by maintaining the total length of the segment in the
qdf_tso_seg_t structure.
Re-factor code for easy readability
Add TSO_DEBUG prints which can be enabled (compile time) to debug
TSO issues
Change-Id: Ie0cf8434902c0713ef8d36dc36c105afa6b5eabc
CRs-Fixed: 1062556
(cherry picked from commit 0a851f054171cf4b2f5bd7e8cd6841e90d999928)
When pktlog is enabled in INI (i.e. no iwpriv commands are issued),
store the events forwarded from firmware into the pktlog buffer.
Host will not honor any pktlog disable command if pktlog enable command
was not sent previously with WMI_PKTLOG_ENABLE_FORCE.
Change-Id: Id0b7dd6b4573147eef9b80b57bc78284e52807ec
CRs-Fixed: 1062295
(cherry picked from commit 07e5fbfcf0ec1ca7e92721a523e401e70887f487)
Fix below issues:
1) check cds_get_context results before use
2) remove function calls from ASSERTs
3) make sure variables are initialized before use
4) check pointers for NULL before dereferencing
Change-Id: Iac92e6f2d1030a7dd12469e34341135bea7c781f
CRs-Fixed: 1047286
(cherry picked from commit a2547fd35fc517abfbc96363768b5d036d59d057)
qcacld-2.0 to qcacld-3.0 propagation
Currently driver block wpa_supplicant context for response
for 5 / 5 seconds for LL stats and firmware memory dump
feature respectively. But in M framework watch dog will
be triggered after 1 second because driver is holding
the context longer, which lead to wd thread starvation.
As a part of this fix, block time is reduced to 800 msec
respectively in both cases.
Change-Id: I02cc7623bc0bc6004ece972f8c4a5e8e751131d2
CRs-Fixed: 951119
(cherry picked from commit 6f39e5ac60eac096107a36b8feb9218ceeef6c38)
qcacld-2.0 to qcacld-3.0 propagation
Host should not send the ipa_enable_disable cmd to firmware
during driver unload.
As a part of this fix, Host discards ipa enable/disable
commands during driver unload.
Change-Id: Ib7fe63463eaaa2f124428c73857f19e65bce67a3
CRs-Fixed: 994677
(cherry picked from commit 67c30cf80f9ff7e05637a08f5b25cec6fa20c38e)
qcacld-2.0 to qcacld-3.0 propagation
During driver load, host configure multicast address
filter list count as 5 though firmware support upto
16 addresses. Because of this firmware is not filtering
the address beyond 5.
As a part of this fix, increase the mc filter list count
to 16.
Change-Id: I885dfbf9ad4740c4404701a24bb8aa6eb7b2dbc6
CRs-Fixed: 986165
(cherry picked from commit d04517eb4352377a3eac92ef06e96bc207a6c653)
qcacld-2.0 to qcacld-3.0 propagation
During suspend request host send wow cmd to fwr and set
target suspend true so other wmi cmd won't send to fwr.
While waiting for wow ack/nack from fwr, if time out
happens then host inject crash and start self recovery.
But inject cmd is getting dropped due to target suspend is
set.
As a part of this fix, reset target suspend flag if timeout
occur for wow ack so self recovery can be triggered.
Change-Id: I1db556f9aa83fbf1324ddc1c1d205b0217b11bc2
CRs-Fixed: 983694
(cherry picked from commit 7aa878de9ba001e573cb63b52ddf4d78543bb673)
qcacld-2.0 to qcacld-3.0 propagation
If SSR/ram dump collection is in progress, rmmod waits
for it's completion for 75 times. But for high latency
target SSR/ram dump collection is taking more then 75 sec.
As part of this fix,For HL target set retry count to 200.
Change-Id: I8cc052c748e6a6dfff45675f9c15ead00b002a11
CRs-Fixed: 974023
(cherry picked from commit f788043e64fe707c495b2c0baee6e6d116268068)
qcacld-2.0 to qcacld-3.0 propagation
Currently for low latency target, host is waiting for 1 sec for download
complete, which is blocking MC thread. Due to this MC thread is not
serving the SME queue and which triggers the active cmd time out.
As a part of this fix, MC thread waits for download complete only
for those frame which needs OTA.
Change-Id: I25f45e969dd5bbf2341d586265d84919755f6ed3
CRs-Fixed: 967842
(cherry picked from commit c54a6f76ec228eaca7fa5f1f529d29011a83c445)
This is a qcacld-2.0 to qcacld-3.0 propagation
This commit allows the upper layers to send setband request to
driver using vendor command.
Change-Id: I3ce769e5426a5afb85979b4e19dbabd234f18e98
CRs-Fixed: 879527
(cherry picked from commit 0e0eaa6aa061031c5cf5314497b9d41eb0aef850)
qcacld-2.0 to qcacld-3.0 propagation
Observed kernel panic due to the race between initialization of
logging wait_queue in supplicant thread context and the same
uninitialized wait_queue is referenced in MCThread context.
To mitigate this issue, don't send logs to upper layers if logging
service is not initialized.
Change-Id: I96e3efb3947279be64b83a27a7e2458d04021c4e
CRs-Fixed: 963275
(cherry picked from commit fe200c52491b12087752a46bc602288adaf26557)
This is a qcacld-2.0 to qcacld-3.0 propagation.
In present code, Host sets thermal power limits to 10dbm,
for both 2g and 5g, leading to connection failure.
Set Thermal Power limit to 30dbm for both 2g and 5g. So
that FW takes the default values from BDF.
Change-Id: I053108babfaa9ac2629cdb107ceb507c2f8891e5
CRs-Fixed: 1011361
(cherry picked from commit b25fb5987e792d286542e09f8d8fa30223115453)
qcacld-2.0 to qcacld-3.0 propagation.
There is a possibility of buffer overflow while processing
GET_CFG IOCTL to retrieve ini parameters from a global array,
because of invalid if condition.
Resolve buffer overflow issue by correcting if condition.
Change-Id: I8881abde0b543d7b1562968ecbb6240a0ca552a3
CRs-Fixed: 1000853
(cherry picked from commit 2dff47b5bc87559c430da20bf563975749b2a8cd)
qcacld-2.0 to qcacld-3.0 propagation
In SME, while processing set beacon parameters, free
dynamically allocated memory, once done with the it.
Change-Id: I281ef5eb9492fe75d639b2bef7ed588aacee8e74
CRs-Fixed: 974567
(cherry picked from commit feaa49e6b906f33a98a11f5ee35c947abe5d28bd)
qcacld-2.0 to qcacld-3.0 propagation.
Allow IPv4 and IPV6 offloads to FW by enabling ARP and NSoffload feature
by default even if it's not explicitly enabled in the ini file.
Change-Id: I9af928f5ea6e2b9589d3c8666abfa3927fe5e908
CRs-fixed: 1053887
(cherry picked from commit e0dba23a18a4484ae799e9db1eb867446e9ba0c8)
qcacld-2.0 to qcacld-3.0 propagation
Currently the following private ioctls are only supported on STA-type
interfaces: set_ldpc, get_ldpc, set_tx_stbc, get_tx_stbc, set_rx_stbc
and get_rx_stbc. Update the driver to support these commands on
SAP-type interfaces as well.
Change-Id: Ic135dcbd74918a2d27802e3edc34444545aa18ff
CRs-Fixed: 844097
(cherry picked from commit bf5ed2ca492bbe66b8825ad68ce975454f989dd6)
qcacld-2.0 to qcacld-3.0 propagation.
Added ini parameter for extscan so that scan can be aborted
if extscan ini is not enabled.
Change-Id: I7bfcd88901512de6b70af94d1ebd76894bb14755
CRs-Fixed: 927236
(cherry picked from commit 5af7ebadac8ea8ccd11af6c03d5d3a4cf209e85b)
qcacld-2.0 to qcacld-3.0 propagation.
If ACS is enabled in hostapd configuration,hostapd sends
a list of channels to HDD for softap bring-up. If hostapd
finds a invalid/unsupported channel in its channel list,
it will send a 0 for that channel. Since HDD always takes
the lowest channel as starting channel for scan, the scan
will always include 2.4Ghz channels even if channel mode
is set to a. Hence HDD should ignore these invalid entries
in channel list.
CRs-fixed: 959490
Change-Id: Iddaf6c4ba14e22b476f22f1f098faf726f4407ec
(cherry picked from commit 9f410939ff801316a153c44c603ce575fe6d15d5)
qcacld-2.0 to qcacld-3.0 propagation.
Log success or failure status whether disassoc/deauth sent successfully
over the air.
Change-Id: I527bd35546eb21157498f235fe74710dd3f7688e
CRs-Fixed: 1016866
(cherry picked from commit d081fef10c8440830cea8d6e598087d5021687ae)
qcacld-2.0 to qcacld-3.0 propagation
From Kernel-3.18 onwards pending scan request is handled
as part of NETDEV_DOWN event, by invoking the cfg80211_scan_done
callback which frees the scan request structure. To support this,
driver will not invoke scan_done_callback if interface is down.
In case, if interface down and up are called back to back there
is a chance that kernel frees scan request as part of NETDEV_DOWN
and after which before driver triggers scan_done_callback if
interface is made up, driver scan_done_callback is through its
execution and accesses the freed scan request results in kernel
panic.
To mitigate this, don't return from hdd_stop until scan request
is aborted. Though this fix is to avoid kernel panic due to 3.18
kernel specific changes, it is acceptable across all the kernel
versions.
Change-Id: Iba8bd7a32fac33e8a0c3eea293aad682a1105397
CRs-Fixed: 977264
(cherry picked from commit 153dba8b716c3d10a1745df6e2da09c0c05d9b01)