Commit Graph

5757 Commits

Author SHA1 Message Date
gaurank kathpalia
6d113e258a qcacmn: Fix BSS scoring params
Currently the driver calculates the nss score
based upon the max capability of the AP, and not the
hw_mde config which would be there after connection
for example, the driver calculates the score for a
2x2 11n AP, and 1x1 VHT (11ac) AP, it connects to the
11n AP in 1x1 mode, if a concurrent connection is
present, which affects throughput

Fix is to check whether the current AP channel results
in DBS or not, if yes then change the NSS to 1 instead of
2

Change-Id: I80e2af00044b760325eb1a51b09a45189d58a417
CRs-Fixed: 2271976
2018-10-05 17:39:46 -07:00
Sathyanarayanan Esakkiappan
29c8fd48da qcacmn: Update Interrupt name list
Update Interrupt name list of dummy_irq handler.

Change-Id: I8e79f6e64a0fec2bb72d4c44cd8647669cbb44cf
2018-10-05 17:39:43 -07:00
Vivek
b5eee614ee qcacmn: Use wlan_serialization_find_api to find matching command
With the new serialization code, the older instances of code,
where the queue traversal to find matching cmd was done
from the public API was replaced with wlan_serialization_find_cmd API.

However, there was an instance where the list traversal was done from
the public API and is now replaced with wlan_serialization_find_cmd API.

Change-Id: Idc37f2bdd52cedc578b30a71517c9e57453f25d0
CRs-Fixed: 2312992
2018-10-05 15:46:55 -07:00
Tallapragada Kalyan
2ae71e0531 qcacmn: Add AST entry for Destination MAC in RX path
Because of a HW issue we have added a WAR where we do
learning even on destination MAC address. This will ensure
da_is_valid even for forwarding traffic and HW will cache
this entry for subsequent pkts there by we achieve better
throughput in UL.

Change-Id: Ib61693e9ce52b3a1cdcd4c34eabb3d8368b1ef13
2018-10-05 15:46:53 -07:00
Dundi Raviteja
1c6217a666 qcacmn: Add qdf abstraction for kstrtouint
Add QDF abstraction for kstrtouint

Change-Id: I02711b4d0e528e1db546dde18f1b65539ad55cc6
CRs-Fixed: 2327693
2018-10-05 15:46:50 -07:00
Tallapragada Kalyan
5deeef2fec qcacmn: Add support for MEC stats and null queue stats
Add support for MEC stats and null queue stats

Change-Id: Ie523d8e5cbca6660cd5477d152360db448d75708
2018-10-05 15:46:46 -07:00
Edayilliam Jayadev
2256850e61 qcacmn: 160 MHz/80p80 support for gen III Spectral
For generation 3 spectral reports for the 80 MHz segments
come as part of different events. To deal with this a
state machine is added to report handler. Noise floor
value of the lowest chain in the chain mask is populated
in the SAMP message.

CRs-Fixed: 2236331
Change-Id: Ie24426449cf8503c9d7f7c30ca617a6697ca2b5e
2018-10-05 02:14:07 -07:00
Sathish Kumar
a8dcd50683 qcacmn: Featurize WMI APIs and TLVs that are specific to WIN
In the existing converged component, WMI TLV APIs are implemented in
a generic manner without proper featurization. All the APIs exposed
outside of WMI are implemented in wmi_unified_api.c and all the APIs
forming the CMD or extracting the EVT is implemented in wmi_unified_tlv.c.

Since WIN and MCL have a unified WMI layer in the converged component and
there are features within WIN and MCL that are not common, there exists a
good number of WMI APIs which are specific to WIN but compiled by MCL and
vice-versa. Due to this inadvertent problem, there is a chunk of code and
memory used up by WIN and MCL for features that are not used in their
products.

Featurize WMI APIs and TLVs that are specific to WIN
- Air Time Fareness (ATF)
- Direct Buffer Rx (DBR)
- Smart Antenna (SMART_ANT)
- Generic WIN specific WMI (AP)

Change-Id: I7b27c8993da04c9e9651a9682de370daaa40d187
CRs-Fixed: 2320273
2018-10-05 02:14:04 -07:00
Dustin Brown
02818ec2e5 qcacmn: Log to console per log level
Currently, every message which is logged to console is logged at the
same level. Instead, log each message using an appropriate pr_* API
based on the log level of the message being logged.

Change-Id: I0638f3ab155576ed87d663a4b060d16969cf816c
CRs-Fixed: 2327148
2018-10-05 00:27:49 -07:00
Dundi Raviteja
818801ab85 qcacmn: Relocate schedule scan plan parameters
Relocate schedule scan plan parameters to scan component.

Change-Id: Ia882a341fa569540582dcd6691217c7af9b528f8
CRs-Fixed: 2324159
2018-10-04 22:52:59 -07:00
Ruchi, Agrawal
9d28e759ad qcacmn: dscp tid map change for second h/w version
change to update dscp tid table of hardware for
second version of hardware

Change-Id: Ia53886f677061e2fff819ac1adcc64a17b153b4d
CRs-Fixed: 2320609
2018-10-04 15:52:54 -07:00
Basamma Yakkanahalli
98730d5d12 qcacmn: WMI API to send beacon offload control for non tlv
The existing Beacon offload control WMI command is used
to control beacon tx to intimate FW for a VAP the beacon
is suspend or resume.
Added API for non tlv to send WMI_BCN_OFFLOAD_CTRL_CMDID
command to FW.

Change-Id: Ia02f4c7f317460ab766ca765bab14e0cd7acd879
CRs-Fixed: 2269491
2018-10-04 15:52:51 -07:00
Yeshwanth Sriram Guntuka
d3ceb840a7 qcacmn: Release vdev ref in os_if_ndp_end_ind_handler
NAN vdev ref count incremented as part of end_ind handler
is not released which will result in the nan vdev not
getting physically deleted.

Fix is to release nan vdev ref in os_if_ndp_end_ind_handler.

Change-Id: I31a32fa241fb9e86d3a64d490722bc42905970c4
CRs-Fixed: 2325580
2018-10-04 14:05:43 -07:00
Om Prakash Tripathi
feffc52d97 qcacmn: Delete unnecessary print "failed to post to sch queue"
Delete print "failed to post to QDF_MODULE_ID_SCAN" as it doesn't
gives any useful info. How many times failure has happened can be
read from __sched_dup_fail_count.

Change-Id: Id4ec411d5a32f09c971330e860b50d1a91e7c70b
CRs-Fixed: 2326611
2018-10-04 12:17:05 -07:00
Kai Liu
598b1dd3ae qcacmn: claim host only when there are packets to send
Async task thread will claim sdio bus, this claim action will
keep sdio clock on.

During system suspend, after mmc controller suspended, wlan
claim sdio, then it will cause mmc exit suspend as it found clock is on.
Move this claim action before bus transaction to avoid rebundant claim.

Change-Id: I3bab449d0a93c9107c455ee7dbcc6df99ca28636
CRs-Fixed: 2299526
2018-10-04 03:37:10 -07:00
Vivek
068d14f8e1 qcacmn: Validate qdf_nbuf_clone return before calling mgmt rx cb
For more than one registered mgmt rx callbacks, we clone the
mgmt rx buf and call each rx handler. We need to check the return
type of qdf_nbuf_clone before we call the regsitered handlers.

Change-Id: Ic8513fc51954fb88c80ae6822e0fa45e34bcf12c
CRs-Fixed: 2322631
2018-10-04 03:37:06 -07:00
Amar Singhal
49ba607741 qcacmn: Rate limit the mgmt frame error messages
Management frame error messages can occur quite frequently.
Therefore rate limit them.

Change-Id: I9caa71031e41f3aca2d2bed787c4f5b72d516ded
CRs-Fixed: 2326294
2018-10-04 03:37:03 -07:00
Amir Patel
12550f6315 qcacmn: Host DP changes for TQM bypass mode
Add support to process HTT completions sent by FW for multicast/broadcast
frames sent in TQM bypass

Change-Id: If3fca3384156ce93f719bf15ef14b98ea4974f92
CRs-Fixed: 2301453
2018-10-04 01:51:56 -07:00
Abhinav Kumar
90c7d6b010 qcacmn: Add SRD channel check in restart SAP
Currently the driver doesn't have a check to bring
up a SAP on STA SCC channel if its a SRD channel
and does force SCC on it, even if SRD master mode
is not supported.

Fix is to check the SRD ini before SAP bringup
on the STA channel.

Change-Id: I850d8b252afb20d9e4374e1fb4932d7ef17f3e51
CRs-Fixed: 2302742
2018-10-03 20:24:22 -07:00
Bala Venkatesh
a670c5cc1d qcacmn: Update TDLS opclass correctly to FW
Due to change in Opclass calculation in the new
regulatory component invalid opclass is returned for the
TDLS component. Update arguments to calculate opclass correctly
to regulatory component.

Change-Id: I062bbb55d283f9525da241d32177e26d07aa8590
CRs-Fixed: 2325834
2018-10-03 16:05:42 -07:00
Arif Hussain
b91687b07b qcacmn: Fix validation of stats_req_type in stats component
Use correct validation range.

Change-Id: I8ba12efee1f2ffac5a2193c7f9f5a5e44a1c8301
CRs-Fixed: 2326371
2018-10-03 14:13:57 -07:00
Dustin Brown
dae10a5fbc qcacmn: Add queue information to scheduler history
In order to triage latency issues in the scheduler thread, track which
queue a message was queue in, when each message was queued, how long it
spent in queue, and the depth of the queue at the point of insertion.

Change-Id: I83edd04e668d5a2674ca71495fc904092b3ab800
CRs-Fixed: 2322561
2018-10-03 11:48:07 -07:00
Nandha Kishore Easwaran
27551277a1 qcacmn: Add WMI param to reset beacon stats
Add new WMI param to reset beacon counter in FW.

Change-Id: I03c58b492a606ee3f9e22b783a0dc2177edbb6db
CRs-fixed: 2250012
2018-10-03 08:33:27 -07:00
Rohan Dutta
0bdfabfecd qcacmn: Add support to check peer has mcast cipher
Add support to check if peer has MCAST cipher set

Change-Id: I9eb2983c33583b4af39d07a5793993a56b7d27ad
2018-10-03 05:10:56 -07:00
Anish Nataraj
b049be7356 qcacmn: Add Enumeration for ioctl for video delay counters
Add enumeration for video delay counters

Change-Id: Idddbc365027ad1aa4bbaadee090960df1d8af3b2
2018-10-03 02:44:50 -07:00
Balamurugan Mahalingam
764219e1a8 qcacmn: move some hal functions to hal_generic_api.h
Functions hal_rx_wbm_err_info_get, hal_tx_comp_get_release_reason,
hal_rx_dump_mpdu_start_tlv uses some hardware macros directly and the
value differs between qca8074v1 and qca8074v2 targets.
Move these functions to generic api file and compile it per target.

Change-Id: Ib78fb6e69238577aac64da3f60f38a72cee316b0
2018-10-03 02:44:47 -07:00
Balamurugan Mahalingam
fa1d9c7098 qcacmn: group hal tx and rx functions
keep hal tx and rx functions grouped as it will look clean
and avoid confusions while browsing code for others.

Change-Id: I519690d42cd077689bf7afe697908f43d7055da5
2018-10-03 02:44:43 -07:00
Chaithanya Garrepalli
1b0579d9a6 qcacmn: remove reference of self_ast_entry in peer while deleting it
Reset the self_ast_entry in peer to NULL when self_ast_entry is deleted
to avoid use after free or double free conditions

Change-Id: Ic1779e35cbd98ddc0333808152e4c388449a45af
CRs-fixed: 2321768
2018-10-03 02:44:41 -07:00
Rajeev Kumar
b7dcab9948 qcacmn: Use pr_info for wlan driver console logging
Use pr_info for wlan driver console logging such that its
backward compatible with qcacld-3.1 and by default info log
levels are not logged on console unless kernel's printk current
console log level is changed to print info logs as well on console.

Change-Id: I33ca583743a9b77253390abcece6c8067f38c35d
CRs-Fixed: 2326304
2018-10-02 22:28:45 -07:00
Rajeev Kumar
1de8fdf2ab qcacmn: Do not schedule a work before reschedulign tasklet
Current wifi driver breaks tasklet storm by scheduling a work
whenever wifi driver tasklet reschedules itself to avoid excessive
tasklet storm and wd barks as a side effect. Remove work scheduling
from tasklet reschedule such that tasklets can be rescheduled as
fast as possible and reap CE rings as fast as possible and let linux
kernel handle the tasklet storm by bringing in ksoftirqd as needed.

Change-Id: I985369f534c09903b2d269f858adb88640e4fd2f
Crs-Fixed: 2325935
2018-10-02 19:03:40 -07:00
Yuanyuan Liu
a33c0bea90 qcacmn: Fix constant-logical-operand error
Fix constant-logical-operand error, use '&' for a bitwise operation.

CRs-Fixed: 2323306
Change-Id: I926cdeab6d173bf9428d1f925886dc33d50c2249
2018-10-02 15:37:20 -07:00
chenguo
f44ac20b0c qcacmn: AC based TX flow control
Implement per access category flow control. Make sure lower AC
traffic, such as BE, will not starve higher AC, such as VI and VO,
traffic inside a single vdev.

This change is part of FR49094

Change-Id: I6aa15832eb48e8f3ada00eb29a7bc00999edaafd
CRs-Fixed: 2304436
2018-10-02 15:37:17 -07:00
Shashikala Prabhu
70da943414 qcacmn: Add wmi wrapper function to get target pdev id from host
Add wmi wrapper function to convert host pdev id to target  pdev id.

Change-Id: I3824a7556bf0b740d069602e9ee5a572c427c49c
CRs-Fixed: 2316715
2018-10-02 13:48:38 -07:00
Tushnim Bhattacharyya
e269fc71f2 qcacmn: Protect sap restart work for driver unload
Protect sap restart work handler from SSR to avoid accessing
data structures which are freed already.

Change-Id: I75d2032b022aa68817ec102cbe65f635a627eb82
CRs-Fixed: 2325966
2018-10-02 13:48:35 -07:00
Kiran Kumar Lokere
1ea0e2a6ae qcacmn: Fix the possible OOB access in channel avoid event
Fix the possible out of bound access while processing the
channel avoid frequency event from FW.

Change-Id: Ib49df0ebd785944b7cbbfa5927613887dd35d9ff
CRs-Fixed: 2308629
2018-10-02 12:08:07 -07:00
Tushnim Bhattacharyya
16e7479fa6 qcacmn: Fix kw issue in target_if_nan_deregister_events
Potential NULL pointer dereference of handle in
target_if_nan_deregister_events. Add null check
in the function.

Change-Id: Ie30720b525c457e6c805bd0d212044be9270bd53
CRs-Fixed: 2323349
2018-10-02 05:44:16 -07:00
Harprit Chhabada
b07c848f31 qcacmn: Add bound check for num_per_chain_rssi_stats
Add bound check rssi_event->num_per_chain_rssi_stats in
extract_all_stats_counts_tlv().

ev->num_chain_rssi_stats in
target_if_cp_stats_extract_vdev_chain_rssi_stats()
is derived from rssi_event->num_per_chain_rssi_stats
and is used as limit in for loop.

As length was never checked multiple qdf_mem_copy calls in
wmi_extract_per_chain_rssi_stats() used in
target_if_cp_stats_extract_vdev_chain_rssi_stats()
will result in an OOB issue.

Change-Id: I204744e1435e687e33f2165744a92cdb8b975a51
CRs-Fixed: 2322298
2018-10-02 04:08:21 -07:00
Liangwei Dong
6d63c822b8 qcacmn: Add get Chan DFS attribute API
DFS chan "state" will be set to CHANNEL_STATE_DISABLE
if the dfs chan is added to NOL.
Add the new API wlan_reg_chan_has_dfs_attribute
to get the attribute from "chan_flag" which keeps
the chan's initial dfs attribute.

Change-Id: I5149d958c0dcb1e5909e02bd5be9acdf9fca7f2f
CRs-Fixed: 2324648
2018-10-02 02:31:34 -07:00
Harprit Chhabada
ff17327ad5 qcacmn: Add bound check for desc_id
Add bound check for desc_id in tgt_mgmt_txrx_tx_completion_handler()
to check OOB issue.

Change-Id: Ib28852a1c1ccf06af14004bf4001ce0938391f3d
CRs-Fixed: 2318632
2018-10-01 18:38:25 -07:00
Alok Kumar
fea70e3c49 qcacmn: Fix qdf_mem_header_assert_valid check failure
In ce_alloc_ring_state(), in case of DMA coherent failure driver
trying to free wrong pointer, instead of allocated pointer which
leads to qdf_mem_header_assert_valid check failure.

Free the actual allocated pointer in case of DMA coherent failure

Change-Id: I227c8240ca37a138335bb0766445564a10493c56
CRs-Fixed: 2320196
2018-10-01 14:59:50 -07:00
Krunal Soni
ef1f0f90fc qcacmn: check hal_ring pointer before servicing the ring
Do null check before servicing the ring. When dp_service_srngs()
is common API which gets called when interrupt gets fired for
any ring. Within this API, driver goes one by one to each ring
and service the rings as it is not obvious from interrupt line that
which particular service ring needs to be served.

So race happens when rings are getting initialized and packet has been
arrived to one of the rings. Due to dp_service_srngs() API's
implementation, driver goes to one by one each ring without checking
if all rings are initialized.

CRs-Fixed: 2310496
Change-Id: I3c8f668756c8d266abe082e8473d54cb4df9065e
2018-10-01 14:59:47 -07:00
Akshay Kosigi
a4f6e173c1 qcacmn: Replace target related feature values with INI parameters
Introduce INI parameters to fetch feature related values based on target
type and add CDP interface to get dp INI parameters to control path

Change-Id: Id6a3f409106eb7dc01b08a3f1ec00dbe7efc359f
2018-10-01 08:04:59 -07:00
Rakshith Suresh Patkar
169fce61ef qcacmn: Add QDF API to update debug node for nbuf
In case of preallocation of nbufs, the debug nodes contain
allocation information with respect to the allocator
and not the user.
For more accurate debug info, add new QDF API
qdf_net_buf_debug_update_node to update the debug info
when the nbuf is requested.

Change-Id: Idfbcd15b6c561bbb57ba98a6b8376557ba909eec
CRs-Fixed: 2322989
2018-10-01 08:04:55 -07:00
Anish Nataraj
eb30aa7f83 qcacmn: Correct the Frame control info valid in hal API
Instead of frame control info valid parameter data sequence
control parameter was passed, corrected it

Change-Id: Iccaeb286c1003cbb58c5ebcacf4b0d99c979cbbc
2018-10-01 04:19:59 -07:00
Krishna Rao
3fa42be5d4 qcacmn: Add definitions for Spectral linear bin scaling
Add definitions for Spectral linear bin scaling, including conversion
functions, RF parameter definitions, and hardware generation
specifiers.

CRs-Fixed: 2294176
Change-Id: I6e1eb2ce3ec19d8734facb88c6329fe0026ecce0
2018-10-01 02:37:18 -07:00
Vivek
0626a4da6c qcacmn: Wait for scheduler buffers before we panic
The scheduler can run out of buffers and we panic
whenever this happens. However in the older code
we wait until the failure count of getting scheduler
buffers reaches a defined limit, thus making buffers
available in due time and the panic was seen in rare cases,
where failure count was exceeding the defined limit.

With the qdf_flex_mem supprt added for scheduler, the
wait to panic, when the failure count was removed and
we panic when the first failure to get scheduler buffer
is reached. This change adds to wait until the failure
count reaches the limit and then panic.

Change-Id: Ie8774830dc0cefdfccb1473216a9300609ab65bb
CRs-Fixed: 2322049
2018-09-30 17:31:59 -07:00
gaurank kathpalia
1988b55586 qcacmn: Redefine dfs data structure to fix prealloc size concern
Redefine dfs filter type to avoid prealloc problem by making one
large chunk into multiple smaller chunks.
With current data structure, dfs attach was requesting huge chunk
of memory from the heap which results in failure.

Fix is to modify the data structure so that one large chunk
is made as multiple smaller chunks.

Change-Id: Iaa8d0b1b6e4b192b37e165c936920baa5d10a23b
CRs-Fixed: 2323927
2018-09-30 10:38:54 -07:00
Abhishek Singh
3e940d1376 qcacmn: Fix purging of active command during sme close session
In wlan_serialization_purge_cmd_list, driver stops the active cmd timer
and destroy it and thus in wlan_ser_cancel_non_scan_cmd as driver is
not able to get the timer the active cmd is not removed.

As wlan_ser_cancel_non_scan_cmd already takes care of the stopping and
destroying the timer and remove the logic from
wlan_serialization_purge_cmd_list.

Also update the active command bitmask and active/pending blocking
flags when an command is flushed.

Change-Id: Ie206f08920c2830c935d0aacb204dc4ee2676c91
CRs-Fixed: 2324890
2018-09-29 03:26:55 -07:00
Sravan Kumar Kairam
9066ad3aa7 qcacmn: Fix implicit conversion compilation error
Fix compilation error of  implicit conversion from enumeration
type 'enum ipa_wlan_fw_ssr_event' to different enumeration type
'enum ipa_wlan_event' in function __qdf_to_ipa_wlan_event.

Change-Id: I7b5d3e964a5fa070a89aaf21bcb4ea2237a85a58
CRs-Fixed: 2324656
2018-09-28 23:38:52 -07:00
Ashish Kumar Dhanotiya
04c074d219 qcacmn: Update correct PHY mode while processing ch_info_req
Currently PHY mode is not getting updated and it is being set as
0, which is resulting in an invalid channel setting to FW
for LOWI.
To address this issue update the PHY mode correctly.

Change-Id: I77b2a517915a05d6a13dec5cee064d83bfae2992
CRs-Fixed: 2318563
2018-09-28 19:01:52 -07:00