qcacld-2.0 to qcacld-3.0 propagation
Add iwpriv interface to get channel width when working in sap mode.
Change-Id: I9900655861032636af1b4147ec6322e5aa76e614
CRs-Fixed: 1009861
qcacld-2.0 to qcacld-3.0 propagation
In SAP DFS test, DUT can't goto suspend if SAP started
on DFS channel and later switched to non-dfs channel due to
Radar detected.
During SAP Starting, driver will acquire the wake lock
for dfs channel by hdd_hostapd_channel_prevent_suspend
in the eSAP_CHANNEL_CHANGE_EVENT event handler. But the SAP
is still in STOPPED state. We acquire the wake lock again
after SAP started in eSAP_START_BSS_EVENT event handler.
This causes driver to acquire wake lock twice for the
same dfs channel. And finally causes the device can't
suspend normally.
This change add check in eSAP_CHANNEL_CHANGE_EVENT
handler to only call hdd_hostapd_channel_prevent_suspend
when SAP is in started state to avoid lock/unlock mismatch.
Change-Id: Ief90697b7b6f19f6fcf0ab94f973a37e74ca3366
CRs-Fixed: 972657
Propagate from qcacld-2.0 to qcacld-3.0
Add htt_htc_pkt_free() in htt_h2t_dbg_stats_get() to avoid memory
leak in the error case.
Change-Id: Ie0cd4939706046370c7a0ce4053be1103637f769
CRs-Fixed: 979671
Propagate from qcacld-2.0 to qcacld-3.0
Currently there is no QCA9379 device id in USB
device id table. Add USB VID and PID for QCA9379.
Change-Id: I7ae39513ff5fc1f0b36f3c05dc0e783532a8d4a3
CRs-Fixed: 1048598
Enabling flow steering may send the peer map/unmap events
from the target to the host in a random order.When host
does not receive them in expected sequence, there is an
issue with peer management.Fix the issue by making the
firmware send the events through a single copy engine in
the same order they were generated and thus host can handle
the events properly
Change-Id: If2396a0bf943f2833e1e3a44d778054a76c65ada
CRs-Fixed: 1078976
Add a new mode with a pair of new NAPI events, NAPI_EVT_USR_SERIAL
and NAPI_EVT_USR_NORMAL, which allows client force NAPI to move all
instances onto the same CPU and peg them there (blacklist); and
to move back to normal mode of operation.
This part implements the HDD portion. Goes with the corresponding
HIF code.
Change-Id: I4c45d18348ef27d8814c5d0321d1fd13c96fff34
CRs-Fixed: 1078976
This is a qcacld-2.0 to qcacld-3.0 propagation.
In hdd_wlan_re_init(), SSR timer is deleted before WLAN reinitiation is fully
complete. Between SSR timer delete and WLAN reinitiation is complete,
there are NL socket related calls which can sleep under low memory conditions (or etc)
because of which timer is deleted but isLogpInProgress is not reset to FALSE.
This can potentially fail the south-bound requests for a brief amount of time.
Hence it is always better to delete the SSR timer only after
WLAN reinitiation is complete.
Change-Id: I699438ff3e0c2f7b81e0bbf81be6f514841e194b
CRs-Fixed: 1017011
This is a qcacld-2.0 to qcacld-3.0 propagation.
pr_debug() should not appear by default in kernel log (kmsg).
DEBUG is a kernel macro, since host driver is using the same name macro,
pr_debug log statements are appearing in kmsg.
Fix this by moving the code under DEBUG to WLAN_DEBUG and
remove DEBUG macro from Kbuild.
Change-Id: I5bb385f91f9b6ba15629a5878625fefc21d4a7e1
CRs-Fixed: 1003261
This is a qcacld-2.0 to qcacld-3.0 propagation.
WLAN host driver access the inet6_dev address list without acquiring
the read lock, if the kernel network stack deletes the address while
driver is accessing the list, it can lead to referencing already
freed address by the driver.
Hence, fix is to take the read lock before accessing the address list.
Change-Id: I934e9f2039f3ab8540e439b9e8a87efced98807c
CRs-Fixed: 1048897
This is a qcacld-2.0 to qcacld-3.0 propagation.
The issue is when host re-enables QPower after resume, it is setting
WMI_STA_PS_ENABLE_QPOWER to 1 (which is for QPower = 2) always and never
WMI_STA_PS_ENABLE_QPOWER to 2 (which is for QPower = 5).
This means one suspend/resume is enough to disable QPower = 5 and
change to QPower = 2.
Fix this by removing the hardcoded value of 1 and use qpower_config instead.
Change-Id: I553c1691d5d7e98c2db8c9e56e2ba68ae27af506
CRs-Fixed: 1040737
qcacld-2.0 to qcacld-3.0 propagation
In the current implementation, there is no way to force softap
to configure in 11n, when request from hostapd is for 11ac.
This change adds the ini parameter gSapForce11NFor11AC, when enabled,
configures softap in 11n mode if hostapd request is for 11ac.
Change-Id: I22da3971c90726a13a4b7d9c2c9b9b535d0d6809
CRs-Fixed: 1019018
In the current code, maximum possible value of gEnableDynamicDTIM is 5,
but for power save testing there is requirement to increase it by 4.
Accordingly, CFG_ENABLE_DYNAMIC_DTIM_MAX is changed to 9.
Change-Id: I93b8356bc703c3d1d4fa1a89601056cbd3c8b262
CRs-Fixed: 1079163
FTM mode doesn't have session ID and no need to send wma_cli_set_command
for WMI_VDEV_PARAM_ENABLE_RTSCTS which is per vdev.
Change-Id: I1583439e3d4a9f8c52f687c8f5bc1340860a1614
CRs-Fixed: 1079143
Fix IPA V2 compile problem fix.
MODEM included platform and non-MODEM platform should use
the same binary. Then WLAN cannot disable IPA data path
through INI nor compile time.
WLAN host driver should dynamically detect IPA HW status and
should enable or disable IPA data path based on IPA HW status.
Change-Id: I2d34aaa9f1616e621ff9585c69c4618463e05c65
CRs-fixed: 1078825
MODEM included platform and non-MODEM platform should use
the same binary. Then WLAN cannot disable IPA data path
through INI nor compile time.
WLAN host driver should dynamically detect IPA HW status and
should enable or disable IPA data path based on IPA HW status.
Change-Id: I43a673fcfc7ecfbd2d3ca488034dc4a84e20b258
CRs-fixed: 1078825
ipa hardware data path should only support sap/sta mode.
P2PGo, P2PCli and all other mode should not support
IPA offload data path. Any ipa event came from non-sta/sap adapter
should be ignored and return success.
Change-Id: If2b6e9026d351ac5fb3c87e8f65df1615dfb154a
CRs-fixed: 1078289
When WLAN subsystem is in suspend state, if packet deliever to
WLAN FW, WLAN FW will crash with bad state. So, if WLAN subsystem
is in suspend state, host should not pump down packet to FW.
IPA subsystem could not know WLAN power state. Then WLAN HDD
should inspect WLAN power state. If suspend state, packet should
queueing into local queue and when resume, send packet to FW
Change-Id: I60e1e8f0fff40c9f0ca4a798b76878548ca89ad7
CRs-fixed: 1077078
When both host and FW support a new partition, FW uses host use
the new parition HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN.
If FW doesn't support a new partition, host falls back to use old
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN.
Handshaking is done through WMI_READY and WMI_INIT.
Change-Id: I974c931e1b4b2d84e809ec19537a09b679932568
CRs-Fixed: 1072812
SKBs received through IPA exception path are not allocate by WLAN
driver and we should not pass these SKBs to driver SKB debug hash
infrastructure(for free clean up). So use kfree_skb instead of
qdf_nbuf_free for IPA exception data path.
Add ssr protection and wlan_hdd_validate_context in hdd_ipa_w2i_cb.
Change-Id: I593efad97cbe2629bf0b96cbde587d092b81babb
CRs-Fixed: 1076635
Add code to check MCC for DBS case, and remove MCC mode switch
message to IPA when TX_FLOW_CONTROL_V2 is defined.
Change-Id: Ic09d1cbcb2df98b4b62b4fff27d44b67ce57c196
CRs-Fixed: 1077246
To avoid FW crash caused by sending the same IPA enable_disable WMI
message twice, check the IPA offload enable status before sending
it to FW.
Fixed log to check both uc_op_code and stat_req_reason.
Change-Id: I1fc5f4de8207872edf3c2c6ec908820ac819e4ae
CRs-Fixed: 1073325
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in sme_api.
Change-Id: I7f896067d87f457ab58c64036155fbff2f546ea0
CRs-Fixed: 1075575
Add support to log firmware version sub id
in the logs and iwpriv command 'version'
Change-Id: I1eaad763da55007d34e243509204acf12ec79955
CRs-Fixed: 1077115
Add the following statistics for LRO
- packet count based on the number of packets aggregated
- total number of LRO eligible and ineligible TCP packets
- total number of packets aggregated
- total number of flows flushed
- number of times an LRO descriptor was not found
Change-Id: Icea6b7745df9bda5b517c1a7f27c8395ede2cec6
CRs-Fixed: 1042116
When the device is in DBS mode, and STA session gets
disconnected, then the dbs_opportunistic_timer is started
to wait for 10s and then sets back to SMM (Single MAC
mode) after timeout if DBS mode is not required.
The enhancement is to check the if the device is in DBS mode
and the STA session disconnects and new STA session starts in
the band in which existing connection are there, then stop the
dbs_opportunistic_timer and set hw_mode to SMM.
Change-Id: I16bfbb5135e36f2ab87bd09244d5eb6932846c72
CRs-Fixed: 1077488
Some functions under dot11f.* files are local and not
referenced by other files.
Add static keywords to the following function and update
the dot11f.* files.
dot11f_unpack_tlv_common_func
dot11f_unpack_tlv_common_func2
dot11f_unpack_ff_common_func
dot11f_unpack_ie_common_func
Change-Id: Icc15b0570fe2ff900a16a83a4ce2a6a558c4e70b
CRs-Fixed: 1075288
propagation from qcacld-2.0 to qcacld-3.0.
There are IPv4/IPv6 filters, we just use IPv4 filter for RXFILTER-ADD/REMOVE
now. Correctly update the filters from mc_addr_list.
Change-Id: I3457b206fe24e2484ec1f5a6240cbd0bc4a5825a
CRs-Fixed: 992500
qcacld-2.0 to qcacld-3.0 propagation
From kernel 3.19-rc4, size of struct station_info is around 600 bytes,
so stack frame size of such routine use this struct will easily
exceed 1024 bytes, the default value of stack frame size.
So use heap memory for this struct instead.
Change-Id: Ibe8a4f5189fcc9d5554f7a5d851c93be8fa8dbad
CRs-Fixed: 1050323
Propagate from qcacld-2.0 to qcacld-3.0
Currently in epping_cookie_init() when the cookie array is allocated
the wrong pointer is checked for a NULL allocation. Update the
function to check the correct pointer.
Change-Id: I56384197a8729996d7aa87d3c51903525b3be93c
CRs-Fixed: 979671
qcacld-2.0 to qcacld-3.0 propagation
Invalidate the keys stored in the hostap context when BSS
stop event is received, so that no old key will be wrongly
issued to firmware when hostapd restarts the BSS with a
different encryption mode.
Change-Id: Ied1fa37cfcff32d3ee87ae26490e59ae59211952
CRs-Fixed: 1046965
qcacld-2.0 to qcacld-3.0 propagation
Change the logic to get tx_retries from multiple_retry_cnt.
Currently tx_retries calculate from summary_stat.retry_cnt[] which
are not initialized in current code. FW will enable
FW_REPORT_TX_STATS_PER_VDEV feature and add multiple_retry_cnt
support.
Change-Id: Idf3ba2cc7fa3ab287256a850555bb50e8a117bd2
CRs-Fixed: 1061540
qcacld-2.0 to qcacld-3.0 propagation
Currently driver reports max MCS index 9 for VHT20, but cfg802.11
doesn't support such case, which leads to link speed null returned
to upper-layer.
Update the driver to report max MCS index 8 for VHT20.
Change-Id: I06c97db85d88decf418be602cb5f64135f61a686
CRs-Fixed: 1005141
Whenever there is session disconnection, the device sets its
hw_mode to SMM (Single MAC Mode) if the current connections
are not using DBS mode. Thus, if the device is in SMM, it
still sets its hw_mode to SMM after session disconnection.
The enhancement is to check the if the device is already in
SMM, then avoid setting again to SMM.
Change-Id: I4ebb9b6d992e65667a06b3e68d322435c7ec2968
CRs-Fixed: 1076844
Existing error message are incorrect in __iw_set_retry
and __iw_get_retry, this change provides corrected logs.
Change-Id: I5076936fd21a3680ef2e6564820c2dfd5321aba0
CRs-Fixed: 1036544
Currently, In failure case the spin unlock is not taken care
which is locked before, also the variables are initailized in
specific senarios, with this change the variables are initialised
properly.
Change-Id: Ic6c40065e312dcd2e76dbf50304dfa8f4fb506e9
CRs-Fixed: 1073567