Commit Graph

987 Commits

Author SHA1 Message Date
Houston Hoffman
fff7b2333b qcacld-3.0: Use hif_hw_version for chip versions
Remove duplicate chip version #defines.

Change-Id: Ic869aefb0949eb03b9b359f35810e1ba43a19d80
CRs-Fixed: 1012824
2016-05-19 11:05:08 -07:00
Akash Patel
91edc816eb Release 5.1.0.8
Release 5.1.0.8

Change-Id: I4b7992267b8fc832bf42ea3d10bd18c6d028b371
CRs-Fixed: 688141
2016-05-18 16:35:15 -07:00
Mohit Khanna
043efbd6ae qcacld-3.0: Fix race condition between tx traffic and peer deletion
A race condition has been observed between outgoing TX traffic and
peer deletion when DUT has concurrent SAP(DBS) and STA sessions in 5G
and 2G respectively and the peer connected to SAP moves away triggering
peer deletion at DUT. Due to peer being deleted, the vdev corresponding
to the peer is void which results in a crash in ol_tx_data function
while trying to send Tx data.

Fix crash by checking for a null vdev in ol_tx_data.

CRs-Fixed: 1012681
Change-Id: Id0aab4b1f03ed24dfb55e09fa1a115edfdfcce84
2016-05-18 16:35:10 -07:00
Nirav Shah
9bf81570ab qcacld-3.0: Free body of message in deferred queue during unload
Free body pointer of messages pending in deferred
queue during driver unload to avoid memory leak.

Change-Id: I73e0e3f675728aa653c2c4f5d2291c260b339987
CRs-Fixed: 1003001
2016-05-18 16:34:00 -07:00
Nirav Shah
ed34b21226 qcacld-3.0: Dynamically allocate hdd_txrx_hist
qcacld-2.0 to qcacld-3.0 propagation.

Dynamically allocate hdd_txrx_hist to reduce size
of HDD context and avoid order 4 memory allocation
from kernel.

Change-Id: I04dd8f3cdb7f401fb761262bd34b0a2177f6097f
CRs-Fixed: 950790
2016-05-18 16:33:54 -07:00
Nirav Shah
9591970720 qcacld-3.0: Do not allocate large chunk of memory for rx hash
qcacld-2.0 to qcacld-3.0 propagation.
Do not allocate single large chunk of memory for rx hash
to avoid memory allocation failure. This change uses array
of pointers to reduce single large chunck of allocation.

Change-Id: I2aa7239be924b63c87f1044a74176a101d952108
CRs-Fixed: 954302
2016-05-18 16:33:49 -07:00
Nirav Shah
76291969a5 qcacld-3.0: Add logic in host to detect msdu_id duplication
Add logic in host to detect if host is using
musdu_id which is already in use.

CRs-Fixed: 929428
Change-Id: I10413ed4b5b76e16211aa0cbb9012cfb8f26cae0
2016-05-18 16:33:43 -07:00
Nirav Shah
617cff9d7f qcacld-3.0: Add logic to log pause/unpause time
Add logic to calculate pause and unpause time for
network queues to debug data path issues.

Change-Id: I825b10837d999384a91ca3c2271e472a71fd8863
CRs-Fixed: 999861
2016-05-18 16:33:38 -07:00
Nirav Shah
6a4eee661c qcacld-3.0: Add histogram for MSDUs per RX indication
Add histogram for MSDUs per HTT RX indication
message and update drop counters in RX path.

Change-Id: Ia861f6cd3d6a91f01a07f9bc4e2bc3afcf62c8f2
CRs-Fixed: 999861
2016-05-18 16:33:32 -07:00
Govind Singh
9db91ba92c qcacld-3.0: Add target bus type field in qdf context
Add target bus type field in qdf context, as bus type
needs to accessed at multiple layer.

Change-Id: I62b23d68743fedf205bb3859c0de50568ca09b7a
CRs-Fixed: 1009993
2016-05-18 16:33:28 -07:00
Manikandan Mohan
80dea79636 qcacld-3.0: Add WISA feature handling
Add support to enable WISA feature using QCA_NL80211_VENDOR_SUBCMD_WISA
and do scan blocking on WISA mode interface.

Change-Id: Ief105310fb71779b1a8c1d580408a489cad9977e
CRs-fixed: 997798
2016-05-18 16:33:19 -07:00
Varun Reddy Yeturu
5ab4746bc5 qcacld-3.0: LFR3: Store the last roam synch delay
1) Store the last roam synch delay incurred for the most
latest roaming instance.
2) Provide an ioctl "iwpriv wlan0 hostroamdelay" to fetch
the delay

CRs-Fixed: 1012891
Change-Id: Ibbfb8d17e68dcd84ca645ec3bccf25fd84acaa18
2016-05-18 16:32:00 -07:00
Varun Reddy Yeturu
e058ed35eb qcacld-3.0: Remove csr_neighbor_roam_prepare_non_occupied_channel_list
Remove unused routine
csr_neighbor_roam_prepare_non_occupied_channel_list

CRs-Fixed: 1007810
Change-Id: I072f08b179c87d3c182ae6577ac17e74b3862fce
2016-05-18 16:31:55 -07:00
Varun Reddy Yeturu
d1ecb4b070 qcacld-3.0: Remove csr_get_current_ap_rssi
Remove csr_get_current_ap_rssi which is not used

CRs-Fixed: 1007810
Change-Id: I2b9f82f64d2cd038abd61a0087886724daa19424
2016-05-18 16:31:51 -07:00
Varun Reddy Yeturu
5a1985a9f2 qcacld-3.0: Remove csr_neighbor_roam_offload_update_preauth_list
Remove csr_neighbor_roam_offload_update_preauth_list which is
unused currently after roam synch propagation optimization for
LFR3.0 has been done.

CRs-Fixed: 1007810
Change-Id: Icc8ef8a882813d980f05314cf07a379e607323ad
2016-05-18 16:31:47 -07:00
Varun Reddy Yeturu
5edadcc960 qcacld-3.0: Remove unused code of sending probe req template
Remove unused code of sending probe request template to
firmware which is a legacy code where Scan was not
completely offloaded to firmware.

CRs-Fixed: 1007810
Change-Id: I8c876bdb696f70452354f5f84b504b4a6564c479
2016-05-18 16:31:43 -07:00
Manikandan Mohan
5b1980ac9d qcacld-3.0: Send Auto shutdown cancel event
qcacld-2.0 to qcacld-3.0 propagation

Auto Shutdown cancel indication is needed to identify if a
driver is active in multi wlan radio platforms. Userspace
application processing auto shutdown event combines these events
from multiple drivers to arrive at system idle condition for
auto shutdown.

Change-Id: Icc51386bde58d3882e36ab09cd31a527b140a937
CRs-fixed: 1001128
2016-05-18 16:31:32 -07:00
Manjunathappa Prakash
ef45abaa6e qcacld-3.0: Fix lro dereg crash on driver unload
If lro_disable is called after  cds_close, which is the case
for module unloads, then many of the pointers used in dereg
sequence are NULL (CE_state, hif, txrx_pdev). There is a case,
when interfaces are removed, when these pointers are there.
Check pointers before using them in dereg code.
Update hif_map_service_to_pipe so that it will return E_INVAL if
the service is not in the table. Add logs for cases where either
leg information is not updated on return.

Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>

Change-Id: I5b88a297134dcc1d7a6a68dd2a9879dfd1553a7e
CRs-Fixed: 1014428
2016-05-18 16:09:48 -07:00
Prakash Manjunathappa
0c45f699e9 qcacld-3.0: Shrink ol_txrx_stats_tso_info
The structure is taking too much of a space and pre-alloc was
failing for a single allocation for ol_txrx_pdev. Shrunk the
structure from 112 KB to 12 KB.
This update has a corresponding update in qcacmn.

Change-Id: I358e74b47165fa08cb5d37f095b44bff3f83fdfc
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-fixed: 1012346
2016-05-13 16:20:44 -07:00
Prakash Manjunathappa
6dc1a9658a qcacld-3.0: Fix crash on WMA path
During a recent merge, a frame type was being set to a similar
looking value (ol_tx_spec_no_free instead of ol_tx_frm_no_free) and
this is causing crashes on tx-completion.
Also capitalize the constants.
This is a stability CR.

Change-Id: Ic86dafc5baa80ae634c5267794f3add0e06d076f
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-fixed: 1010581
2016-05-13 16:20:43 -07:00
Prakash Manjunathappa
d3ccca2545 qcacld-3.0: Remove extra ticks-to-msec conversion
qdf_wait_single_event expects msecs as the timeout value.
However, two references in dp, second of which is this instance,
passes the value in ticks. This causes the value to be converted
to msecs a second time by the function and hence an incorrect
timeout value.
The other instance is in the qcacmn project.

Change-Id: I11c36ecf54b04cf1e3671a86594822b39b8ccaaf
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-fixed: 1012345
2016-05-13 16:20:43 -07:00
Rajeev Kumar
e871734de8 qcacld-3.0: De-serialize FW diag log events from MC thread
FW DIAG log events are serialized to MC thread(WMA message queue)
which is causing PE/SME message queues starvation when FW is
generating flood of debug log events. Since WMA message queue has
higher priority than PE/SME message queue serialized FW debug log
events eventually lead to SME command queue time out because PE
message queue is starved. Fix this PE/SME message queue starvation
by moving FW diag log event processing to kworker thread.

Change-Id: Ifd8688c61bfdd132a4727d377cfc2e975e5c5b13
CRs-Fixed: 1011762
2016-05-13 16:20:43 -07:00
Archana Ramachandran
3abc391952 Fix HDD logging API in wlan_hdd_ioctl
Use only HDD logging API to prevent check patch errors

CRs-Fixed: 937233
Change-Id: Iae93657d473e81f27b4c491869a60daf83911f14
2016-05-13 16:20:43 -07:00
Manikandan Mohan
5356c2b387 qcacld-3.0: Add vendor command for TSF operations
Update TSF feature for vendor command QCA_NL80211_VENDOR_SUBCMD_TSF
to support TSF operations.

Change-Id: I89abf14b9b7d8ee8fe1c12f7684c87e4dee9bfb0
CRs-fixed: 997799
2016-05-13 16:20:43 -07:00
Krishna Kumaar Natarajan
e4e3a14cf4 qcacld-3.0: Fix incorrect handling of additional IE in assoc response
Fix incorrect handling of additional IE coming from userspace in assoc
response. additonal_ielen field used for the logical checks and buffer
manipulation does not contain correct value which might lead to incorrect
behavior.

Change-Id: I483696d1fa1a731e9afd0a4ea134900d81be7b43
CRs-Fixed: 998427
2016-05-13 16:20:43 -07:00
Krishna Kumaar Natarajan
fa598f95af qcacld-3.0: Fix enum values in cds_ieee80211_common
Fix enum values in cds_ieee80211_common by removing
unused enum values in ieee80211_opmode and updating
_MAX value in ieee80211_phymode.

Change-Id: If46be64fda0edb97881f8ea1bfe919a0a55a250f
CRs-Fixed: 989856
2016-05-13 16:20:43 -07:00
Krishna Kumaar Natarajan
a4e1224bb5 qcacld-3.0: Pass original beacon TSF to user space
Pass original beacon TSF to user space application. This
TSF is used by the user space application for its internal
processing.

Change-Id: I6c1638801dba2b53cbcb5b1ebc925d6f4e035582
CRs-Fixed: 998544
2016-05-13 16:20:43 -07:00
Vishwajith Upendra
c332b35416 Release 5.1.0.7A
Release 5.1.0.7A

Change-Id: I544f83bd429bd6d4f0fb645db6d08c84d4435dc0
CRs-Fixed: 688141
2016-05-11 14:42:13 -07:00
Akash Patel
e6409f5492 Release 5.1.0.7
Release 5.1.0.7

Change-Id: I853be50c2af89206383602430b904bb587aedc84
CRs-Fixed: 688141
2016-05-09 11:28:52 -07:00
Agrawal Ashish
b2a0b76c83 qcacld-3.0: Print mac address in Hex
qcacld-2.0 to qcacld-3.0 propagation

dphPrintMacAddr is printing mac address in decimal.
Print mac address in Hex format for readability.

Change-Id: I7a68d4d94745cee2274970196642d5041f09d184
CRs-Fixed: 940324
2016-05-09 11:28:52 -07:00
Agrawal Ashish
fb87b16193 qcacld-3.0: Don't Update default country code when no country code is selected
qcacld-2.0 to qcacld-3.0 propagation

At the time of driver load, countryCodeElected will be saved as
default country code.
If Driver changes country code through userspace, driver won't update
countryCodeElected as countryCodeElected is updated only for 11d scan.
In next scan if there are no scan results with 11d country code,
the driver will try to update country code on the basis of
countryCodeElected.
Fix this by not updating country code through 11d if
number of country code count is zero in scan results.

Change-Id: I0e5620a834dd3fef61d8a5f86ce753b9233bf56e
CRs-Fixed: 1004031
2016-05-09 11:28:52 -07:00
Agrawal Ashish
fdcb2d0b1f qcacld-3.0: Flush Scan results in DRIVER command SET_FCC_CHANNEL
qcacld-2.0 to qcacld-3.0 propagation

When framework sends SET_FCC_CHANNEL command to driver,
driver removes channel 12 and 13 from valid channel list.
Even after removing channels from valid channel list,
BSS entries are not flushed from scan cache table.
BSS entries get removed when age out timer expires.
Scan results shows stale entries before age out timer expires.
As 12 and 13 are not in valid channel list, driver should
remove BSS scanned on channel 12 and 13.

Change-Id: I63ca0bea23da1430ca0e6f323555c3ac6b2d07cd
CRs-Fixed: 949293
2016-05-09 11:28:52 -07:00
Agrawal Ashish
807e539334 qcacld-3.0: Remove wlan_hdd_band_p2p_2_4_GHZ
qcacld-2.0 to qcacld-3.0 propagation.

Remove wlan_hdd_band_p2p_2_4_GHZ as it's not being used any more.

Change-Id: I69d6e1b0c8298cab1776264f3e61445c95538729
CRs-Fixed: 944663
2016-05-09 11:28:52 -07:00
Agrawal Ashish
17bb3908da qcacld-3.0: Ini change for dyanmic min_rest_time and idle_time
qcacld-2.0 to qcacld-3.0 propagation

Currently default min_rest_time, max_rest_time and idle_time
are 50, 100 and 25 respectively.
When STA is connected in default behavior, DUT will stay on home channel
for 50 ms, then check traffic at every 25 ms increments.
If no traffic, then it will move to the next channel.
It will stay on home channel for max 100 ms. So 75 and 100
are the possible max_rest_time values.
If idle_time is reduced to lower value, better throughput
is possible as DUT need not to wait on same channel for
data inactivity.
Introduced ini params to configure min_rest_time & idle_time.

Change-Id: If28b7a30147fc11c67817314021fa502d2d8f5ad
CRs-Fixed: 952151
2016-05-09 11:28:52 -07:00
Agrawal Ashish
6b01576aa8 qcacld-3.0: Change conn_state to connecting before sme_roam_connect
qcacld-2.0 to qcacld-3.0 propagation

sme_roam_connect() has a direct path to call hdd_sme_roam_callback(),
which will change the conn_state.
If direct path, conn_state will be accordingly changed to
NotConnected or Associated.
Driver is not changing connection state to eConnectionState_Connecting
when connecting with iwconfig.
If connection state is not changed, connection state will remain
in eConnectionState_NotConnected state.
In hdd_association_completion_handler, "hddDisconInProgress" is set
to true if conn state is eConnectionState_NotConnected.
If "hddDisconInProgress" is set to true then cfg80211 layer is not
informed of connect result indication which is an issue.

Change-Id: Ieeaef582a04aa90ddcdcc373b00b68442c795337
CRs-Fixed: 900008
2016-05-09 11:28:52 -07:00
Agrawal Ashish
0f94b570ed qcacld-3.0: Dont include ext caps in Assoc request if AP doesn't support
qcacld-2.0 to qcacld-3.0 propagation

Some AP doesn't announce Extended Capabilities IE in Probe Response.
Device should not send extended Capabilities if AP doesn't support.

Change-Id: I53215b866cb90f4addf45e3b6ed8af435eb57842
CRs-Fixed: 930199
2016-05-09 11:28:52 -07:00
Agrawal Ashish
02460a80c6 qcacld-3.0: Add INFO logs in mcast/bcast filtering code
qcacld-2.0 to qcacld-3.0 propagation

Add info level logs for ARP, NS offload.

Change-Id: I65943d4428f724c39142d1371c04541fcaba7d83
CRs-Fixed: 880526
2016-05-09 11:28:52 -07:00
Agrawal Ashish
c38e58df19 qcacld-3.0: Remove redundant logs
qcacld-2.0 to qcacld-3.0 propagation

Some logs are excessive and unnecessary.
Remove/modify these redundant logs.

Change-Id: Ia7286612d81df3bbb266ba217f548516fa38d3de
CRs-Fixed: 885880
2016-05-09 11:28:52 -07:00
Agrawal Ashish
a5c2bdc4a7 qcacld-3.0: Modify TDLS log for link setup/Teardown
qcacld-2.0 to qcacld-3.0 propagation

As a part of logging improvement, modify redundant
logs, change certain log levels in TDLS link setup/
teardown path to make logs more useful.

Change-Id: Ibb0ee1edb5bbb1aed57bccbc15354031b0362198
CRs-Fixed: 861452
2016-05-09 11:28:51 -07:00
Agrawal Ashish
bb09f5eca1 qcacld-3.0: Remove redundant logs
qcacld-2.0 to qcacld-3.0 propagation

Some logs while Processing netlink messages are excessive.
Remove these redundant logs.

Change-Id: Ic5104e6fb2d306b488adf2a3919e004e5b57e186
CRs-Fixed: 879049
2016-05-09 11:28:51 -07:00
Agrawal Ashish
81f3cd479b qcacld-3.0: Correct log level
qcacld-2.0 to qcacld-3.0 propagation

Correct log level to avoid excessive logging in
wlan_hdd_tdls_exit()

Change-Id: Idfde282fe5167c245a3193466db05d73550a7bb4
CRs-Fixed: 637990
2016-05-09 11:28:51 -07:00
Agrawal Ashish
dd2075b375 qcacld-3.0: TL cleanup is not invoked for TDLS CONNECTING state
qcacld-2.0 to qcacld-3.0 propagation

When TDLS peer link state is in connecting state; at the time of
DISABLE link from upper layer driver is not doing TL cleanup
for connecting state.
Fix this issue by cleaning up for connecting state as well.

Change-Id: Ib97128b96ca13569f8d247e3eaa3c86938e426d1
CRs-Fixed: 773076
2016-05-09 11:28:51 -07:00
Manishekar Chandrasekaran
7f63d05a48 qcacld-3.0: Initialize spinlocks used for STA and SAP information update
qcacld-2.0 to qcacld-3.0 propagation

Initialize spinlocks sap_update_info_lock and sta_update_info_lock which
are used during SAP and STA information update respectively. These
uninitialized spinlocks lead to crash during access due to bad magic
value of the spinlock.

Change-Id: I7d2df8337f9feed352430774907aa095affa5a69
CRs-Fixed: 1011996
2016-05-09 11:05:14 -07:00
Yuanyuan Liu
1d8045cf0c qcacld-3.0: HDD: Use PLD APIs (Part 1)
PLD is a interface between CLD and CNSS/ICNSS. It hides
CNSS/ICNSS APIs from CLD and provides a set of common APIs.
CLD modules should use these PLD APIs instead of calling
CNSS/ICNSS platform APIs.

Register WLAN driver operations with PLD APIs for PCIE/SNOC.
SDIO/USB changes need to be done separately by adding SDIO/USB
support in PLD and replacing SDIO/USB specific functions with
common PLD APIs.

Change-Id: Ie329316dd5646aa2130208e2825bedc4f2aef719
CRs-Fixed: 1000113
2016-05-09 11:05:14 -07:00
Yuanyuan Liu
2e03b41f63 qcacld-3.0: Clean up OS wrapper functions
Replace CNSS wrapper functions with OS standard APIs.

Change-Id: Ic9e8305afc599fa02e80d1b60892cc11b4d4025e
CRs-Fixed: 1000113
2016-05-09 11:05:14 -07:00
Manjunathappa Prakash
b757372528 qcacld-3.0: Add HTT datapath changes to handle monitor mode
Make special handling for monitor mode operation. Take care to handle
amsdu packets in which case firmware marks the last_frag in msdu_info
field. These MSDUs of AMSDU are stiched using frags_list of skb and
handed over to network stack.
Also take care to extract and update the radiotap header to head of
the packet.

Change-Id: I4ed9696175e63884b5db682a2a4c4df504a7fb20
CRs-Fixed: 963060
2016-05-06 17:01:48 -07:00
Manjunathappa Prakash
0e6e6b5a47 qcacld-3.0: Create PE session for monitor mode
Handle monitor mode set capture channel, first set capture channel will
start the monitor mode vdev along with setting the monitor mode channel.
Subsequent set channel commands use the WMI_PDEV_SET_CHANNEL_CMDID to
set the capture channel.

Change-Id: Ibae71a4799e569bf1f1f4d39b23a7d2183fa40e5
CRs-Fixed: 963060
2016-05-06 17:01:48 -07:00
Manjunathappa Prakash
59f861d11d qcacld-3.0: Add monitor mode support
Add monitor mode support. Configure target to deliver 802.11 packets
in raw mode. Below is the procedure to start the monitor mode.
insmod /system/lib/modules/wlan.ko con_mode=4
ifconfig wlan0 up
"iwpriv wlan0 setMonChan 36 2"
or
"iw dev mon0 set channel 36 HT40+"
tcpdump -i wlan0 -w <tcpdump.pcap>

In this mode concurrency is not supported and module doesnot support Tx.

Change-Id: I211ece0a66e2d43bc111e523714942e1557e36f4
CRs-Fixed: 963060
2016-05-06 17:01:48 -07:00
Arun Khandavalli
2476ef58f4 qcacld-3.0: Add support for BPF data offload
qcacld-2.0 to qcacld-3.0 propagation

Currently wlan firmware has multiple different packet filters,
offload features such as Magic Pattern filter, MCBC filter,
RA filter and Bitmap pattern filter.
Firmware has to maintain different filter settings and different
source code to compare the filters.

BPF data offload is common architecture for packet filter offload.
Implement BPF data offload in driver.

Change-Id: I63a5f7222de74cbb80d656f20f42d1b8453dce26
CRs-Fixed: 960473
2016-05-06 17:01:47 -07:00
Amar Singhal
9632da55bb qcacld-3.0: Correct comparison for 5G channel width
Correct comparison for 5G and 2G channel width. Currently the
maximum channel width test in cds_set_5g_channel_pararms() or
cds_set_2g_channel_params is incorrect. Set input channel width to
80p80 if input width is more than equal to maximum channel width.

Change-Id: I5a418c15474b355ea3c62c2de45052908f28113c
CRs-Fixed: 1009720
2016-05-06 17:01:47 -07:00