Graf commitů

147 Commity

Autor SHA1 Zpráva Datum
Dustin Brown
8d2d0f57a5 qcacld-3.0: Expose WMI/Credit History debugging APIs via ioctl
Add an ioctl that allows a user to dump a specified number of records to
dmesg for WMI and Credit History.

Change-Id: I644dcf5edcb2f875af1e99e7b4677cde37081674
CRs-Fixed: 2028760
2017-04-06 10:58:54 -07:00
Arif Hussain
759a023602 qcacld-3.0: Add cac and phyerr processing offload support
In case of dfs offload, do not run cac timer, as cac will also be
offloaded in that case. Decide the same based of service bit info.

Change-Id: If4dd62628270ff0ba8632a9cd644a9d7ed6f31a4
CRs-Fixed: 2021357
2017-04-03 18:41:24 -07:00
Arif Hussain
671a190aa9 qcacld-3.0: Add cac duration and dfs region in vdev start
Add support to fill cac duration and dfs region in  vdev
start command, these values are used in firmware on phyerror
processing and cac timer offload cases.

Change-Id: I8bfbd4a3f59002f92ee2e5e321c15da849fce9ec
CRs-Fixed: 2021357
2017-04-03 18:41:22 -07:00
Tushnim Bhattacharyya
51258a79c2 qcacld-3.0: change wma code for policy manager restructuring
Modify wma code to cope with the policy manager moving to host
common.

Change-Id: Ie75b3da1291fcf1126a9e269f7b3b7974f9992a1
CRs-Fixed: 2009818
2017-03-30 16:26:39 -07:00
Tushnim Bhattacharyya
9e81b4ca94 qcacld-3.0: legacy code change for policy manager restructuring
Modify legacy code to cope with the policy manager moving to host
common

CRs-Fixed: 2009818
Change-Id: Ifa27ecdf1e37eda6f929f89da603bc356e9cb7fd
2017-03-30 16:26:20 -07:00
Mukul Sharma
6411bb8535 qcacld-3.0: Add vdev pause bitmap (Set/Clear/Update/Get) API's
Currently, Host modify the vdev pause bitmap
directly which may be problematic in scenario
where this value update information need to
notify to other components.

Hence as a part of this fix, Add (set/clear/update) API's
for vdev pause bitmap modification.

Change-Id: I5c8d6576d27076f697463b42632962327306902f
CRs-Fixed: 2013376
2017-03-28 13:01:01 -07:00
Krishna Kumaar Natarajan
150cd011a3 qcacld-3.0: [11AX] Add support to configure range extenstion
Add support to enable or disable range extenstion using
enable_range_ext iwpriv command. get_range_ext iwpriv is used
to check if range extenstion is enabled or not.

Change-Id: I2231ef9641cfa669dd4b1e820a3b7ec00546a9a3
CRs-Fixed: 1073481
2017-03-28 13:00:32 -07:00
Krishna Kumaar Natarajan
1a71ec7115 qcacld-3.0: [11AX] Add support to configure DCM
Add support to enable or disable DCM using enable_dcm
iwpriv command. get_dcm iwpriv is used to check if
DCM is enabled or not.

Change-Id: I9d81bba92d227a238faf2e705132c80c8e91de86
CRs-Fixed: 1073481
2017-03-28 13:00:30 -07:00
Krishna Kumaar Natarajan
f567650ade qcacld-3.0: [11AX] Add support for vendor commands
Add support for vendor commands to query HE capabilities.

Add support to include HE capabilities in wma_handle as received
from FW to be sent to userspace when queried via vendor sub command.

Change-Id: Icbf141bd1e0646346c2b18aabf3dfb3590d853d7
CRs-Fixed: 1073481
2017-03-28 13:00:23 -07:00
Krishna Kumaar Natarajan
0103ef8f7c qcacld-3.0: [11AX] Add changes for peer association
Add changes for 11ax peer association.

Add support for the following
 - update data structures to hold HE capabilities
 - setting up HE capabilities in the session
 - updating sta context with correct HE config
 - intersecting self and peer capabilities
 - update derivation of peer phymode to handle 11ax phymode

Change-Id: I46c7a7328d09e74bc0c5b25a67f6273d7eb04d30
CRs-Fixed: 1073481
2017-03-23 12:15:39 -07:00
Krishna Kumaar Natarajan
4f1d7724a8 qcacld-3.0: [11AX] Add dot11mode changes to support 11ax
Add new dot11mode and update the utility functions to derive
the dot11mode based on the userspace config, INI config and
FW capability.

Change-Id: I5780120ef7bc2b78fd596e937fe14a2c8ad88348
CRs-Fixed: 1073481
2017-03-22 09:09:29 -07:00
Varun Reddy Yeturu
88f123c804 qcacld-3.0: Ignore RSI if disconnect is initiated
Ignore the Roam Synch Indication from firmware if the
user space has already issued a disconnect before
receiving ROAM_START from firmware.

Disconnect might have cleared the roam profile and will be
sitting in the queue for the PE processing to happen.
If the disconnect is in the queue and a roam synch indication
is received, then check the CSR state from the first callback
of roam synch propagation and bail out there itself.

Disconnect will eventually send a ROAM_STOP command to the
firmware and it will cleanup

Change-Id: I528f552cd601dc9d23f709410115fb0af944899d
CRs-Fixed: 2018928
2017-03-14 23:40:51 -07:00
Dustin Brown
13995f0efc qcacld-3.0: Add gActiveBpfMode ini item
Active Mode Berkeley Packet Filter (Active BPF) is a new feature that
allows firmware to apply BPF even while the Apps processor is active.
There are 3 modes:
 * Disabled: do not apply BPF in active mode
 * Enabled: apply BPF to all packets in active mode
 * Adaptive: apply BPF up to some threshold to avoid performance impact

Add an ini item called gActiveBpfMode to configure the Active BPF Mode
in firmware.

Change-Id: I6cf60d67238802fe1e1662c040910091f5c25bec
CRs-Fixed: 1111400
2017-03-13 14:41:00 -07:00
Dhanashri Atre
09828f1c91 qcacld-3.0: Hash based rx steering
This change includes adding hooks in the data path to
send WMI command to enable LRO or/and configure a hash
seed value

Change-Id: I3f068307f7669c4ff8baa5102e9fb7729d4a348d
CRs-Fixed: 1094775
2017-03-13 14:01:55 -07:00
Kiran Kumar Lokere
1e8e4f0eb7 qcacld-3.0: Do not disable Qpower in suspend mode
Do not disable the Qpower in suspend mode.

Change-Id: I904f1ea4877482eff90599aa2d8f2fb676db0869
CRs-Fixed: 2002833
2017-03-08 22:05:38 -08:00
Dustin Brown
6bff24e2b9 qcacld-3.0: Reduce PNO wakelock timeout in perf builds
The Preferred Network Offload (PNO) wakelock protects Supplicant while
it configures the new scan results. The wakelock timeout should be
optimized as much as possible on production builds, as it is never
released by the driver. For additional power savings, reduce the timeout
of this wakelock in production builds compared to debug builds.

Change-Id: Iaccf56e00e933d3a216212ef219f31d28d022ea5
CRs-Fixed: 2016286
2017-03-08 20:03:45 -08:00
Mukul Sharma
4c60a7ea5b qcacld-3.0: Add Suspend and Resume support in PMO
Add Suspend and Resume support in PMO.

Change-Id: Iba16643adf1cbd997138c740345e40c00c8e81f6
Crs-Fixed: 2015366
2017-03-08 13:00:46 -08:00
Mukul Sharma
f904723e33 qcacld-3.0: Remove Vdev_up from WMA iface node instead use objmgr vdev
Currently, WMA maintains vdev up flag but other component
also need this flag to check vdev up status. Hence as part of
this fix removing this flag instead using Objmgr Vdev mlme state
for same purpose.

Change-Id: If1922791e71c07621708755de67fbcc2f7a469cd
CRs-Fixed: 2014026
2017-03-03 13:12:57 -08:00
Mukul Sharma
3ba26b8747 qcacld-3.0: Add support for arp/ns offload in PMO component
Add support for arp/ns offload in PMO component

Change-Id: I823ba0a426cce5a5717cf2b693b49c8f8a2f7a29
CRs-Fixed: 2002639
2017-02-28 16:21:40 -08:00
Mukul Sharma
0005869f52 qcacld-3.0: add support for static configurations in PMO
PMO add support for static configurations during
vdev create.

Change-Id: If4a91b289a039eed14f3df6533e8d70d9becf095
CRs-Fixed: 2002634
2017-02-28 16:21:38 -08:00
Himanshu Agarwal
6023b6b980 qcacld-3.0: wmi_desc cleanup for UMAC convergence
wmi_desc cleanup for UMAC convergence as mgmt_txrx_desc
to be used in place of wmi_desc.

Change-Id: I48c1b965096610373a850fcf834288a15bd2ad19
CRs-Fixed: 1103247
2017-02-23 07:30:01 -08:00
Naveen Rawat
664a7cb3c6 qcacld-3.0: Send beacon frame in wmi_roam_invoke_cmd
Send beacon frame in wmi_roam_invoke_cmd to firmware.
This helps firmware skip scan to connect to requested
BSSID.

Change-Id: I5c6e375309dcb3bdd6430a3d501bade5cfe2e88d
CRs-Fixed: 1116901
2017-02-22 17:46:25 -08:00
Himanshu Agarwal
d2e6cde42e qcacld-3.0: Change signature of mgmt rx frame related APIs
Change signature of pe_handle_mgmt_frame, wma_form_rx_packet
and wma_mgmt_rx_process APIs by replacing rx params of type
void pointer with that of struct mgmt_rx_event_params pointer.

Change-Id: Idfa54f1c9bfec22a2cf2e98740765dcd797513df
CRs-Fixed: 1103247
2017-02-16 05:16:32 -08:00
Venkata Sharath Chandra Manchala
0d44d455fa qcacld-3.0: Handle void pointer declarations for pdev and vdev
Replace void pointer handles for pdev and vdev
with abstract structure handles

Change-Id: Idd9a2521249e30faf1143f671c4d2d924fe231e8
CRs-Fixed: 1109835
2017-02-15 12:26:46 -08:00
Kapil Gupta
4f0c0c1c50 qcacld-3.0: Report more information in survey dump
qcacld-2.0 to qcacld-3.0 propagation

Currently host only report connected frequency and noise in
survey dump.
Add changes to report all supported frequencies, active time,
TX time, busy time and noise.

CRs-Fixed: 1061040
Change-Id: I2fa509f53b47d65ba0f4abbc438834b85b9c21f6
2017-02-13 23:01:25 -08:00
Jeff Johnson
e8216e8705 qcacld-3.0: Update sme_encrypt_decrypt_msg()
A new HDD Request Management framework is being deployed. One of the
requirements of that framework is that every request API must have a
provision for a caller-supplied context, and that caller-supplied
context must be returned to the caller when the callback function is
invoked.

Currently sme_encrypt_decrypt_msg() is not aligned with that
requirement. There is no provision for a caller-supplied context;
instead the HDD handle which is stored in the MAC context is always
returned.

In order to prepare sme_encrypt_decrypt_msg() for the HDD Request
Management framework update the curent implementation as follows:
1) Remove the separate registration and deregistration of the callback
   function pointer, and instead make the callback function and
   callback context parameters to sme_encrypt_decrypt_msg().
2) Pass the callback context when invoking the callback function.

Change-Id: I6e8c5405393f4cb732d9874ac07145caf5e95cac
CRs-Fixed: 2000026
2017-02-03 12:25:45 -08:00
yeshwanth sriram guntuka
37c09824aa qcacld-3.0: Add wakelock for Roam Handoff
After roaming, FW tries to detect for a subnet change and if
there is a change, then it wakes up the host if it is suspended.
Upon waking up, host handles the roam synch and indicates event
to supplicant. The event to supplicant from host could be
delayed.

Fix is to add wakelock for roam handoff.

Change-Id: I777d37993784c623542dad898e255205ec1bae53
CRs-Fixed: 1115355
2017-01-31 13:25:06 -08:00
Rajeev Kumar
b60abe47ab qcacld-3.0: Remove obsolete CDS mq APIs reference from WMA module
After control path scheduler componentization CDS message queue
APIs are no longer used hence replace CDS mq APIs in WMA module
by scheduler mq APIs.

Change-Id: I57e878480eff8998a307bbacf3e480b8b77b9f3a
CRs-Fixed: 1114371
2017-01-23 13:06:09 -08:00
Dustin Brown
9d797d6b67 qcacld-3.0: Track WoW stats per vdev
Currently wake-on-wireless wake-up stats are tracked globaly. Split
WoW stats tracking per virtual device instead.

Change-Id: If913081cf726d20b9cda2dde58a9b9f4f7cbcf19
CRs-Fixed: 1110403
2017-01-12 13:45:50 -08:00
Krunal Soni
4274f36bcd qcacld-3.0: Allow full spectrum scan when agile & aDFS scan supported
Traditionally full spectrum scan on STA/CLI is not allowed when SAP/GO is
already present on DFS channel.

With new generation of hardware, agile scan and agile DFS scan features
are supported which will allow hardware to do full spectrum scan even if
SAP/GO is present on DFS channel.

Change-Id: I7e5a21601642e0d6afef73beeecf80a3e0475909
CRs-Fixed: 1103730
2017-01-12 13:12:51 -08:00
Himanshu Agarwal
2fdf77a63c qcacld-3.0: UMAC Converged driver init/deinit with mgmt txrx comp
MCL driver interactions with mgmt txrx component in init deinit
of driver. Also, changes to make legacy path to go through mgmt
txrx component for both tx and rx mgmt. frames.

Change-Id: Icf368358fef3b9204bed5195a2502b0ea5f052d8
CRs-Fixed: 1103247
2017-01-10 03:05:58 -08:00
Selvaraj, Sridhar
0672a1213d qcacld-3.0: Add support for init/deinit with obj manager framework
Create the psoc, pdev, vdev, peer hierarchy by calling obj manager
API's in driver init/deinit code.

Change-Id: I804fd56fff0f72d69274dda2667efb6b681e4dda
CRs-Fixed: 1097219
2017-01-06 11:40:26 -08:00
Jeff Johnson
d9f0860957 qcacld-3.0: Remove obsolete "frame_xln_reqd" flag
The current driver inherited support for the "frame_xln_reqd" flag
from a prior version of the driver. In the prior version of the driver
this flag was used to communicate to hardware whether or not
hardware-assisted data frame translation was required. However the
current driver does not use this flag, so remove it from the code.

Change-Id: I41047864de374c12a89fa031c6d38729a285262a
CRs-Fixed: 1075631
2017-01-05 12:06:46 -08:00
Sreelakshmi Konamki
58c7243aba qcacld-3.0: report RSSI at disconnection time in STA mode
qcacld-2.0 to qcacld-3.0 propagation

Save RSSI of current connected AP when disconnection happens.
User space has to use getRSSI private IOCTL to query the RSSI value
after disconnected event.

Change-Id: I51ab69f2b0bda7c6b3a2689297ca56941471b1cc
CRs-Fixed: 910970
2016-12-14 14:08:24 -08:00
Himanshu Agarwal
f65bd4cf8f Revert "Revert "qcacld-3.0: Dump Tx/Rx packets during connection""
This reverts Change-Id I2aec7253511d2ca7b08ca77d858a46f9c01d4e9d

Adding support for dumping 32 tx/rx packets during connection
by reverting above change as "exceeding skb buffer size and
leading to crash" issue is resolved with this change.

Change-Id: I951355776461706bb52eeee0527819377e7b7857
CRs-Fixed: 1097280
2016-12-09 13:22:41 -08:00
Yuanyuan Liu
c7432030fa qcacld-3.0: Extend WMA_RESUME_TIMEOUT to 25 secs
If WLAN FW crashes while in suspend mode then kernel tries to
resume the driver and WMA sends resume indication to WLAN FW and
waits for the response from WLAN FW. Since FW is already crashed,
there will not be any response from WLAN FW and wait logic waits
for the timeout before bailing out. This may cause delay in
completing the recovery and may cause other race conditions
becuase of that. To solve this, we registered for shutdown
notification so that call back would be called during recovery
and resume event can be set to make sure resume thread doesn't
just wait for the FW response. However, it takes around 7 ~ 12 secs
for platform driver to receive PD down notification and trigger
the recovery but wma only waits for 6 secs and still crashed
before recovery started. The fix it to extend WMA_RESUME_TIMEOUT
to 25 secs so that it can be interrupted gracefully by recovery
call backs.

CRs-Fixed: 1087911
Change-Id: Iba8b94111e4b4f0b0db8794e98c0645c667379a8
2016-11-21 15:50:00 -08:00
Leo Chang
96464904cc qcacld-3.0: wma: change legacy data path api to cdp api
Remove legacy apis call from out side of data path.
Replace legacy apis to cdp apis.
Introduce cdp apis wrappers.
wma module.

Change-Id: Ia1d89262184d68974bfb2d28af0ccba212afaf55
CRs-fixed: 1075736
2016-11-17 19:13:17 -08:00
Manjunathappa Prakash
af88fc7dfc Revert "qcacld-3.0: Dump Tx/Rx packets during connection"
This reverts Change-Id Icd08475c3f81aa182c902b8e8defbdb904c5509d

Above change was exceeding skb buffer size and leading to crash.
For now removing the support for dump Tx/Rx packets during connection.

Change-Id: I2aec7253511d2ca7b08ca77d858a46f9c01d4e9d
CRs-Fixed: 1083912
2016-11-12 00:24:05 -08:00
Srinivas Girigowda
ad874a8204 qcacld-3.0: Support for variable number of tx power level stats
This is a qcacld-2.0 to qcacld-3.0 propagation.

Currently, firmware sends static 64 number of tx power level stats.
This is not scalable, hence add the support to send variable number
of tx power level stats.

Change is, firmware sends a separate WMI event with tx power level stats
indicating the total/num tx power levels and offset in the event
followed by the TLV. Host driver radio stats event processing is complete
only after receiving the tx power level stats.

Change-Id: Icd2c3958e09b2ce60f61e902d3f2da8b97acb013
CRs-Fixed: 992365
2016-11-12 00:21:59 -08:00
Sandeep Puligilla
afa5289e90 qcacld-3.0: Trigger host crash for command timeout
Add feature to trigger host crash when firmware
fails to send the response and host timesout.

Change-Id: I47f23e03f2729981a346e2a9e8c8541ba9119af4
CRs-Fixed: 1078192
2016-11-12 00:20:47 -08:00
Paul Zhang
f1b455c7b5 qcacld-3.0: Ensure the fw parameters are restored
Propagation from qcacld-2.0 to qcacld-3.0.

It is the regression issue caused by ChangeId
I6223ab27c2285c53c45fd388bd56cadc6d348324. When changing
the TX_WAKE_THRESHOLD to TX_WAKE_THRESHOLD_NEVER, the
function wmi_unified_set_sta_ps_param will set
iface->ps_enabled to FALSE. Because of this in function
wma_set_vdev_resume_dtim, "iface->ps_enabled == TRUE"
check fails which is not expected.

To mitigate this issue, remove the unnecessary code
related to iface->ps_enabled.

Change-Id: I59a8b150cf8383bf265c048c9fa1b26646e68dc0
CRs-Fixed: 1039904
2016-11-03 17:54:07 -07:00
Liangwei Dong
271f92f582 qcacld-3.0: Fix station scan AP failed in SAP+STA mode
qcacld-2.0 to qcacld-3.0 propagation

If SAP interface is up then STA interface can't find
the AP most of the time as a result of SCAN parameters
are getting set to 28ms active dwell time and 0
repeated probe (which means only 1 probe for 28ms of
active dwell time).

Test results suggest that 1 Probe request through out
the active dwell time in noisy environment is not good
enough, so sending two probe requests with each 11ms
apart would make the scan results little better.

Implement above suggested solution by changing
probe_time_dwell_time_map's repeated probe time to
11ms so that n_probes (number of probes) becomes 2
by n_probes = (dwell_time_active/repeat_probe_time)
= (28/11) = 2.

Change-Id: I8a3f3dbaf70c666973454e3266e0dabe0df1c9ea
CRs-Fixed: 992655
2016-11-03 17:54:07 -07:00
Jeff Johnson
c4b47a9834 qcacld-3.0: Fix -Wmissing-prototypes in WMA
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in core/wma.

Change-Id: I1f270e6b0ba4666d1640b1bf1d1c8e5dbc51e968
CRs-Fixed: 1081656
2016-11-03 17:54:05 -07:00
Agrawal, Ashish
4e5fa1c5a1 qcacld-3.0: Pass sta_inactivity_timeout to FW
qcacld-2.0 to qcacld-3.0 propagation

If a station does not send anything in sta_inactivity_timeout, an
empty data frame is sent to it in order to verify whether it is
still in range. If this frame is not ACKed, the station will be
disassociated and then deauthenticated.

Change-Id: Ib86c9aacdb52141890b224262d55abbe58b1604d
CRs-Fixed: 1020078
2016-11-03 17:54:04 -07:00
Himanshu Agarwal
0527e8f6d2 qcacld-3.0: Dump Tx/Rx packets during connection
Propagation from qcacld-2.0 to qcacld-3.0.

Add changes to send 32 tx/rx packets to HAL layer during connection.
This can help in debugging connection related issues.

Change-Id: Icd08475c3f81aa182c902b8e8defbdb904c5509d
CRs-Fixed: 959645
(cherry picked from commit 45416eeee7dde24f1456e0c2b667e8147742f054)
2016-10-28 18:04:13 -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
Nitesh Shah
0f3fce5816 qcacld-3.0: Fix to clear pending scan id when scan is aborted
In case of scan abort FW does not send WMI_SCAN_EVENT_COMPLETED
event and directly sends WMI_SCAN_EVENT_DEQUEUED or
WMI_SCAN_EVENT_START_FAILED. In this case the scan id does not
get clear and hence block Host from power collapsing.

Include WMI_SCAN_EVENT_DEQUEUED and WMI_SCAN_EVENT_START_FAILED when
accounting for completed scans, and change to tracking pending scans
with a counter instead of individual Ids.

Change-Id: Iaa2977dd5899d214251cbf4f1f8caf768725f538
CRs-Fixed: 1077518
2016-10-17 21:58:31 -07:00
Himanshu Agarwal
b4823b570c qcacld-3.0: Fix compilation issues on disabling LFR3.0 roaming
Fix various compilation issues coming when LFR3.0 is
disabled by undefining WLAN_FEATURE_ROAM_OFFLOAD macro
in Kbuild.

Change-Id: Id483dc9fcc57d359f13b385dd655e34c1823a77f
CRs-fixed: 1071087
2016-10-17 21:58:25 -07:00
Nitesh Shah
5b7bae07fc qcacld-3.0: Add SBS support in hw_mode_list
The enhancement is to add SBS (Single Band Simultaneous)
support in hw_mode_list.

The WMI HW Mode definitions are redefined to use only
for host purpose.

Change-Id: I8b8c966b0130964c8e7de7967766629c955209d3
CRs-Fixed: 1072234
2016-10-10 03:55:02 -07:00
Bhargav Shah
a89d3b4d80 qcacld-3.0: Avoid race condition when vdev is deleted
qcacld-2.0 to qcacld-3.0 propagation

If SME posts message to WMI after vdev_detach happens,
there can be a race condition.
In this case VDEV_SET_PARAM will be called after VDEV_DELETE.
Fix this with introduction of new Boolean flag "is_vdev_valid" which
will be true after VDEV_CREATE is done. This flag will be false
when deletion of vdev happens.
WMI will do VDEV_SET_PARAM only if "is_vdev_valid" true.

Change-Id: Idffd0979bd9bdefa1225d2ea6a24180d81000f48
CRs-Fixed: 964146
2016-10-07 12:54:30 -07:00