Commit Graph

2728 Commits

Author SHA1 Message Date
Kai Liu
bdd5fcb83f qcacld-3.0: Add interface to get channel width in sap mode
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
2016-10-19 17:42:26 -07:00
Liangwei Dong
5047d513ab qcacld-3.0: fix wlan suspend fail after switch to non-dfs channel
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
2016-10-19 17:42:24 -07:00
Yingying Tang
4f2dedec3f qcacld-3.0: Avoid memory leak in htt_h2t_dbg_stats_get()
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
2016-10-19 17:42:22 -07:00
Yingying Tang
2fb1438bf3 qcacld-3.0: Add USB VID and PID for QCA9379
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
2016-10-19 17:42:20 -07:00
qcabuildsw
80393cdb64 Release 5.1.0.32E
Release 5.1.0.32E

Change-Id: I5df6d3c7dc43c86bb78ca252fc4a554ed624f19a
CRs-Fixed: 688141
2016-10-19 15:18:21 -07:00
Varun Reddy Yeturu
0425186793 qcacld-3.0: LFR3: Fix to handle peer MAP/UNMAP events
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
2016-10-19 15:18:20 -07:00
Orhan K AKYILDIZ
ba175fc413 qcacld-3.0: Add a NAPI mode for roaming
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
2016-10-19 15:18:18 -07:00
qcabuildsw
0b555320f5 Release 5.1.0.32D
Release 5.1.0.32D

Change-Id: I0d2cd5ab5257e2719203c664878d07a69f2416f8
CRs-Fixed: 688141
2016-10-19 10:45:31 -07:00
Srinivas Girigowda
02c084dd6c qcacld-3.0: Delete SSR timer after WLAN reinitiation is complete
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
2016-10-19 10:45:30 -07:00
Srinivas Girigowda
6147c58dff qcacld-3.0: Replace DEBUG macro with WLAN_DEBUG
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
2016-10-19 10:45:28 -07:00
Srinivas Girigowda
90cdd3cda2 qcacld-3.0: Acquire read lock before accessing the address list
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
2016-10-19 10:45:26 -07:00
Srinivas Girigowda
0855e869a2 qcacld-3.0: Remove hardcoded value and set qpower appropriately
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
2016-10-19 10:45:24 -07:00
qcabuildsw
c97f53922e Release 5.1.0.32C
Release 5.1.0.32C

Change-Id: I16a37eda38164620f4414c9f964c2af1cf30cf9b
CRs-Fixed: 688141
2016-10-19 07:32:57 -07:00
Rajeev Kumar Sirasanagandla
b79b546281 qcacld-3.0: Add ini to force sap into 11n for 11ac
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
2016-10-19 07:32:56 -07:00
qcabuildsw
d80e8d3a63 Release 5.1.0.32B
Release 5.1.0.32B

Change-Id: If7961795fd5c54632c036bed1ed7eeb7d7238200
CRs-Fixed: 688141
2016-10-19 06:53:33 -07:00
Rajeev Kumar Sirasanagandla
4a716ad992 qcacld-3.0: Change max value of gEnableDynamicDTIM
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
2016-10-19 06:53:32 -07:00
qcabuildsw
726a53539d Release 5.1.0.32A
Release 5.1.0.32A

Change-Id: I975390fd0043adfc17120e9d5ddf50268f4aba9c
CRs-Fixed: 688141
2016-10-19 06:15:22 -07:00
Rajeev Kumar Sirasanagandla
2dab3ec9fa qcacld-3.0: Avoid sending ENABLE RTSCTS cmd in FTM
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
2016-10-19 06:15:21 -07:00
qcabuildsw
5c1eb5d42f Release 5.1.0.32
Release 5.1.0.32

Change-Id: I065378f438e83b4deec7f7aaa1962e0da4037d16
CRs-Fixed: 688141
2016-10-18 19:54:29 -07:00
Leo Chang
63d7361152 qcacld-3.0: enable ipa hw dynamic detection capabiliry
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
2016-10-18 19:54:28 -07:00
Leo Chang
11545d6679 qcacld-3.0: enable ipa hw dynamic detection capabiliry
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
2016-10-18 19:54:25 -07:00
Leo Chang
a202b52f06 qcacld-3.0: ipa offload data path only support STA and SAP
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
2016-10-18 19:54:23 -07:00
Leo Chang
69c3969138 qcacld-3.0: ipa exception packet forwarding crash fix
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
2016-10-18 19:54:21 -07:00
Yun Park
4d968dfdc0 qcacld-3.0: Support bigger Tx MSDU ID partition
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
2016-10-18 19:54:18 -07:00
Yun Park
f8d6a12438 qcacld-3.0: Fix HDD IPA stability issues
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
2016-10-18 19:54:16 -07:00
Yun Park
a27049adf3 qcacld-3.0: Fix to disable MCC path for DBS and TX_FLOW_CONTROL_V2
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
2016-10-18 19:54:14 -07:00
Yun Park
8292dcb0ac qcacld-3.0: Check offload status before sending IPA enable_disable
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
2016-10-18 19:54:12 -07:00
qcabuildsw
f7135a2278 Release 5.1.0.31Z
Release 5.1.0.31Z

Change-Id: I5810a0715fa725bd52ff7d513655f79ac2c6424a
CRs-Fixed: 688141
2016-10-18 19:16:47 -07:00
Jeff Johnson
49c02f9645 qcacld-3.0: Fix -Wmissing-prototypes in sme_api
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
2016-10-18 19:16:46 -07:00
qcabuildsw
769f6caace Release 5.1.0.31Y
Release 5.1.0.31Y

Change-Id: Ic3ada326801f4175c51d8d236d8187148056e81c
CRs-Fixed: 688141
2016-10-18 18:42:42 -07:00
Sandeep Puligilla
3d6a8e27e6 qcacld-3.0: Add support to log fw version subid
Add support to log firmware version sub id
in the logs and iwpriv command 'version'

Change-Id: I1eaad763da55007d34e243509204acf12ec79955
CRs-Fixed: 1077115
2016-10-18 18:42:41 -07:00
qcabuildsw
0c6a49c651 Release 5.1.0.31X
Release 5.1.0.31X

Change-Id: Iabc4a5abef28e5f002055114ce2f3e8420b151d3
CRs-Fixed: 688141
2016-10-18 15:09:41 -07:00
Dhanashri Atre
e7d442a315 qcacld-3.0: Add LRO Statistics
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
2016-10-18 15:09:40 -07:00
qcabuildsw
3de9e373c9 Release 5.1.0.31W
Release 5.1.0.31W

Change-Id: I04f4a387073821f9f4ba107b1248f706d93f57af
CRs-Fixed: 688141
2016-10-18 12:40:26 -07:00
Nitesh Shah
044fd675f5 qcacld-3.0: Set SMM if all new/existing conns are in same band
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
2016-10-18 12:40:25 -07:00
qcabuildsw
11d7cb6b8b Release 5.1.0.31V
Release 5.1.0.31V

Change-Id: Ie1709c7ae07c31d747dd6680b7fa12cbee917ec6
CRs-Fixed: 688141
2016-10-18 12:03:05 -07:00
Ankit Gupta
f42c3c221e qcacld-3.0: Update dot11f.* files
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
2016-10-18 12:03:04 -07:00
qcabuildsw
5d82494ca5 Release 5.1.0.31U
Release 5.1.0.31U

Change-Id: I5ba667ef87e465795020c82decc186601abe86a1
CRs-Fixed: 688141
2016-10-18 09:03:15 -07:00
Frank Liu
f95e81359c qcacld-3.0: Fix set all-zero address mcast filter
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
2016-10-18 09:03:14 -07:00
Kai Liu
7400c5b0cc qcacld-3.0: Use heap memory for station_info instead of stack
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
2016-10-18 09:03:12 -07:00
Yingying Tang
86492dee0d qcacld-3.0: Correct NULL pointer check in epping_cookie_init()
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
2016-10-18 09:03:10 -07:00
wadesong
6d04e32123 qcacld-3.0: Clear hostap key storage when BSS is stopped
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
2016-10-18 09:03:07 -07:00
gbian
4c2f9d9d90 qcacld-3.0: Change to calculate tx_retries from the right source
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
2016-10-18 09:03:05 -07:00
Hu Wang
1f2b8a899b qcacld-3.0: Report max MCS index 8 for VHT20
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
2016-10-18 09:03:03 -07:00
qcabuildsw
e22c4a0e67 Release 5.1.0.31T
Release 5.1.0.31T

Change-Id: I9855745a193ca38b1f740393082b4a3e6671ab66
CRs-Fixed: 688141
2016-10-18 05:31:32 -07:00
Nitesh Shah
73050ff958 qcacld-3.0: Avoid setting hw_mode to SMM when already in SMM
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
2016-10-18 05:31:31 -07:00
qcabuildsw
aad589eb6c Release 5.1.0.31S
Release 5.1.0.31S

Change-Id: Ib1c882d0d9ed4ff202bb15cf05b61fc6b2e9770a
CRs-Fixed: 688141
2016-10-18 03:23:40 -07:00
Anurag Chouhan
d29e7603a9 qcacld-3.0: Fix existing incorrect error logs
Existing error message are incorrect in __iw_set_retry
and __iw_get_retry, this change provides corrected logs.

Change-Id: I5076936fd21a3680ef2e6564820c2dfd5321aba0
CRs-Fixed: 1036544
2016-10-18 03:23:39 -07:00
qcabuildsw
082f257b2d Release 5.1.0.31R
Release 5.1.0.31R

Change-Id: I09bc38a5f48222fcd774ee1d180be9976fca9dc3
CRs-Fixed: 688141
2016-10-18 00:14:14 -07:00
Anurag Chouhan
00ed527a14 qcacld-3.0: Update uninitialized variables & error handling
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
2016-10-18 00:14:13 -07:00