Commit graph

5,279 commits

Author SHA1 Message Date
Shashikala Prabhu
ce86ecdfd3 qcacmn: Add a public API to check if channel is in NOL
Add necessary wrapper functions so that other components/umac
can check if a HT20 channel is in NOL.

Change-Id: Ie2cda1fe8f71d829e261ebdcf4563a4c2ff352ae
CRs-Fixed: 2180879
2018-08-02 18:30:08 -07:00
Ashok Kumar Ponnaiah
07a8aa0379 qcacmn: Added extra check to prevent buffer overflow
Added extra check to prevent buffer overflow pointed out
by static code analyzer tool.

Change-Id: Ieeb3e89089b63eac3dc210447d7ec8e964cd52c9
CRs-Fixed: 2285486
2018-08-02 15:00:33 -07:00
Jeff Johnson
d446afc164 qcacmn: Remove struct extended_caps
struct extended_caps is unused, so remove it.

Change-Id: I96fd072b7d6b58a9c237165fcba7ed8c8da0eae3
CRs-Fixed: 2289156
2018-08-02 15:00:30 -07:00
Sumedh Baikady
1c61e0664d qcacmn: Block Ack state machine enhancement in DP
Move the state to in_progress when we process addba
request and upon tx comletion of addba response, move
the state to active. Any addba request received during
in_progress is ignored and reo queue is updated with
window size 1 and set to inactive.

Change-Id: I69cfbc162d873f9e6842ca3e7971146dafba2695
Crs-fixed: 2188927
2018-08-02 02:48:51 -07:00
Pamidipati, Vijay
121589c105 qcacmn: Move ___qdf_dmaaddr_to_32s out of FEATURE_TSO
___qdf_dmaaddr_to_32s is not related to TSO.
Move ___qdf_dmaaddr_to_32s out of FEATURE_TSO macro

Change-Id: Ieabdf6066d23b10aa61b9f999828e26f6d689d54
CRs-Fixed: 2258196
2018-08-02 02:48:49 -07:00
Santosh Anbu
dbfae9b995 qcacmn: Add debug log to print length of the buffer
When the number of bytes to be transmitted in HTC is greater than
allocate buffer length, dump_stack messages are seen on console.
For further debugging on the difference in the length of the buffer
this debug log is added.

Change-Id: I63f105b1f2251726fdd31efbabb14c985525b879
CRs-Fixed: 2274020
2018-08-02 02:48:46 -07:00
Yun Park
c353d6b87c qcacmn: Fix null pointer dereferenc in __htc_send_pkt
In __htc_send_pkt, pointer is checked against null but then
dereferenced later.
Fix it by checking null before dereference it.

Change-Id: I8a0dcfccbe458f5b85b8c930eb9685a75b64829b
CRs-Fixed: 2232835
2018-08-01 20:37:39 -07:00
Venkata Sharath Chandra Manchala
0cb3198ecb qcacmn: Enable support for REO Queue Stats
Map the cdp api call to a datapath handle to print REO
Queue Stats.

Change-Id: I14f880e9fc3743991fd7c8441326c23b7c3bdff8
CRs-Fixed: 2217649
2018-08-01 20:37:35 -07:00
Yun Park
ed2a224ba2 qcacmn: Fix out-of-bounds write in htc_add_receive_pkt_multiple
In htc_add_receive_pkt_multiple, out-of-bounds write to a buffer.
Fix by checking the endpoint against the max endpoint.

Change-Id: Iaa82c7e8f3ae59f007380a7697959dd79dfb81ed
CRs-Fixed: 2232836
2018-08-01 18:31:54 -07:00
Mohit Khanna
890818bd02 qcacmn: Return NULL peer for invalid local_id
Return NULL peer in case an invalid peer->local_id is passed to the
peer_find_by_local_id API. In case this peer is already deleted,
the local_id may be invalid, hence simply return a NULL value.

Change-Id: I0cbae4138daa643dfa07b88caf6f32d3948d6d42
CRs-Fixed: 2280399
2018-08-01 14:20:47 -07:00
Tushnim Bhattacharyya
1af76b8c97 qcacmn: Do not invoke get_pcl multiple times during set_pcl to FW
Do not invoke get_pcl when calculating weightage of channels sent to FW
as part of set_pcl WMI command.

Change-Id: I62b39aaf0943cf10deab380d8030d1ef08fbbcb3
CRs-Fixed: 2287649
2018-08-01 12:32:03 -07:00
Nandha Kishore Easwaran
7cdaae2be8 qcacmn: Cleanup CE poll implementation
Change CE poll timer to wake up CPU so that timer kicks in even though
CPU is in idle state. This is needed so that poll happens in regular
10ms intervals. Also made ce_inited false during wifi down path to
prevent polling during wifi down.

Also made some cleanup in polling implementation to remove global scn
flag to enable polled mode and use attr flag to enable per CE polling.

Change-Id: I1d894c99193cc9902fcf4d6cbfd179c557ec6219
CRs-fixed: 2269599
2018-08-01 12:32:00 -07:00
Sathish Kumar
8b2d1c7c05 qcacmn: Add CB ftype for DMS packets
Directed Multicast Service (DMS) allows a client to request the AP
to convert multicast frames that match a certain traffic classifier
into unicast frames for the client. This request can be sent either
as a DMS Request Information Element in the Association/Reassociation
Request frame or explicitly via a DMS Request Action Frame after the
client has completed association. If the AP accepts the DMS Request,
all multicast frames matching the traffic classifier specified in the
DMS Request will be unicasted directly to the client as an AMSDU.
The original multicast frame will still be transmitted for the benefit
of those clients that do not support or request for DMS.

Add new CB ftype to differentiate data packets intended for DMS subscribed
clients

CRs-Fixed: 2056341
Change-Id: I687e4f4d182869753e2c3670ec07aa64f95fda1b
2018-08-01 12:31:58 -07:00
Vignesh U
c224b9e9c7 qcacmn: Fix KW issues
Potential NULL pointer dereferences of wmi_handle are found in these
functions:
wmi_extract_dfs_cac_complete_event()
wmi_extract_dfs_radar_detection_event()
wmi_extract_reg_chan_list_update_event()
wmi_extract_reg_11d_new_cc_event()
wmi_extract_reg_ch_avoid_event()

Introduce wmi_handle NULL check in the above functions.

Change-Id: I30a842818dff400b8648293f65794ff382eb24e7
CRs-Fixed: 2286258
2018-08-01 06:44:41 -07:00
Alok Singh
40a622b062 qcacmn: Add check for bpr feature
Disable m_copy/enhanced_stats feature causes the bpr feature disable.
Hence add check for bpr feature status during enable/disable of m_copy
and enhanced_stats.

CRs-Fixed: 2275686
Change-Id: I5592b422823446374ce560fe3653990be4c796b0
2018-08-01 03:50:18 -07:00
Jeff Johnson
0820b3ab2b qcacmn: Remove wmi_unified_vdev_restart_send() prototype
Currently wmi_unified_api defines a wmi_unified_vdev_restart_send()
prototype, but there is no implementation of this function. This
discrepancy dates back to the initial introduction of the prototype in
change "qcacmn: Add tlv implementation of common unified API" (Change
Id I7e70b48ef5e1df0c0f81c639579e6eb1a6685dc3). Since this function
does not exist, and in fact has never existed, remove the prototype.

Note that another API, wmi_unified_vdev_start_send(), supports both
start and restart capability.

Change-Id: Ia88d8b1e825c806b454428e72d9731ccefd05c01
CRs-Fixed: 2286613
2018-07-31 19:01:27 -07:00
Dustin Brown
3fc809d63d qcacmn: Reduce target_if info logging
Excessive logging in target_if has been identified as the root cause of
a watchdog timeout. Reduce target_if logging in normal operation paths
to debug level to avoid excessive CPU use.

Change-Id: If384474270bb4b860100b98e5eea81d54b7c2184
CRs-Fixed: 2286630
2018-07-31 15:25:52 -07:00
Shashikala Prabhu
00ffeaf6be qcacmn: Fix channel list validation failure
Mark channels from 5745 through 5865 as DFS channels.

Change-Id: Idd99819e322aa80c376fb098745c3bd39ded743e
CRs-Fixed: 2286686
2018-07-31 00:46:50 -07:00
Dustin Brown
a0e0bbc6b7 qcacmn: Add objmgr check for peer leaks API
During objmgr psoc teardown, it would be useful to assert that there are
no longer any peers attached. Add an API that logs a list of all
peers attached to a given psoc, and panics if any are found.

Change-Id: I30deeba87c5575a17e0b6e3a2a1840e5cfb3f1bf
CRs-Fixed: 2285139
2018-07-31 00:46:48 -07:00
Mohit Khanna
e177087b22 qcacmn: Detect if host sends out reorder queue remove cmd
We are suspecting that peer_rx_reorder_queue_remove_cmd is causing
drop of ARP response frames from REO by the FW. This may cause drop of
ping packets.
Add a check in the function to detect if its being called.

Change-Id: I368aa8155830e8e6fadccfaf9ab5bfbfc8bfdd35
CRs-Fixed: 2254858
2018-07-31 00:46:45 -07:00
Rhythm Patwa
a13757139b qcacmn: Extend support for 'setratemask' cmd
Currently the 'setratemask' command supports setting
the rate mask for upto MCS0-9 and NSS 4. Add 'lower32_2'
field in the ratemask_params struct to extend support
for the 'setratemask' command to set rate mask
for upto MCS0-11 and NSS 8.

Change-Id: I9c06ae238142dca37df9826ca34449dd34ee6782
CRs-fixed: 2251392
2018-07-30 16:34:17 -07:00
Varun Reddy Yeturu
7174208352 qcacmn: Add feature flags to crypto component
Add below featurization flags to crypto component:
WLAN_CRYPTO_WEP_OS_DERIVATIVE
WLAN_CRYPTO_TKIP_OS_DERIVATIVE
WLAN_CRYPTO_CCMP_OS_DERIVATIVE
WLAN_CRYPTO_GCMP_OS_DERIVATIVE
WLAN_CRYPTO_WAPI_OS_DERIVATIVE
WLAN_CRYPTO_GCM_OS_DERIVATIVE
WLAN_CRYPTO_FILS_OS_DERIVATIVE

Remove the below unused functions:
wlan_crypto_psoc_obj_create_handler()
wlan_crypto_psoc_obj_destroy_handler()
wlan_crypto_pdev_obj_destroy_handler()

Change-Id: Ie2a9a4ca240773dc0d32aa6884b21ee08244829c
CRs-Fixed: 2269826
2018-07-30 16:34:14 -07:00
Vivek
126db5db3f qcacmn: Add INI support for Lithium DP configuration items
The current Lithium DP configuration items are hard
code and cannot be configured for different values
without rebuilding the driver

Add the INI configurability option for the Lithium
DP config parameters

Change-Id: I30012903ccb0654bdff706beff80655313aca289
CRs-Fixed: 2246404
2018-07-30 02:53:39 -07:00
Ryan Hsu
919ecb00a7 qcacmn: add utf event exception handler for invalid pdev_id
For the case in DBS, the psoc and pdev is one-to-one mapping,
but firmware will send per pdev_id information to host according
to the radio being tested, add a backup query to SOC_ID if the
pdev_id passed along from utf_event is invalid/unsupported to
work around this case.

Change-Id: I67645da67a968b66b720f211a9a0815a4cc22845
CRs-fixed: 2286291
2018-07-29 09:36:25 -07:00
Ruchi, Agrawal
c3e68bc67d qcacmn: desc na change
Part of base changes, move due to dependency on
other changes.

Change-Id: I7d640d2976c4c2c2c156a5223683dc4b28559577
CRs-Fixed: 2283286
2018-07-27 14:25:16 -07:00
Amir Patel
253053fe2e qcacmn: Add cdp interface APIs to get/update dp stats
Add CDP API's for following:
a. get peer stats
b. reset peer stats
c. get vdev stats
d. update pdev stats
e. reset ald stats

Change-Id: Id6884dcab2eaf9227027d227b6c68bbff9dbb7f6
CRs-Fixed: 2283286
2018-07-27 14:25:14 -07:00
Amir Patel
0291157bef qcacmn: Add new members for DP componentization
To consolidate the stats spread over across UMAC, OL_IF
layer and process at respective datapaths depending
on platforms.

Change-Id: I87d02c767a309e7aeef88a124567259debc1bba5
CRs-Fixed: 2283286
2018-07-27 14:25:11 -07:00
Pavankumar Nandeshwar
720e1983ff qcacmn: Add a per-radio command to fetch radio activity factor
This change Adds a per-radio command to calculate and fetch
radio activity factor from the driver.

Change-Id: I209a4d93889925b63969d36877127e2a72de25fe
CRs-Fixed: 2266783
2018-07-27 14:25:09 -07:00
Jeff Johnson
42b74848d1 qcacmn: Clean up the extscan unified WMI (phase 3)
For a full explanation of the problem and phased solution refer to
"qcacmn: Clean up the extscan unified WMI (phase 1)", Change-Id
I11800361b572331cfada00fb7d518c314df20b43, in the qca-wifi-host-cmn
project.

For phase 3 (this change):
Remove the unions introduced in phase 1, leaving just the properly
named replacement identifiers.

Change-Id: Ia14a42a1a767a850fbfd82a5755ddea51246a95d
CRs-Fixed: 2282843
2018-07-27 14:25:07 -07:00
Jeff Johnson
8ed15d109c qcacmn: Remove session_id from nan_datapath_peer_ind (Step 3)
Currently struct nan_datapath_peer_ind contains the following:
	uint8_t session_id;

This is problematic since "session_id" is a legacy concept and should
not be used in the converged project. Fortunately this field does not
actually serve any purpose. But in order to cleanly remove it a 3-step
approach is required.

Step 1 (qcacld Change If6cf48ccbfe87b23b275720df51c6cc26af9fa5e):
Remove the logic from the converged NAN code which currently reads
this field and logs the value.

Step 2 (qcacld-3.0 Change I2819556d48a9dd901158aaa04d6bda9c36f33012):
Remove the logic from the legacy NAN code which sets this field.

Step 3 (this change):
Remove the session_id field from struct nan_datapath_peer_ind.

Change-Id: Ibeb8007c96ae1a902bfd7dd99a42ba4a291a1dc6
CRs-Fixed: 2284401
2018-07-27 12:35:08 -07:00
Arif Hussain
f0e87032dc qcacmn: Use CONFIG_MCL flag to define MCL_OR_WIN_VALUE
Use CONFIG_MCL flag to separate MCL vs WIN version of
MCL_OR_WIN_VALUE macro.

Change-Id: Id14200ceb261eb10f9582ebefd75e06a4fe9f17f
CRs-Fixed: 2283692
2018-07-27 09:09:56 -07:00
Nirav Shah
c3f3f9d4a8 qcacmn: QDF: Add logging macros without function/line info
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.

Change-Id: Ibc5745eae277110e884882891d14d3714e0d3ab4
CRs-Fixed: 2278876
2018-07-27 09:09:53 -07:00
Arif Hussain
4c6f33a07e qcacmn: Add 2G channel active dwell time CFG/INI items
Add ini item to configure active dwell time of 2.4GHz band channels,
This will help to reduce AP search failure probability & hence
connection latency in 2.4GHz band channels especially in noisy
condition by increasing active dwell time.

Change-Id: I05259a8f1fd4a5c67da42e516721a01d32fa652e
CRs-Fixed: 2283692
2018-07-27 01:21:39 -07:00
Arif Hussain
7fc2561205 qcacmn: dfs: Fix reset delay line log for bin5 radars
Some dfs domains do not support bin5 radars and bin5 tables
will be null for these domains. So do not log error if number
of bin5 radars are zero.

Change-Id: If9cceae38fa71d1b9b2413f490976ab9f5156086
CRs-Fixed: 2285127
2018-07-26 23:41:16 -07:00
Jeff Johnson
589959b228 qcacmn: Remove session_id from nan_datapath_peer_ind (Step 1)
Currently struct nan_datapath_peer_ind contains the following:
	uint8_t session_id;

This is problematic since "session_id" is a legacy concept and should
not be used in the converged project. Fortunately this field does not
actually serve any purpose. But in order to cleanly remove it a 3-step
approach is required.

Step 1 (this change):
Remove the logic from the converged NAN code which currently reads
this field and logs the value.

Step 2 (qcacld-3.0 Change I2819556d48a9dd901158aaa04d6bda9c36f33012):
Remove the logic from the legacy NAN code which sets this field.

Step 3 (qcacld Change Ibeb8007c96ae1a902bfd7dd99a42ba4a291a1dc6):
Remove the session_id field from struct nan_datapath_peer_ind.

Change-Id: If6cf48ccbfe87b23b275720df51c6cc26af9fa5e
CRs-Fixed: 2284399
2018-07-26 12:23:28 -07:00
Priyadarshnee S
973bc0affa qcacmn: Add support for twice antenna gain param
Existing antenna gain command does not take odd antenna gain value that is
gains are not supported in steps of 0.5db. antenna_gain_half_db pdev
param provides this support. Added WMI and CDP changes to configure/read
this data.
CRs-Fixed: 2024854
Change-Id: I47da9eed74a1a0180cefb4c3f47bc4340da1bdfd
2018-07-26 03:22:01 -07:00
Nirav Shah
87668f872b qcacmn: Add compilation flag for enter/exit macros
Map all enter/exit log macros to enter/exit QDF TRACE macro
to provide option to compile out enter/exit logs if required

Change-Id: I913ef0fb2486fde6b2ec4dfe8465884ca4d66ce4
CRs-Fixed: 2274857
2018-07-25 09:40:54 -07:00
Ashish Kumar Dhanotiya
4b47f374dc qcacmn: Add support to disable channel list
Propagation from prima to qcacmn

Add support to disable channel list received with command
"SET_DISABLE_CHANNEL_LIST".
As part of this command, number of channels and list
of that many channels should be given. When SAP comes up, disable
the channels received in the command. If any of the interface
is up on any of the channel from the list, first disconnect
the interface and start the interface on the new channel.

Change-Id: I3c7810bfde78878a3e60570a13bf2741e1da599b
CRs-Fixed: 2225865
2018-07-25 06:06:00 -07:00
Shiva Krishna Pittala
0baf52bdf7 qcacmn: Fix buffer alignment check in target_if_dbr_replenish_ring
target_if_dbr_replenish_ring should check the mapped physical address for
agreed byte boundary alignment. Fix the logic in the check.

Change-Id: I05058ae69df8a2ee2caf9ce1295c0a2e9026511c
CRs-Fixed: 2283230
2018-07-25 04:34:46 -07:00
Shiva Krishna Pittala
9f8db12851 qcacmn: Move init and exit of nbuf debug out of MEMORY_DEBUG
Move qdf_net_buf_debug_init and qdf_net_buf_debug_exit out of
qdf_mem_debug_init and qdf_mem_debug_exit respectively so that
NBUF_MEMORY_DEBUG can be enabled irrespective of MEMORY_DEBUG.

Change-Id: Ia57badf850aad00975305a08508e63bab7cb4908
CRs-Fixed: 2284116
2018-07-25 04:34:43 -07:00
Soumya Bhat
14b6f26e71 qcacmn: Add multicast address in tx_capture header
In existing code peer's mac address is populated in tx_capture
receiver address field. In case of multicast and broadcast packets
the packets is transmitted on BSS peer so in case of broadcast/multicast
packets the transmitter address is same as receiver address in tx_capture
header.

Add change to populate receiver address field with ethernet destination
address in case of bss peer is tranmit status.

Change-Id: Ie9495d51391454313b1697ecedb8e8dec0459565
CRs-Fixed: 2261473
2018-07-25 01:24:31 -07:00
Edayilliam Jayadev
b3911b4c48 qcacmn: Initialize spectral samp message with zero
Initialize the spectral samp message structure to zero.

CRs-Fixed: 2278403
Change-Id: I5d36662db32820c40f7fb2eafb56942d8654e7f6
2018-07-25 01:24:29 -07:00
Amar Singhal
937ba5df0c qcacmn: Define DSRC regdomains
ETSI10 and FCC10 regdomains are DSRC regdomains. FCC10 is used by US
and ETSI10 is used by many european countries. Add full country mapping
table for DSRC regdomains. Also separate out channel definitions based on
DSRC.

Change-Id: I0c4c44e7189e88e397c21b2ceada325ce06a88f7
CRs-Fixed: 2271736
2018-07-24 22:18:43 -07:00
Jeff Johnson
72eeaec103 qcacmn: Clean up the extscan unified WMI (phase 2)
For a full explanation of the problem and phased solution refer to
"qcacmn: Clean up the extscan unified WMI (phase 1)", Change-Id
I11800361b572331cfada00fb7d518c314df20b43, in the qca-wifi-host-cmn
project.

For phase 2 (this change):
Replace all references of the badly named identifiers with references
to the properly named substitutes. Note that this phase may touch
multiple repos and may involve a number of separate changes.

Change-Id: Ie19d632faa50b23f18a2214a7b2502830ff3fbd3
CRs-Fixed: 2282767
2018-07-24 20:35:51 -07:00
Wu Gao
0dfb9b6854 qcacmn: Define the APIs to cleanup roc and tx action by vdev or psoc
Define the APIs to cleanup roc and tx action by vdev or psoc in p2p
component, and remove cleanup task in p2p suspend handler since
scheduler thread in suspend state already.

Change-Id: I4e67e99569f62ee62715dcf7e4c45f136c6f1719
CRs-Fixed: 2283301
2018-07-24 18:53:00 -07:00
Wu Gao
81c80a016f qcacmn: Define configures about TDLS
Based on converged cfg component, define TDLS configures and APIs to
get or set these configures.

Change-Id: I86f61246b810c7f25a74c814df20d0e2c810b292
CRs-Fixed: 2277559
2018-07-24 16:58:37 -07:00
narayan
8235eb53c1 qcacmn: Fix for BMI transaction timed out
Root Cause : We are observing BMI transaction issue beacuase the
             Fw signal is getting timed out as FW independent bit
             is not getting set.
Solution : Read the register value for flushing the PCIe write

Change-Id: I1c877449104dc9e23eaaa18ef848730c81dd5c02
CRs-Fixed: 2266242
2018-07-24 16:58:35 -07:00
Mohit Khanna
dba82f2bfe qcacmn: Add API to get mon mode mask in interrupt mode
Currently, monitor mode mask is being set while in interrupt mode. If
monitor mode rings are being processed in timer context(polled), both
timer and RX softirq end up processing monitor mode rings leading to
race condition. Monitor mode ring processing code is written to be
executed by a single context - either timer or softirq, not both.

Add an API to return zero monitor mode mask while in interrupt mode in
case timers are being used to process monitor mode rings.
So, in case packet log is enabled(based on a timer), regular interrupt
processing will not process monitor mode rings. It would be
done in a separate timer context.

Change-Id: I5cf5c881c2e2e07bac1b46646ee2a3b7cf42ef13
CRs-Fixed: 2266353
2018-07-24 16:58:33 -07:00
Rajeev Kumar Sirasanagandla
66970850d9 qcacmn: Add WMI layer support for action OUI extensions
Add WMI support to send action OUI extensions to firmware.
For STA interface, this feature is intended to control mode of connection,
connected AP's in-activity time, Tx rate etc.,

Change-Id: I6a0bc9d3f7f0d57805b872cae4baa1fe84fb8193
CRs-Fixed: 2254509
2018-07-24 13:20:42 -07:00
Liangwei Dong
02bcfd6c99 qcacmn: Add Band selection for NSS Update API
Add parameter to NSS Update API to specify
which Band to downgrade/upgrade.

Change-Id: I57ae4304fbf8de366531154f03d04792c18e176d
CRs-Fixed: 2256803
2018-07-24 04:46:26 -07:00