Commit graph

3,756 commits

Author SHA1 Message Date
Arif Hussain
0060befaa3 qcacld-3.0: validate session for sched scan request
Make sure to validate session id in __wlan_hdd_cfg80211_sched_scan_start
before processing schedule scan request.

Change-Id: I94c5699684c6e416c565f6a10ccf1c060cc91017
CRs-Fixed: 2008634
2017-02-19 13:23:53 -08:00
qcabuildsw
5c5ae578ee Release 5.2.0.10X
Release 5.2.0.10X

Change-Id: Ib685a54886ea5e27e4938db8f416b6432f432c4f
CRs-Fixed: 688141
2017-02-18 18:55:23 -08:00
Varun Reddy Yeturu
269eca1e34 qcacld-3.0: Enable compilation for Serialization
Define and enable the compile time flags for the
UMAC convergence serialization component

Change-Id: Idf4eede72f7316e9f5c14dd61a98ef7045096316
CRs-Fixed: 2000032
2017-02-18 18:55:22 -08:00
qcabuildsw
aea6f1370d Release 5.2.0.10W
Release 5.2.0.10W

Change-Id: I3ac437ad77ad63b93bac608c7de8dae2bb0e5eb2
CRs-Fixed: 688141
2017-02-17 23:31:40 -08:00
Ravi Joshi
71e82f32d8 qcacld-3.0: Make NDP channel config parameter as optional
Channel config is not a mandatory parameter in NDP initiator
request, hence processing as optional parameter.

Change-Id: I5af9b489cbba5601ab8d606d644adbf6f24ae3d8
CRs-Fixed: 1095382
2017-02-17 23:31:39 -08:00
qcabuildsw
9f568080f0 Release 5.2.0.10V
Release 5.2.0.10V

Change-Id: I04c2a622ac5230a5e9cb6e27a2908d5f6db57390
CRs-Fixed: 688141
2017-02-17 22:49:57 -08:00
Nitesh Shah
8523472ac8 qcacld-3.0: Avoid ROC duration to exceed maximum ROC duration
While extending the duration for ROC, the driver updates the
new duration value with the 2 or 5 times of the current duration
value, that leads to exceed the maximum ROC duration value.

The change is to check the current duration value and increase
it accordingly to avoid exceeding the maximum ROC duration value.

Change-Id: I05658adfdeae32eecdfff939d132484c584c0aa8
CRs-Fixed: 2008441
2017-02-17 22:49:56 -08:00
qcabuildsw
200b9dde1a Release 5.2.0.10U
Release 5.2.0.10U

Change-Id: Ibeaa382bb3067ae99b47d7a5bf48a61b9749c9e6
CRs-Fixed: 688141
2017-02-17 22:13:13 -08:00
Srinivas Girigowda
c1bb1bdcda qcacld-3.0: Move core\utils directory and files to qcacmn
As a part of UMAC convergence, move the core\utils logging
to qcacmn.

Change-Id: I5c17d35e2504c35f00c21755e36d8c9851165547
CRs-Fixed: 1109855
2017-02-17 22:13:13 -08:00
qcabuildsw
7d2d833d66 Release 5.2.0.10T
Release 5.2.0.10T

Change-Id: I2ff9a90152f5c8bcc856717c13013fa9ed8d59d3
CRs-Fixed: 688141
2017-02-17 21:15:21 -08:00
Krunal Soni
72dba66ab3 qcacld-3.0: Create wrapper API for sme pending & active nonscan cmds
To make convergence easier, create wrapper API to process active and
pending queue operations for non-scan cmd list.

Change-Id: Ie62a2c23b797c5f4011c11879e1ef00b705d7586
CRs-Fixed: 2005532
2017-02-17 21:15:20 -08:00
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