Commit Graph

575 Commits

Author SHA1 Message Date
Padma, Santhosh Kumar
cd35f532e4 qcacld-3.0: Logging enhancements to LFR3 code
Add logging enhancements to LFR3 code

Change-Id: If8ea2c15a29889a22359911acc433f93691b9279
CRs-Fixed: 1106420
2017-03-02 16:15:55 -08:00
Manikandan Mohan
b0932ab0bf qcacld-3.0: Cleanup Vdev response timer on SSR
During SSR firmware is reloaded and FW responses for previous
vdev sessions are not received. Thus cleanup FW response timers
on SSR.

CRs-fixed: 2005625
Change-Id: I95e2d85b29da240d372039deeece9db6add74edb
2017-03-02 12:22:34 -08:00
Manikandan Mohan
b089ed654d qcacld-3.0: Check for SSR on fw timeouts
During SSR firmware is reloaded and FW responses for previous
vdev sessions are not received. Thus check for SSR before host
crash trigger on FW timeout.

Change-Id: I8be8b7264c133fa115a5b6ac6a3b865f7040e739
CRs-fixed: 2005995
2017-03-02 12:22:32 -08:00
Arun Khandavalli
cc544b3909 qcacld-3.0: Add support in driver to do sap restart during SSR
qcacld-2.0 to qcacld-3.0 propagation

Presently, during subsystem restart Host is sending sap restart
indication to framework(via carrier off) to do SAP unload/load.
But SAP restart functionality is removed in framework when the
carrier off event is received, leading SAP fails to come-up
after subsystem restart.

Add support in driver to do SAP restart internally without sending
restart indication to framework, during subsystem restart.
This feature is controlled by ini param 'gEnableSapInternalRestart'
and by default it's enabled.

Change-Id: I76cb73c1887d4d8124cd9a1c29b9aac47642072a
CRs-Fixed: 1105651
2017-03-02 12:22:27 -08:00
Sreelakshmi Konamki
89f6ff8bd2 qcacld-3.0: Remove unnecessary log in wma_peek_vdev_req()
Fix to remove unnecessary log in wma_peek_vdev_req().

Change-Id: I40a2e74c8300904d5750d3d5f7af3e4797fa21f4
CRs-Fixed: 1102379
2017-03-02 10:03:53 -08:00
Dustin Brown
5409643f2e qcacld-3.0: Allow iface pause override for unit test suspend
For testing purposes, expose the ability to override the interface pause
setting sent to firmware during WoW enable. Relatedly, allow userspace
to specify which wakeup trigger firmware should use, instead of assuming
HTC wakeup.

Change-Id: I265ccef7ca5304c94bcb5ff2eb9a3d35cfa74191
CRs-Fixed: 2011131
2017-03-01 14:09:21 -08:00
Mukul Sharma
3d36c391b2 qcacld-3.0: Add support for gtk offload PMO component
Add support for gtk offload in PMO component.

Change-Id: Ia5ea2daf873ad481f51e2d1cf24441a8c1d93476
CRs-Fixed: 2005114
2017-02-28 16:21:43 -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
Mukul Sharma
dad267ec7d qcacld-3.0: Add global_lmac_if support for components
Add global_lmac_if support for components.

Change-Id: I914447dccb1e005e25378d69ace02f06b9b5112b
CRs-Fixed: 2002384
2017-02-22 11:54:05 -08:00
Rajeev Kumar
da2444cda4 qcacld-3.0: Add WMA changes for WMI (ext)service ready convergence
Add WMA changes for WMI (ext)service ready event common parsing
to populate common psoc object with service ready data such that
new components can get service ready data from common psoc object.

Change-Id: I5bc42a7534aebd6877fc02378b2e698d2d021383
CRs-Fixed: 1110768
2017-02-21 22:33:13 -08:00
Krunal Soni
985b813ee3 qcacld-3.0: Remove serialization from open and close session
Remove serialization from sme_open_session and sme_close_session,
as these events are going to be serialized through following.

1) Two back to back open sessions can't come because kernel will
   serialize using rtnl locks. Same goes for close sessions.
2) Even if two open sessions or close sessions comes back to back
   from driver itself or from other sources then HDD will make-sure
   of serialization through wait_for_completion_timeout call.

Change-Id: I0e27d6dc72e26589b5973bd7668a1783ac132477
CRs-Fixed: 2005532
2017-02-17 21:15:11 -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
Tang Yingying
523322db1a qcacld-3.0: Add "static" before function to fix compilation error
Some functions are only used in the file which it is defined
in. Add "static" before function to fix compilation error.

Change-Id: Ie99c8e2a2c4dd6564c19876f8456a47786d3e5cb
CRs-Fixed: 1112463
2017-02-15 19:11:23 -08:00
Rajeev Kumar
700e910330 qcacld-3.0: Remove spam log message from WMI log flush event handler
WMI flush event handler is spamming kernel log buffer hence remove
it. Logger thread already logs when log message is delivered to
user space hence logging in WMI is not needed.

Change-Id: Ie8f8eb904f0417f83870058d7eac67622955b15a
CRs-Fixed: 2007373
2017-02-15 17:32:31 -08:00
Rajeev Kumar
c3032b89d6 qcacld-3.0: De-serialize WMI DEBUG FLUSH log event id from scheduler
Logging events should not be serialized to scheduler thread hence
de-serialize WMI debug flush log event id from scheduler thread
and register it to run in kernel's default event work queue.

Change-Id: I36d7542da43e6814b5bd50bdc8c166d1fc692e35
CRs-Fixed: 2006819
2017-02-15 17:32:26 -08:00
Rajeev Kumar
91ac6ac682 qcacld-3.0: Move wma log flush event registration to wma_open
wma flush log event handler is registered during wma_start which
is not done until interface is up. This leads to excessive logging
from WMI layer because event handler is not registered. Move wma
flush log event handler registration to wma_open such that after
driver load FW log flush events are handled properly.

Change-Id: I5a76bbc7d53dacfd2c9bf7f15b73b46e0df85289
CRs-Fixed: 2006818
2017-02-15 17:31:25 -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
Nitesh Shah
a3dfea3ebb qcacld-3.0: Avoid new connection while HW mode change is issued
In the case of concurrency, when the session decrements, the
opportunistic timer is started. After a while, when the
opportunistic time is expired, and the hw mode change for SMM
is issued, and the same time new interface comes up, then the
new forms MCC with the existing connection instead of forming
DBS.

The change is to avoid the race condition to form MCC instead of
DBS.

Change-Id: I977039138509676b964ba089e3cb479cd16968bb
CRs-Fixed: 2006350
2017-02-15 06:35:20 -08:00
Selvaraj, Sridhar
3a1823f12d qcacld-3.0: Get/Release ref_cnt for objects store and release
Add get and release reference counts for PSOC/PDEV/VDEV/PEER
objects reference storing and releasing as per the latest reference
count implementation.

Change-Id: I1715be7f8e47b52fa36bb070443051dd99703eb0
CRs-Fixed: 2001058
2017-02-15 01:48:53 -08:00
yeshwanth sriram guntuka
e83d8ff653 qcacld-3.0: Remove redundant kernel log messages
Remove redundant kernel log messages by changing
print level to INFO

Change-Id: Ia622b9da737318e13bf08ae400656827f735b57b
CRs-Fixed: 2002041
2017-02-14 22:55:36 -08:00
Krishna Kumaar Natarajan
f24bfc8b70 qcacld-3.0: Remove all calls to cdp_remove_peers_for_vdev
Remove all calls to cdp_remove_peers_for_vdev().
cdp_remove_peers_for_vdev() is called from vdev_resp_handler
to remove all vdev peers. All the peers associated with the vdev
are deleted before vdev stop and hence this call to
cdp_remove_peers_for_vdev() is redundant.

Delete only the self peer and remove the code to delete the
vdev peers.

Change-Id: I8a91509917a371b860058a66831d8417b3a78671
CRs-Fixed: 2002372
2017-02-14 07:17:44 -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
Kapil Gupta
086c6206de qcacld-3.0: Add changes to collect channel info from regulatory
Vendor ACS requires regulatory channel info for each channel.

Add changes to collect channel information of each channel
and save it in sap config.

Change-Id: Ib96c3f7ddfc8476306e9a13127472be9dd0a9488
CRs-Fixed: 1110061
2017-02-13 23:01:19 -08:00
Sandeep Puligilla
fe426b6fbc qcacld-3.0: Don't fill the vdev response wait queue for set channel command
In monitor mode, wma_set_channel api is filling the
vdev response wait queue before sending the WMI_PDEV_SET_CHANNEL_CMDID
command to firmware and expecting it will be dequeued after response
from firmware but firmware doesn't send any response
to PDEV set channel command which is causing WMA timeout.
Don't fill the vdev request wait queue for WMI_PDEV_SET_CHANNEL_CMDID
 command as firmware doesn't send any response.

Change-Id: If1849440143ed671e0261685a53b8a86f4f8e29c
CRs-Fixed: 2003707
2017-02-13 18:57:28 -08:00
jge
6435f4fc2c qcacld-3.0: Send peer delete wmi cmd before peer detach
This is a qcacld-2.0 to qcacld-3.0 propagation.

In wma_remove_peer, sometimes when peer detach is in progress,
and it has set the peer as invalid, but WMI_PEER_DELETE_CMDID
is still not sent to FW, so msdu for the peer still can be
received. In htt_rx_amsdu_rx_in_order_pop_ll, it will print
a lot of error log, which will cause watch dog.

Send peer delete cmd to FW firstly, then detach peer in host.

In qcacld-3.0, it doesn't have watch dog issue, as the print has
been removed from htt_rx_amsdu_rx_in_order_pop_ll, but it is still
worth to adjust to the right sequence.

Change-Id: Ia26aa5e673a48ca1d9ccf4f184d0bfab0d6e98ef
CRs-Fixed: 1070216
2017-02-10 08:09:56 -08:00
Jeff Johnson
21a4b17000 qcacld-3.0: Fix -Wmissing-prototypes in wma_ocb.c
When CONFIG_WLAN_FEATURE_DSRC is enabled the resulting build fails due
to -Wmissing-prototypes warnings in wma_ocb.c. Fix these warnings by
making the OCB response event handlers static.

Change-Id: I041ff4ebce7c5c8f99c7567fec913b9adf3e53e9
CRs-Fixed: 2002870
2017-02-09 15:50:18 -08:00
Mukul Sharma
c3e7a78d8f qcacld-3.0: Add target_if support for components
Add target_if support for components.

Change-Id: I5110460afff7c4f5797b3441719dddf9a37c8a50
CRs-Fixed: 2001969
2017-02-08 22:25:31 -08:00
Mukul Sharma
cc1f3f9ffd qcacld-3.0: Add WMI reference in PSOC and PSoc reference in WMI
Add WMI reference in PSOC and PSoc reference in WMI.

Change-Id: Ib5bb685039162fe84bac8ed6c98f848f8c7460b7
CRs-Fixed: 2002028
2017-02-08 04:43:43 -08:00
Dustin Brown
3d75fbb77e qcacld-3.0: Ignore suspend timeout during module (un)load
During suspend, the host driver asserts if the firmware does not
respond in a set amount of time. Avoid this assert if the driver
is loading or unloading when the suspend operation times out.

Change-Id: I38ff8663e29bcf1a373c1b91c8c358e2b037577d
CRs-Fixed: 2003478
2017-02-07 22:35:08 -08:00
Selvaraj, Sridhar
8fe6c67d2c qcacld-3.0: Logging enhancements to LFR3 Roaming
1) Add enhancements to the existing log prints for lFR3
with respect to host driver code.
2) Fix memory leak in Wma roaming config handler.

Change-Id: If3e26a7f374673a4c7c11862e94f042bcf9d3c58
CRs-Fixed: 1109354
2017-02-06 03:27:09 -08:00
Himanshu Agarwal
471eaef30a qcacld-3.0: Add support to dump ICMPV6 RS and RA in wow wakeup stats
Propagation from qcacld-2.0 to qcacld-3.0.

Add support to dump information for ICMPV6 RS and RA packets in
wow wakeup stats.

Change-Id: I1a2852189664fff31e29b487d7a8c66ee83931c5
CRs-Fixed: 1115364
2017-02-03 23:37:26 -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
Jeff Johnson
a867e0c43c qcacld-3.0: Update sme_get_bpf_offload_capabilities()
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_get_bpf_offload_capabilities() 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_get_bpf_offload_capabilities() 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_get_bpf_offload_capabilities().
2) Pass the callback context when invoking the callback function.

Change-Id: I3967fdf9b002d961b0ec9a7ea78e7783b47c50a3
CRs-Fixed: 2000024
2017-02-03 12:25:42 -08:00
yeshwanth sriram guntuka
8dd8038f9a qcacld-3.0: Fix memory leak in wmi stats req without rsp
While sending WMI_REQUEST_STATS_CMDID, wma stores the request in a
allocated buffer, which is freed once firmware response is received.
However in case of driver unload, before we receive firmware event,
the buffer will not be freed and that will be leaked. Fix the memory
leak by checking for these buffers at time of wma_wmi_service_close.

Change-Id: Ie8fd5faec22ceaba415a26becf98030bc7cc13ce
CRs-Fixed: 1116622
2017-02-03 00:13:11 -08:00
Rajeev Kumar
d138ac59cc qcacld-3.0: Rename legacy cds_send_mb_message_to_mac properly
Legacy message posting api cds_send_mb_message_to_mac does not
belong to cds and is relocated to WMA legacy file hence rename
it accordingly.

Change-Id: I68e868b0019896baa91e34418064b33219eef2ca
CRs-Fixed: 2000246
2017-02-02 18:38:58 -08:00
Rajeev Kumar
e406d65d70 qcacld-3.0: Move legacy UMAC posting API to legacy file
After control path scheduler componentization cds_mq.[ch]
needs to be deleted hence remove legacy UMAC message posting
API to WMA legacy file.

Change-Id: I781a7586cb6dbf635e283eacd38c768a6b7f6d3e
CRs-Fixed: 2000234
2017-02-02 18:38:55 -08:00
Krishna Kumaar Natarajan
3ce25ed456 qcacld-3.0: Fix cdp API null check in wma_is_pkt_drop_candidate()
Fix cdp API null check in wma_is_pkt_drop_candidate. Add check
if _last_received is greater than 0 before checking for DOS
attack.

Change-Id: Ic817e9a3d59100be5cb97f833985b7633391e1ca
CRs-Fixed: 1115648
2017-02-01 11:48:00 -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
Dustin Brown
86534fb0f1 qcacld-3.0: Promote unhandled WMA message log to error level
Currently, when an unhandled WMA message is received, it is ignored and
a debug-level log is issued. Promote unhandled WMA message logs to
error-level to help in finding unnecessary posts to WMA.

Change-Id: Id3d068f33d545b1d0620520ac24adda5778a1d68
CRs-Fixed: 1115514
2017-01-31 11:20:39 -08:00
Dustin Brown
e94495c41d qcacld-3.0: Remove dead sme_configure_rxp_filter()
sme_configure_rxp_filter() sends a WMA message type that isn't being
handled, effectively making it dead code. Remove
sme_configure_rxp_filter and cleanup calling contexts as necessary.

Change-Id: I04190111e1c714cf93b42c9f17ea4d80049ee98d
CRs-Fixed: 1114226
2017-01-31 11:20:37 -08:00
Himanshu Agarwal
795b7f756c qcacld-3.0: Inline funcs for mgmt_txrx southbound API's
Use inline functions to access mgmt_txrx southbound API's.
This will remove the need to invoke these directly from the
structures.

Change-Id: I50f71261618fd6812265738597bd6f2968cef692
CRs-Fixed: 1110551
2017-01-27 04:51:43 -08:00
Rajeev Kumar
feb96388e1 qcacld-3.0: Fix 80 columns issue introduced in tSirMsgQ clean up
Fix code exceeding 80 columns introduced after replacing tSirMsgQ
message types in mac with converged scheduler apis.

Change-Id: I8fe87318fd913d6fa8dbabdb7ebfaa96fd57d959
CRs-Fixed: 1114457
2017-01-23 13:06:45 -08:00
Rajeev Kumar
156188e64e qcacld-3.0: Remove redundant type casts for scheduler msg
Complete cld driver is using common scheduler message queue APIs
hence remove redundant type casts associated with scheduler message
queue structures and APIs.

Change-Id: Ia5d6208cc365acd94f20bbc7cadc0e22be6fbd01
CRs-Fixed: 1114379
2017-01-23 13:06:18 -08:00
Rajeev Kumar
416b73f3d0 qcacld-3.0: Remove duplicate tSirMsgQ structure from MAC module
After control path scheduler componentization every legacy module
is supposed to use common converged scheduler message types and APIs.
Remove duplicate tSirMsgQ message types in mac and use converged scheduler
message queue APIs.

Change-Id: If47df18043f8127a20a72562bf45afe37dabca72
CRs-Fixed: 1114378
2017-01-23 13:06:16 -08:00
Rajeev Kumar
229f1d3cc0 qcacld-3.0: Remove obsolete CDS mq APIs reference from CDS module
After control path scheduler componentization CDS message queue
APIs are no longer used hence remove obsolete CDS mq APIs from CDS
module.

Change-Id: I7d83783d9fd126bb8b17a5c3292eac91c0966280
CRs-Fixed: 1114375
2017-01-23 13:06:14 -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
Rakesh Sunki
d92d1089f2 qcacld-3.0: Fix NDP non-auto responder mode
propagation from qcacld-2.0 to qcacld-3.0

In NDP non-auto responder mode, peer create happens despite
the response request status is indicated as failure from the
framework as the status of the NDP responder request is not
saved in the protocol engine. So, later when host receives
responder response from the firmware, host does not check
responder request status before sending peer create request.

Fix by sending ndp peer create request only if the firware request
a peer create by setting a flag in responder response message. This
way host does not need to save the responder request success/failure
status per NAN service. Firmware sets the peer create flag to true
only if the status flag in the responder request was indicated as
success.

Change-Id: I4fc8429e71a10829726990cf218720f6f99b085c
CRs-Fixed: 1086217
2017-01-23 10:53:09 -08:00