Commit graph

5,742 commits

Author SHA1 Message Date
Dustin Brown
e72b7f7e4c qcacmn: Add nbuf alloc failure to nbuf history
In addition to the other nbuf history events, track allocation failures.
This allows root causing issues due to nbuf exhaustion.

Change-Id: Ia0bbc6f12d26e32fcdb4cf7d0efef328417436ce
CRs-Fixed: 2329461
2018-10-11 05:35:30 -07:00
Gerrit - the friendly Code Review server
634d27fc4c Merge changes into wlan-cmn.driver.lnx.2.0 2018-10-10 19:21:27 -07:00
Vignesh U
aea8656c81 qcacmn: Update nol properly
When second segment bangradar is issued, the primary channels are
added to NOL. During preCAC, when a bangradar or real radar is injected in
the second segment, no channels are added to NOL.

dfs_seg_id is updated by enhanced bangradar even when the command is not
issued. During preCAC, the second segment frequency stored in current
channel is invalid and it is stored in dfs itself.

Correct the condition for enhanced bangradar command. Update dfs_seg_id and
radar found segment id. Move the portion of code that update radar_found
parameters when enhanced bangradar command is issued. This portion checks
for radar found segment id that would not have been updated yet. Use proper
second segment frequency to add to NOL during preCAC.

Change-Id: I5e1f1004b45bc30b5da7bfa174a5c03bdea4fa71
CRs-Fixed: 2303458
2018-10-10 09:18:09 -07:00
Balamurugan Mahalingam
af1db01d92 qcacmn: Add QDF_GLOBAL_WALTEST_MODE enum
wifi driver uses this enum to configure the force the target into
waltest mode

Change-Id: I8de3d12b5e81744cd16bbb72900bd73877d16ced
CRs-Fixed: 2229936
2018-10-10 09:18:06 -07:00
chenguo
35695ddc8e qcacmn: Add radiotap dissector for TB-PPDU
So far, only HE_TRIG packet type parsing is supported for TB-PPDU
(OFDMA UL)frames, which is not enough for plugfest tests. Add all
radiotap dissecting from  HE Data 1 to HE Data 6

CRs-Fixed: 2316408
Change-Id: I49d91d4981291827b20f325d459fd1e60f3cc271
2018-10-09 23:20:17 -07:00
Venkata Sharath Chandra Manchala
389c4e1f70 qcacmn: Helper function for Txrx_stats
Add a helper function for txrx_stats
to display all the statistics
supported for Lithium based products.

Change-Id: Ieb2d088274dfcc8e9ffc6ac34638404f0d4b2eba
CRs-Fixed: 2327066
2018-10-09 23:20:15 -07:00
Mohit Khanna
91af91fb44 qcacmn: Revert additional hif_runtime_pm_put call
hif_runtime_p_put was mistakenly added at two places on the
TX completion path due to a merge issue. Revert the additional call at
dp_tx_comp_handler.

Change-Id: I26a0a9188a490d60e050adbd7ba04e88e213c0b9
CRs-Fixed: 2329466
2018-10-09 21:35:49 -07:00
Chaithanya Garrepalli
3ba616a89a qcacmn: add locks in dp_get_vdev_from_soc_vdev_id_wifi3 API
In dp_get_vdev_from_soc_vdev_id_wifi3 add vdev list lock
while traversing through pdev->vdev_list

Change-Id: I24652a7a65247625b3a6da092476287bf8560e1b
CRs-fixed: 2323655
2018-10-09 19:58:48 -07:00
Tallapragada Kalyan
20b46778a7 qcacmn: Disable DA port learning for HKv2
DA based port learning is not required for HKv2 as
this issue is fixed in HKv2 Hardware

CRs-Fixed: 2329920
Change-Id: If006ce8fe5eb5d7e26ba4d30fd1d9cd43d5da480
2018-10-09 19:58:45 -07:00
Nandha Kishore Easwaran
dfa5fa4106 qcacmn: Add 8074V2 type for interrupt handling
Add 8074V2 type check in enable and disable irq
routine.

Change-Id: I0e22d3f6a134c9de2148730efbafed4e1b5eace2
2018-10-09 19:58:43 -07:00
Tushnim Bhattacharyya
a13d706459 qcacmn: Fix OOB in __policy_mgr_check_sta_ap_concurrent_ch_intf
Fix out of bound array access for operating_channel[] in
__policy_mgr_check_sta_ap_concurrent_ch_intf.

Change-Id: I3945d2fd5b1e3d02a9e827ba4a907b48b4170fd2
CRs-Fixed: 2329332
2018-10-09 14:43:13 -07:00
Arif Hussain
738581ae50 qcacmn: Fix null pointer dereference in wifi_pos_oem_rsp_handler()
Add validation code to make sure wifi_pos_send_rsp
function pointer is not null.

Change-Id: I6761f5065b1a49855afac2691523c41bcf383b2b
CRs-Fixed: 2329346
2018-10-09 14:43:10 -07:00
Subrat Mishra
d95bfa449c qcacmn: Fix FILS IE parsing issue
Fix FILS IE parsing issue in assoc response frame.

Change-Id: I45b554c215280533ae6831d51526b8b98bc46c94
CRs-Fixed: 2329206
2018-10-09 12:37:37 -07:00
Liangwei Dong
89fdd82b93 qcacmn: Skip chanlist event during recovering
Add new qdf API: qdf_is_recovering and
qdf_register_recovering_state_query_callback.
Client driver will register the state query callback
to common driver to report the recovering state.

Regulatory skip the chanlist update event during SSR
to keep the current regulatory setting.

Change-Id: I58e503cce162a0351d566148c1897a5012889c62
CRs-Fixed: 2321820
2018-10-09 10:54:33 -07:00
Pranita Solanke
92096e4912 qcacmn: Calculate total PER value
Write a datapath function to compute total PER value and corresponding CDP
interface to get the calculated value.

Change-Id: I1c7feaf48c55689817b83185a4e6d4b8622e51c0
CRs-Fixed: 2308044
2018-10-09 09:19:59 -07:00
Jeevan Kukkalli
1ef2b73707 qcacmn: Add function to read MDIE
Add function to return a pointer pointing to Mobility Domain IE
of a scan entry.

Change-Id: I61254bfc3de117a2d7cfb187665ac228c9ea383e
CRs-Fixed: 2311319
2018-10-09 06:12:28 -07:00
Krishna Rao
e4de76596e qcacmn: Add WAR to process Gen3 Spectral report mode 1
Add Gen3 Spectral host WAR to remove NULL FFT bins for report mode (1)
in which only summary of metrics for each completed FFT + spectral
scan summary report are to be provided. This would be required on some
Gen3 chipsets (starting with IPQ8074) under the following
circumstances: In report mode 1, HW reports a length corresponding to
all bins, and provides bins with value 0. This is because the
subsystem arranging for the FFT information does not arrange for DMA
of FFT bin values (as expected), but cannot arrange for a smaller
length to be reported by HW. In these circumstances, the host driver
would have to disregard the NULL bins and report a bin count of 0 to
higher layers.

Change-Id: If5fb72805dc80ada0ab617b4b1c2cc9ea497bcf8
CRs-Fixed: 2300251
2018-10-09 00:03:56 -07:00
Shashikala Prabhu
c80456220e qcacmn: Move dfs cac start condition checks to dfs component
Move dfs-cac-start-condition checks to dfs component from MLME component.

Change-Id: Iaab45ce8e298a237b110f3046593fc5801e1673e
CRs-Fixed: 2299517
2018-10-08 22:20:18 -07:00
Yeshwanth Sriram Guntuka
59648ac529 qcacmn: Fix out of bound access in extract_single_phyerr_tlv
Bufp and buf_len are populated in extract_comb_phyerr_tlv
without validating the buf_len which can cause possible
out of bound access in dfs_phyerr_event_handler.

Fix is to validate the buf_len against num_bufp in param_tlvs.

Change-Id: I95e18d7600f8419f31e768fcc18c3024fe37b7db
CRs-Fixed: 2321371
2018-10-08 15:56:56 -07:00
Ajit Pal Singh
47f2d05e03 qcacmn: Do epping credit allocation for USB also
Do Epping credit allocation for USB also.

Change-Id: If86a65b0e61a09b8e064d2b606cac8a2b4c72c49
CRs-Fixed: 2295724
2018-10-08 08:11:43 -07:00
Jingxiang Ge
e00afe8783 qcacmn: Add vdev id sanity check in extract_gtk_rsp_event_tlv
While handling WMI_GTK_OFFLOAD_STATUS_EVENTID, QDF_BUG()
can occur in pmo_tgt_gtk_rsp_evt->pmo_psoc_get_vdev if
vdev_id is out of range. As the value is directly from
WLAN FW and can be outside the trust boundary.

Add sanity check for vdev id once get parameter from
wlan fw.

Change-Id: I335df52fece39c1a51a556ba4678bd43f470673a
CRs-Fixed: 2321523
2018-10-08 05:26:45 -07:00
Chaithanya Garrepalli
cf347d1686 qcacmn: Add APIs to get AST entry with pdev_id
With HKv1 WAR to handle DBDC backhaul SON cases a AST
entry for same mac can exist on different radio added
CDP APIs to support the same

Change-Id: I374b8af3fe5e34f62eeb5b09819e331fdeda602a
2018-10-08 03:36:21 -07:00
Chaithanya Garrepalli
7c8cf12b76 qcacmn: add API to get ast entry from peer ast list
We are adding AST entry to ast_table from
dp_rx_mcast_echo_check in STA mode as in STA mode
we will not get the peer map event.

Find AST entry from the peer ast list to get ast entry
added in host for that particular peer. As in QWRAP
mode there can exist multiple peers with same mac address
and corresponding AST entries will be added

Change-Id: Ia75f88c03c4d0eba0edbebf8e8f40d41396543d5
CRs-fixed: 2307540
2018-10-08 01:53:25 -07:00
Aditya Sathish
a06a063b7d qcacmn: Add host WMI support for EAPOL minrate resource config
Add host WMI support for EAPOL minrate resource configuration.

Through the use of the global.ini configuration parameter -
eapol_minrate_set and eapol_minrate_ac_set, the user can set EAPOL
frames to be sent in minimum rate in tunnel mode. In addition to
this, the user can also select between the 4 ACs (BE, BK, VI, VO)
to send the EAPOL frames.

The changes are reflected in the target resource config which
is sent to the firmware.

Change-Id: Ib9a264b64305bf43708c3c2af3ff254b6cc28477
CRs-Fixed: 2298020
2018-10-08 01:53:22 -07:00
Tallapragada Kalyan
16395277c9 qcacmn: pass pdev wmi_handle to lro hash config
pass pdev wmi_handle instead of soc wmi_handle
for lro hash config to avoid target assert.
CRs-Fixed: 2319084

Change-Id: Ic570b07367cd34b39d50324ff709f827d550b6c8
2018-10-08 01:53:19 -07:00
Tallapragada Kalyan
e61f64cc4c qcacmn: Retrieve MAC address from nbuf for MEC EVENT
because of a HW issue we no longer get the MAC address in
the MEC event notifier, As a WAR we now will be reading the
source MAC address from the nbuf data instead of status word
CRs-Fixed: 2324772

Change-Id: Iab8dc346b9a2108e4cb107fb61d242700a084223
2018-10-07 13:59:01 -07:00
Manikandan Mohan
a45200bb7f qcacmn: Fix out-of-bounds read in extract_ndp_sch_update_tlv
Update WMI_NDL_SCHEDULE_UPDATE_EVENTID handling for possible out
of bounds read when fixed_params->num_channels is greater than
TLV length of NDL channel list or NSS list and fixed_params->
num_ndp_instances is greater than TLV length of NDP Instance list.

Change-Id: Idbd74e30868597c9787095372516b7d7dd12481b
CRs-fixed: 2327673
2018-10-06 16:57:51 -07:00
Manikandan Mohan
c078394102 qcacmn: Fix out-of-bounds read in extract_ndp_confirm_tlv
Update handling of WMI_NDP_CONFIRM_EVENTID for possible out of
bounds read when fixed_params->num_ndp_channels is greater than
TLV length of NDP channel list or NSS list

Change-Id: I3bf429a47c46edbb464cf8447f227f7baa74fbe3
CRs-fixed: 2325849
2018-10-06 16:57:48 -07:00
Tallapragada Kalyan
5e3a39c8d3 qcacmn: add support for Secondary HMWDS ast entry
add support for Secondary HMWDS ast entry

Change-Id: Ibf77659cbc2d7e2b536736d89e747549e269e68c
CRs-Fixed: 2312270
2018-10-06 08:16:22 -07:00
Abhijit Pradhan
9da501e634 qcacmn: Use regdb channels to fill etsi precac required list
Use regdb channels to fill etsi precac required list.

Change-Id: I4b9462c0c69150cf2288e17be0c46029d89e4765
CRs-Fixed: 2318558
2018-10-06 00:01:40 -07:00
Yeshwanth Sriram Guntuka
17f7ea9f26 qcacmn: Fix incorrect NDP ids in NDP end request
NDP ids copied from NDP instance id array for NDP
end request does not use nla_data to copy the ids
resulting in incorrect data getting copied.

Fix is to use nla_data for NDP instance id array to
copy the ids.

Change-Id: I74795367a5c5a57f42cb1a67ece9cebfeb259b71
CRs-Fixed: 2328245
2018-10-06 00:01:36 -07:00
Shashikala Prabhu
e3807d4e50 qcacmn: Fix the nol timeout panic
In macro TAILQ_FOREACH_SAFE, var and tvar point to current head and the
next element respectively. If we unlock the spinlock inside the for loop
and then lock it again, there is a chance (race) that the next element is
pointed to by another thread of execution and both of them may try to
remove the same element at the same time. This may lead to panic.

Instead of using TAILQ_FOREACH_SAFE macro remove the element from the list
one by one using a while loop from the head of the list. Do not lock the
entire while loop, instead lock only during the removal of element from the
list.

This is required because we want to wait for the dfs_remove_from_nol timer
to complete. But the wait should not be done from inside the lock because
the same lock is used by the dfs_remove_from_nol timer.

Change-Id: If820dbb1789b7fcfc33c133b3f90968377bfbf3c
CRs-Fixed: 2322831
2018-10-06 00:01:33 -07:00
Gyanranjan Hazarika
584a187b8d qcacmn: changes for BSS Color Enahancement FR40903
Added WMI extract API for beacon_tx_status_event

Change-Id: I8516184d5734672d56553fb232bd8e84d89ded58
CRs-fixed: 2242109
2018-10-05 22:10:09 -07:00
Gyanranjan Hazarika
2c54581814 qcacmn: Changes for BSS Color Enahancement FR40903
1. QDF_MODULE_ID_BSSCOLOR added for logging
2. BSS Color Offload supported trace added
   as target_if_info

Change-Id: I00db87f6619f7857dd83cf1eb5d805780c501805
CRs-fixed: 2242109
2018-10-05 22:10:06 -07:00
Dustin Brown
121d7d1bff qcacmn: Return QDF_STATUS from qdf_timer_init()
In preparation for QDF timer tracking, return QDF_STATUS from
qdf_timer_init(). This allows callers to handle the eventual possibility
of a QDF timer init failure.

Change-Id: I9da4643610099d32b002bda9218af26247a4edc6
CRs-Fixed: 2327724
2018-10-05 19:58:09 -07:00
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