Commit Graph

1043 Commits

Author SHA1 Message Date
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
Amar Singhal
0e116c6d33 qcacld-3.0: Add new country XA
Add new user country XA to regulatory tables. This is an 'engineered'
country for Japan that has channels 5150-5230 marked as passive.

Change-Id: I6c582bc0635ecae2c37b98d761f72f222c408d2f
CRS-Fixed: 1007217
2016-05-06 17:01:47 -07:00
Kiran Kumar Lokere
ba3b431b29 qcacld-3.0: Fix the issue in processing the del_tspec req
SME qos expects the RIC data and RIC data length to process the
add_ts response after roaming and updates the qos state to QOS_ON
after the successful processing. RIC data is included in re-assoc
response frame and updated in pe session.

Since the RIC data info is not given to SME qos in roam sync event
processing, qos state is not updated, hence the del_tspec command
is buffered and not processed. Send the RIC data info to SME qos
in roam sync processing so that the SME qos state is updated properly
and processes any buffered commands.

Change-Id: I7551b0bab4f11fe2d68c014cf89834ba199ad5ff
CRs-Fixed: 1010374
2016-05-06 17:01:47 -07:00
Kiran Kumar Lokere
27a7eabd94 qcacld-3.0: Remove the vhtTxChannelWidthSet parameter
vhtTxChannelWidthSet is redundant parameter for channel width
as phy_ch_width is used to represent the channel width. So remove
the redundant parameter

Change-Id: Ied9ef3dddfcb89bac8d49c5c0dd2f21b3d041567
CRs-Fixed: 1007367
2016-05-06 17:01:47 -07:00
Dhanashri Atre
b58786d402 qcacld-3.0: Enable LRO
Enable Large Receive Offload (LRO) on the data path.

Change-Id: Ia0dff3ebbfd557f247a14bcff614b9ccc793cb13
CRs-Fixed: 974833
2016-05-06 17:01:47 -07:00
Manishekar Chandrasekaran
009d6cfbe7 qcacld-3.0: Wait for Nss update only in the case of beaconing modes
Ensure that the wait for Nss update happens only in the case of
beaconing modes. Nss update request is done only in the case of
beaconing modes. As part of Nss update callback, check for Nss
update is being done for all modes due to which subsequent hardware
mode change is not getting initiated. Fix the same by ensuring that
the check for Nss update happens only in the case of beaconing
modes.

Change-Id: Icf975661236dba54d2948484445b0509e15f1da0
CRs-Fixed: 1011483
2016-05-06 17:01:47 -07:00
Manishekar Chandrasekaran
f21b3b64fd qcacld-3.0: Fix the missing propagation in MCC to SCC switch scenarios
Fix the missing propagation while sending channel switch request
instead of doing SAP restart. A couple of lines of the change
I79e7317219503de0a9957940f3cf7a4e91c7a521 that are missing have been
restored.

Change-Id: I7f881d4f6793ec8c85e6f4ab41b90fb77d16f828
CRs-Fixed: 1010524
2016-05-06 17:01:47 -07:00
Yuanyuan Liu
9a7ba50ddd qcacld-3.0: BMI: Clean up BMI unused code
Clean up bmi_2 related code. These code are hardware/platform
specific which is no longer supported.

CRs-Fixed: 1001252
Change-Id: I783f4a411044268d24ba660ce9f10dabe0cce8bf
2016-05-06 14:51:27 -07:00
Yuanyuan Liu
466ccb70fb qcacld-3.0: Protect cnss_wlan_pm_control under CONFIG_PCI_MSM
Add CONFIG_PCI_MSM flag for cnss_wlan_pm_control.

CRs-Fixed: 1010156
Change-Id: Icba6ec0952f899a2602751340a45f597eaf87d35
2016-05-06 14:51:27 -07:00
Yuanyuan Liu
d698eb6cd3 qcacld-3.0: Add support for registering runtime PM APIs
Add support for registering runtime PM APIs in PLD.

CRs-Fixed: 1010156
Change-Id: I8747edd0f8fc4bd79f72f7fba4b65d8c6ebd6887
2016-05-06 14:51:27 -07:00
Yuanyuan Liu
44c44772ad qcacld-3.0: Add PM semaphore related APIs in PLD
Add PM semaphore related APIs in PLD, which is being used in BMI.

CRs-Fixed: 1010156
Change-Id: Ief52f7b078ea62cae18508b9e523e2a19f3519b3
2016-05-06 14:51:27 -07:00
Rakesh Sunki
b26f431bb2 qcalcd-3.0: Fix DFS-3 segment ID propagation from radar summary
Fix the segmentID propagation from radar summary report to phyerror
event structure to correctly identify the segment, on which a phyerror
is received for pattern match processing.  Also, to enhance the debug,
add all the radar summary parameters to dfs event and print while
processing the phyerror for a pattern match.

Change-Id: I1325ad541cf69685606e4905275244e207d95b29
CRs-Fixed: 1009784
2016-05-06 14:51:27 -07:00
Dhanashri Atre
6e61e8cfba qcacld-3.0: Increase HTT Rx Ring
The firmware would like host to initially populate all 2K entries,
so that fw shadow ring will always have 1K entries to fetch after
the initial population of 512 entries to each mac.

Change-Id: I5f19a1e2693f54f9d7938b723d0d57487f842daf
CRs-Fixed: 1006872
2016-05-06 14:51:27 -07:00
Kiran Kumar Lokere
6d2b488d48 qcacld-3.0: Fix the issue with VHT SGI settings in SAP mode
SGI setting for 80 and 160MHz are not advertised due to checking
the wrong channel width parameter in the session entry.
Check the correct channel width parameter to advertise the SGI
support in 80MHz and 160MHz

Change-Id: Ia0c2096f243b649088a9dc5ed5e5374cea972e51
CRs-Fixed: 1000145
2016-05-06 14:51:27 -07:00
Prashanth Bhatta
0799875341 qcacld-3.0: hdd: Refactor wlan_startup (phase 8)
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.

Create a separate functions to configure lower layers before
cds_enable.

Change-Id: Ia6eba5a94889cef4502b71edfab773b6295847d6
CRs-fixed: 996332
2016-05-06 14:51:27 -07:00
Prashanth Bhatta
527fd754ec qcacld-3.0: hdd: Refactor wlan_startup (phase 7)
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.

Create a separate function to initialize and destroy feature
specific contexts.

Change-Id: Ia09960a832674bfcba0ec9b6e8ddc0cc925ec419
CRs-fixed: 996332
2016-05-06 14:51:27 -07:00
Prashanth Bhatta
9b03ab30e1 qcacld-3.0: hdd: Refactor wlan_startup (phase 6)
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.

Add register/unregister notifier routines to register and
unregister NETDEV, IPv4 and IPv6 notifiers.

Change-Id: Ife886f06f170a50149c110073469d8fcf183d39b
CRs-fixed: 996332
2016-05-06 14:51:12 -07:00
Vishwajith Upendra
60024c8751 Release 5.1.0.6
Release 5.1.0.6

Change-Id: I7797caedfa14af14c0491a7818aab3138178797d
CRs-Fixed: 688141
2016-05-04 21:19:46 -07:00
Manishekar Chandrasekaran
ebcab88650 qcacld-3.0: Initialize max peers before default target configuration
Make sure that the maximum number of peers is initialized before
this value is configured to the target. Currently, the default
target configuration is happening even before the max number of
peers is initialized. Fix the same by initializing the max peers
before the default target configuration.

Change-Id: I189e9c92727703655b238b3edd1e3b480a09c17e
CRs-Fixed: 1011487
2016-05-04 21:19:43 -07:00
Mohit Khanna
ebf8a8640e qcacld-3.0: Fix use-after-free crash for trace buffer
There is a race condition between hdd_disconnect_handler and
cds_pkt_proto_trace_close while trying to update the trace_buffer.

Fix race condition by calling cds_pkt_proto_trace_deinit (formerly
cds_pkt_proto_trace_close) at the end of cds_close, after all the threads
have been torn down and other modules have been shut. Similarly,
call cds_pkt_proto_trace_init at the begining of cds_open, so it gets
initialized before any of the threads are up or any modules have been
initialized.

Change-Id: If9e2d6a360d814b7f1b0c92789dc0fd3fe3d974b
CRs-Fixed: 1009162
2016-05-04 21:19:39 -07:00
Houston Hoffman
90e24d85f8 qcacld-3.0: Add hif_ctx to fastpath_cb_register api
Hif apis can't rely on a global context.

Change-Id: I2cad80573fc0102f210bb0f7c3f9e22c5f8e16f9
CRs-fixed: 1009274
2016-05-04 21:19:33 -07:00
Houston Hoffman
0cde9662a9 qcacld-3.0: Remove ifdefs from __ol_transfer_bin_file
__ol_transfer_bin_file is overly complex because of
the ifdefs.

Change-Id: Ie758476b94561d4d67b0fe051c5a72035f2df0ec
CRs-Fixed: 1010214
2016-05-04 21:19:26 -07:00
Houston Hoffman
ea4c79c012 qcacld-3.0: Remove ifdefs of QCA_SIGNED_SPLIT_BINARY_SUPPORT
Remove QCA_SIGNED_SPLIT_BINARY_SUPPORT ifdefs from __ol_transfer_bin_file
function body.

Change-Id: Ic801c5aa1e4019ec0e4ceca7b1818848aae0f365
CRs-Fixed: 1010214
2016-05-04 21:19:20 -07:00
Houston Hoffman
05d71f7eeb qcacld-3.0: Define SLOTS_PER_DATAPATH_TX in common project
Common project be self contained as much as possible.

Change-Id: I9dd3cea3b9b2563960dd5d81a661c9ac1e61ac0d
CRs-Fixed: 1009290
2016-05-04 21:19:16 -07:00