Граф коммитов

3745 Коммитов

Автор SHA1 Сообщение Дата
Krunal Soni
20126cbd4f qcacld-3.0: Create wrapper APIs from csr_ll_lock and csr_ll_unlock
To make convergence easier, create wrapper API to lock and unlock
active command list and pending command list

Change-Id: Ic4bad27a2520c3c1f2af9fcb6d20a99f640f91a1
CRs-Fixed: 2005532
2017-02-17 21:15:18 -08:00
Krunal Soni
c1225608ef qcacld-3.0: Remove obsoleted roamCmdPendingList from SME module
Current driver doesn't use roamCmdPendingList in SME module, remove
this unused list to avoid confusion.

Change-Id: I77a696035016f4ae370235bfb86b37d5c92484df
CRs-Fixed: 2005532
2017-02-17 21:15:16 -08:00
Krunal Soni
dea4595c14 qcacld-3.0: Converge release csr command operation using single API
Current driver is using different wrapper APIs to release the csr
command buffer which doesn't make sense.

Converge those wrapper API and call them from csr_release_command
API to make it simple to understand.

Change-Id: I55da6ed74a634a3ac7769cdd6cbd099b8e92b5a1
CRs-Fixed: 2005532
2017-02-17 21:15:15 -08:00
Krunal Soni
78618d9d54 qcacld-3.0: Remove tCsrCmd & replace few of sme api with csr
tCsrCmd struct is not required as tSmeCmd struct serves the purpose.
Remove tCsrCmd so that un-necessary confusion go away.

Replace sme_release_command with csr_release_command to keep track
of pending command.

Replace sme_get_command_buffer with csr_get_command_buffer to keep
track of pending command.

Change-Id: I75f45673c95a0c4e656967274b9933661f4b2f43
CRs-Fixed: 2005532
2017-02-17 21:15: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
Krunal Soni
f35830237c qcacld-3.0: Add sme session id to few SME APIs
Some SME APIs are not using session id eventhough it is available.
Add sme session id so that in future using this sme session id, vdev
object can be pulled.

Change-Id: I21bc4d16c7ae5cd48f4e5049f01ad3d3ec2763e5
CRs-Fixed: 2005532
2017-02-17 21:15:10 -08:00
qcabuildsw
49be2163be Release 5.2.0.10S
Release 5.2.0.10S

Change-Id: I5351978b51f268d9f905c014f072f00b593c4882
CRs-Fixed: 688141
2017-02-17 12:41:39 -08:00
Ankit Gupta
b2f3650b8a qcacld-3.0: Fix to populate Direct sequence param IE for 5G band
Ideally driver shouldn't populate DS param for 5G connection but
considering emulation platform limitation, allow DS param IE to
get populated correctly for 5G connection.

Change-Id: I088f411dca6924a6300c98bafb3d52e7a9c4525b
CRs-Fixed: 2006610
2017-02-17 12:41:38 -08:00
qcabuildsw
07652b9976 Release 5.2.0.10R
Release 5.2.0.10R

Change-Id: Id804d301edfb39b3b9c10646e6f305b0faeb6ba5
CRs-Fixed: 688141
2017-02-16 20:32:46 -08:00
Jeff Johnson
7af334bfc3 qcacld-3.0: Use request manager for OCB
We are transitioning to the new request manager framework. Change all
of the OCB interfaces which currently use the hdd_ocb_ctxt to this
framework. Note that this framework provides the infrastructure to
pass data from the response thread to the request thread and hence
eliminates the need to maintain transient OCB data in the HDD adapter
struct.

Change-Id: I4151221b81cfcaec25bad79da4aa25164c0f83ad
CRs-Fixed: 2005320
2017-02-16 20:32:45 -08:00
Jeff Johnson
b915baefbd qcacld-3.0: Use request manager for DISA encrypt/decrypt
We are transitioning to the new request manager framework. Change
hdd_encrypt_decrypt_msg() and hdd_encrypt_decrypt_msg_cb() to this
framework.

Note that this framework provides the infrastructure to pass data from
the response thread to the request thread and hence eliminates the
need to maintain a separate encrypt_decrypt_msg_context.

Change-Id: Ic0a0357566a2a8b39d73cb82371219315034019e
CRs-Fixed: 2005316
2017-02-16 20:32:44 -08:00
Jeff Johnson
cd113fc76a qcacld-3.0: Use request manager for BPF offload
We are transitioning to the new request manager framework. Change
hdd_get_bpf_offload() and hdd_get_bpf_offload_cb() to this framework.

Change-Id: I33f6d50299065c253265e0824e9e3d0483f1a561
CRs-Fixed: 2005314
2017-02-16 20:32:43 -08:00
Jeff Johnson
e50427c7a8 qcacld-3.0: Use request manager for linkspeed
We are transitioning to the new request manager framework. Change
wlan_hdd_get_linkspeed_for_peermac() and hdd_get_link_speed_cb() to
this framework. Note that this framework provides the infrastructure
to pass data from the response thread to the request thread and hence
eliminates the need to maintain tSirLinkSpeedInfo in the HDD adapter
struct.

Change-Id: I27cdbb986b23c4895f7e6e444697994f26bc6ea1
CRs-Fixed: 2005313
2017-02-16 20:32:42 -08:00
Jeff Johnson
c13bdf105a qcacld-3.0: Use request manager for tsm metrics
We are transitioning to the new request manager framework. Change
hdd_get_tsm_stats() and hdd_get_tsm_stats_cb() to this framework. Note
that this framework provides the infrastructure to pass data from the
response thread to the request thread and hence eliminates the need to
maintain temporary tsmStats in the HDD adapter struct.

Change-Id: I341b46650245f9039685781059041d44bcca5b9e
CRs-Fixed: 2005310
2017-02-16 20:32:41 -08:00
Jeff Johnson
52133119f2 qcacld-3.0: Use request manager for power debugfs
We are transitioning to the new request manager framework. Change
__wlan_hdd_read_power_debugfs() and hdd_power_debugstats_cb() to this
framework. Note that this framework provides the infrastructure to
pass data from the response thread to the request thread and hence
eliminates the need to maintain temporary chip_power_stats in the HDD
adapter struct.

Change-Id: I2fe85b0ffb82587a9c5d59cec1803ba96a95b14c
CRs-Fixed: 2005309
2017-02-16 20:32:40 -08:00
Jeff Johnson
253c0c22ad qcacld-3.0: Use request manager for link status
We are transitioning to the new request manager framework. Change
wlan_hdd_get_link_status() and hdd_get_link_status_cb() to this
framework.

Change-Id: I15470bbb9738d78a1e201df9cf12fcb054c7da31
CRs-Fixed: 2005307
2017-02-16 20:32:39 -08:00
Jeff Johnson
0c5a2ba407 qcacld-3.0: Use request manager for temperature
We are transitioning to the new request manager framework. Change
wlan_hdd_get_temperature() and hdd_get_temperature_cb() to this
framework.

Change-Id: I01d0ce6d1f23b3c4bddc69d4ee1498408cb50b6c
CRs-Fixed: 2005306
2017-02-16 20:32:38 -08:00
Jeff Johnson
002cb97a95 qcacld-3.0: Use request manager for SNR
We are transitioning to the new request manager framework. Change
wlan_hdd_get_snr() and hdd_get_snr_cb() to this framework.

Change-Id: Ib7628ee6931450b3b1ee73a0ede6c21ba6427407
CRs-Fixed: 2005305
2017-02-16 20:32:37 -08:00
Jeff Johnson
a544494791 qcacld-3.0: Use request manager for RSSI
We are transitioning to the new request manager framework. Change
wlan_hdd_get_rssi() and hdd_get_rssi_cb() to this framework.

Change-Id: Ib0b74e288ad3dc4588440f0de7cfbebc9f88a49a
CRs-Fixed: 2005304
2017-02-16 20:32:37 -08:00
Jeff Johnson
dda167ca81 qcacld-3.0: Use request manager for station stats
We are transitioning to the new request manager framework. Change
wlan_hdd_get_station_stats() and hdd_get_station_statistics_cb() to
this framework.

Change-Id: I4f0255975e8c37fa91215bcddc7896bb8d309cf8
CRs-Fixed: 2005303
2017-02-16 20:32:36 -08:00
Jeff Johnson
a6ace5b9ea qcacld-3.0: Use request manager for Class A stats
We are transitioning to the new request manager framework. Change
wlan_hdd_get_class_astats() and hdd_get_class_a_statistics_cb() to
this framework.

Change-Id: I6cfa2155187e3d9ac4099f1e4480835917fd9ca6
CRs-Fixed: 2005302
2017-02-16 20:32:35 -08:00
Jeff Johnson
ce0032c5e0 qcacld-3.0: Invoke HDD Request Manager init/deinit
Enable the HDD Request Manager by invoking the init() and deinit()
APIs as appropriate.

Change-Id: I31e268ca02b4b5c2831c540933ee059a27bd9c7e
CRs-Fixed: 2005301
2017-02-16 20:32:34 -08:00
Jeff Johnson
a2d9bb372c qcacld-3.0: Enable HDD Request Manager
The HDD Request Manager is ready for production use, so add it
to the Kbuild.

Change-Id: I4e598e51983475318bc668e786aca690a934bd6c
CRs-Fixed: 2005299
2017-02-16 20:32:33 -08:00
Jeff Johnson
3a3bc29a15 qcacld-3.0: Introduce HDD Request Manager infrastructure
Many operations within the wlan driver occur in an asynchronous
manner. Requests are received by HDD via one of the kernel interfaces
(ioctl, nl80211, virtual file system, etc.). The requests are
translated to an internal format and are then passed to lower layers
for processing. For requests which require a response, that response
comes up from the lower layers in a separate thread of execution,
ultimately resulting in a call to a callback function that was
provided by HDD as part of the initial request. So a mechanism is
needed to synchronize the request and response.

Currently there are various mechanisms which perform these
synchronizations, but experience with them has revealed some flaws. So
a universal mechanism is needed to synchronize the request and
response which addresses all of the known flaws. This framework
provides that mechanism.

Change-Id: If4d5912710f8a3b5e87adf76f828a646b7cc2983
CRs-Fixed: 2005298
2017-02-16 20:32:32 -08:00
Nitesh Shah
a438c1898f qcacld-3.0: Avoid sending frame before ready on channel event
If the ROC is requested from the supplicant, the driver sends
scan request to the firmware. The driver start the timeout after
receiving ready on channel event from the firmware. While packet
transmission, if the channel is same and timer is not running,
the driver assumes that it is in the listen channel and thus
transmits the frame. But this condition even meets while the
driver waits for ready on channel event, and thus, it sends
the frame in the wrong channel.

The fix is to wait for the ready on channel event if the timer
is not running. The change also address that ROC is dequeued only
after cancel ROC is completed.

Change-Id: If35c75e4bda4f11913a1326896754f29ac43946a
CRs-Fixed: 2005917
2017-02-16 09:33:40 -08:00
qcabuildsw
5a76211145 Release 5.2.0.10Q
Release 5.2.0.10Q

Change-Id: I245c2e3c251d55fd75f528c6aa678d8c7663f1f2
CRs-Fixed: 688141
2017-02-16 05:16:33 -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
qcabuildsw
1e21b2be7b Release 5.2.0.10P
Release 5.2.0.10P

Change-Id: I30f28e1ba5d53f6f629a53daa663fbb353f5d71e
CRs-Fixed: 688141
2017-02-16 02:36:06 -08:00
Abhishek Singh
9679dbf73f qcacld-3.0: Initialize scan module id with qdf debug framework
Initialize scan module id with qdf debug framework

CRs-Fixed: 2006971
Change-Id: I255ade0e7b6054e096e4320dbc6eefa55196a31e
2017-02-16 02:36:05 -08:00
qcabuildsw
406371ac0b Release 5.2.0.10O
Release 5.2.0.10O

Change-Id: Ic30d1725fcec99d2494f9204dc12ca98c20932d8
CRs-Fixed: 688141
2017-02-16 01:30:14 -08:00
Mukul Sharma
eb01e1311b qcacld-3.0: Set IBSS peer state to associate state after connection
Currently in IBSSS mode, host do not change the peer state to
associate state after successful connection. Hence other
components always find peer state as not associate.
As a part of this fix, move IBSS peer state to associate state.

Change-Id: I21970ae723a3cecd797182c260692810625f2ace
CRs-Fixed: 2007648
2017-02-16 01:30:13 -08:00
qcabuildsw
4dcb8753d0 Release 5.2.0.10N
Release 5.2.0.10N

Change-Id: I10006b506305e4d5f1d61f9eef3bf2b2f3de2bab
CRs-Fixed: 688141
2017-02-15 23:56:28 -08:00
Rajeev Kumar
69d7d490ab qcacld-3.0: Enable object manager reference count debug feature
Object manager provides reference count infrastructure for all 4
common objects: psoc, pdev, vdev and peer. Reference count APIs
provide protection from use after free scenarios by making sure
reference counted object is not freed prematurely while its still
in use. Reference count usage requires certain set of disciplines
from components for example:
1) A component 'C' is responsible for all its reference count
2) A component 'B' can't release reference count of a common object
   taken by component 'A'
3) A component can't release a reference count which it has not
   taken.

Enable reference count debug infrastructure such that wrong APIs
usage can be detected and fixed properly.

Change-Id: I7a5b92fe00a060eee15b74572d2624197b331894
CRs-Fixed: 2006322
2017-02-15 23:56:27 -08:00
qcabuildsw
1cad2410e5 Release 5.2.0.10M
Release 5.2.0.10M

Change-Id: Ic475c73917fe0bb8104c0a56808bb283951a285d
CRs-Fixed: 688141
2017-02-15 19:11:24 -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
Tang Yingying
4c0e83ee98 qcacld-3.0: Disable LRO feature when linux kernel version < 4.4
Currently kernel LRO API is only provided in version 4.4. There will
be compilation error if kernel version < 4.4. Add fix to disable
LRO feature when linux kernel version < 4.4.

Change-Id: I69198e55bb3c4ee7c5844e2b7b55e12cb8075d7c
CRs-Fixed: 1112463
2017-02-15 19:11:21 -08:00
Tang Yingying
43ee7eea10 qcacld-3.0: Move WLAN_FEATURE_LINK_LAYER_STATS out of FEATURE_WLAN_TDLS
WLAN_FEATURE_LINK_LAYER_STATS is included in FEATURE_WLAN_TDLS in
wlan_hdd_cfg80211.h. It will lead cmpilation error when FEATURE_WLAN_TDLS
is disabled.Since WLAN_FEATURE_LINK_LAYER_STATS doesn't depend on
FEATURE_WLAN_TDLS, move WLAN_FEATURE_LINK_LAYER_STATS out of
FEATURE_WLAN_TDLS to resolve this issue.

Change-Id: I14f4b69a9868fcef7bf2aa9813ef562ad265acd9
CRs-Fixed: 1112463
2017-02-15 19:11:20 -08:00
qcabuildsw
2757b22804 Release 5.2.0.10L
Release 5.2.0.10L

Change-Id: I71020c38b77c934c090df4d6970abbe2803a8cc4
CRs-Fixed: 688141
2017-02-15 18:33:14 -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
qcabuildsw
e65eb67350 Release 5.2.0.10K
Release 5.2.0.10K

Change-Id: I26ba9f8b5719ba783e76a6a0f87cdd4b55ac4d2f
CRs-Fixed: 688141
2017-02-15 15:54:48 -08:00
wadesong
a75734cd32 qcacld-3.0: populate wiphy feature bits for beacon rate customizing
qcacld-2.0 to qcacld-3.0 propagation

Extended feature bits in wiphy structure should be populated during
wlan host driver startup to support beaconing at different data rate.
Currently legacy, HT and VHT rates are all supported.

Change-Id: Ic03dd1feb63144dddb813e6a1133fbfa48db8315
CRs-Fixed: 1097770
2017-02-15 15:54:45 -08:00
qcabuildsw
7047656c0f Release 5.2.0.10J
Release 5.2.0.10J

Change-Id: Ib387563fdcf34276d44519fe7c104d91e33bd96a
CRs-Fixed: 688141
2017-02-15 12:26:47 -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
qcabuildsw
ab679fb31b Release 5.2.0.10I
Release 5.2.0.10I

Change-Id: I0d98495c1cfd4f271a535a9677682d74ddd81c43
CRs-Fixed: 688141
2017-02-15 06:35:21 -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
qcabuildsw
2fc7eb9e25 Release 5.2.0.10H
Release 5.2.0.10H

Change-Id: Ia0332abbfc2c27ead6e6664df58ecb2632b64ca3
CRs-Fixed: 688141
2017-02-15 01:48:54 -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
qcabuildsw
b4272f9466 Release 5.2.0.10G
Release 5.2.0.10G

Change-Id: Id1f1f9d32e7b244f73f656492ac8f296268c1bef
CRs-Fixed: 688141
2017-02-14 23:53:35 -08:00