Revīziju grafs

606 Revīzijas

Autors SHA1 Ziņojums Datums
Alok Kumar
622f2b5797 qcacld-3.0: Protect pktlog under mutex to avoid possible race conditions
Protect pktlog funcitonality under given mutex to avoid possible
race condition between pktlog_release/pktlog_open and pktlogmod_exit.
Also call pktlogmod_exit before calling wdi_event_detach to avoid
accessing freed memory in pktlog release.

Change-Id: I452af523338788447f5c2764e883165237083f7d
CRs-Fixed: 2087777
2019-12-09 23:03:58 -08:00
Li Feng
9df24dbf42 qcacld-3.0: Add comma operator in ol_ops_misc initialization
Add comma operator in ol_ops_misc initialization.

Change-Id: I16e320e677131edc176254c30ee7b1bd2ba4172e
CRs-Fixed: 2577675
2019-12-09 23:03:48 -08:00
Yeshwanth Sriram Guntuka
33861b1adc qcacld-3.0: Cleanup local peer id from ol_txrx APIs
Local peer_id is being cleaned up across DP, HDD and PS/WMA.
So, any references to local peer_id/sta_id will be replaced
by peer mac address and all interactions between the layers
will be based on peer mac address.

Cleanup local peer id from ol_txrx APIs.

Change-Id: Ibc893fdf1f091f9fc423fca71eb96ee405373d99
CRs-Fixed: 2529036
2019-12-06 01:50:57 -08:00
Yeshwanth Sriram Guntuka
18fa38b0ca qcacld-3.0: Cleanup unused ol_txrx APIs [PEER_ID_PHASE2]
Local peer_id is being cleaned up across DP, HDD and PS/WMA.
So, any references to local peer_id/sta_id will be replaced
by peer mac address and all interactions between the layers
will be based on peer mac address.

Cleanup unusued ol_txrx APIs which are based on local peer id.

Change-Id: Ia6949796bf6109884ec066544c39183f934f7d72
CRs-Fixed: 2529014
2019-12-06 01:50:44 -08:00
Yeshwanth Sriram Guntuka
eebaeb7e0b qcacld-3.0: Update timestamp in skb on receiving frag indication
Update timestamp in skb as part of rx frag indication
handler.

Change-Id: I9f2217f12aa4006db36f1a4d123287ec863ffdbe
CRs-Fixed: 2575914
2019-12-05 16:39:00 -08:00
Vevek Venkatesan
b4016095ae qcacld-3.0: remove control path handles from cdp ops
Currently control path handles of pdev/vdev/peer
are given as arguments to cdp ops, which are
directly accessed by dp layer. This can cause a
race-condition in access of the handle if it
has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the psoc handle which can be accessed all over
to retrieve objmgr_pdev from psoc.

- rx_mic_error
- txrx_pdev_attach
- txrx_vdev_attach
- txrx_peer_create

Change-Id: Iaec8b913810f9035faa0010117cdff19bdded37f
CRs-Fixed: 2541431
2019-12-04 07:43:42 -08:00
Nirav Shah
fb9b1df409 qcacld-3.0: Add logic to bundle packets for HL
Add logic to queue and bundle packets before
giving it to scheduler to ensure predictive HTC
bundling for improvement in TX throughput.

Change-Id: Ib00135ca59b4c5f0f05edc93dca115bf17174a36
CRs-Fixed: 2561671
2019-12-01 17:40:55 -08:00
Alok Kumar
939ca50cf2 qcacld-3.0: Update Datastall callbacks definition
Update definitions for datastall callback which posts
DataStall Events.

Change-Id: I1aadb438afeafe1f13114b1472b2280f0f713db4
CRs-Fixed: 2563194
2019-11-26 02:14:27 -08:00
Rakesh Pillai
e9c7f1d89b qcacld-3.0: Check vdev handle before returning opmode
The query for an interface opmode returns the opmode
of a particular interface without checking if that
particular virtual interface handle is valid or not.

Fix this by checking the virtual interface handle
before trying to get the operation mode for that
particular interface.

CRs-Fixed: 2572981
Change-Id: I05b5f88455d6374adb41a037d3c5dda905de1497
2019-11-25 16:14:56 -08:00
Alok Kumar
6220137b8d qcacld-3.0: Populate correct RSSI value for Monitor packets
In Monitor Mode, RSSI is always -96 for packets in TCPDUMP.
Populate the correct RSSI value in Monitor Mode.

Change-Id: Iba9fe7091043d27828f4742058ed3d389cde7e26
CRs-Fixed: 2568129
2019-11-22 05:35:23 -08:00
Vevek Venkatesan
29076ec1d8 qcacld-3.0: cdp: Converge cdp_ipa_ops
Currently cdp ops are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev_id or vdev_id or peer mac address,
which will be used to get the respective handles,
and hence avoiding the unwanted access of the
handles if it has been deleted.

- ipa_get_resource
- ipa_set_doorbell_paddr
- ipa_set_active
- ipa_register_op_cb
- ipa_get_stat
- ipa_tx_data_frame
- ipa_uc_get_share_stats
- ipa_uc_set_quota
- ipa_enable_autonomy
- ipa_disable_autonomy
- ipa_setup
- ipa_enable_pipes
- ipa_disable_pipes
- ipa_rx_intrabss_fwd

Change-Id: I678d7a7de7132417ff6051b0fd6da5d14426d21e
CRs-Fixed: 2540861
2019-11-21 06:12:04 -08:00
Rakesh Pillai
d2e5385d62 qcacld-3.0: cdp: Convergence of cdp_bus_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged bus_ops
- bus_suspend
- bus_resume

CRs-Fixed: 2539749
Change-Id: I7f57c09fe4620f90c5cfab781635f6f0ada08ec5
2019-11-21 06:11:52 -08:00
Rakesh Pillai
6a36b0a26a qcacld-3.0: cdp: Convergence of cdp misc ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged misc_ops
- tx_non_std
- get_opmode
- get_tx_ack_stats
- set_ibss_vdev_heart_beat_timer
- hl_tdls_flag_reset
- set_wisa_mode
- txrx_post_data_stall_event
- update_mac_id
- pkt_log_init
- pkt_log_con_service
- get_num_rx_contexts
- set_wmm_param
- flush_rx_frames
- bad_peer_txctl_set_setting
- bad_peer_txctl_update_threshold
- txrx_data_stall_cb_register
- txrx_data_stall_cb_deregister
- vdev_set_driver_del_ack_enable
- get_intra_bss_fwd_pkts_count
- mark_first_wakeup_packet
- register_pktdump_cb
- unregister_pktdump_cb
- pdev_reset_driver_del_ack
- runtime_suspend
- runtime_resume

CRs-Fixed: 2539735
Change-Id: I2baad09fde29d439ae2099e01e4e68ed6b94196d
2019-11-21 06:11:43 -08:00
Rakesh Pillai
f94b162ed0 qcacld-3.0: cdp: Convergence of cdp_l_flowctl_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged l_flowctl_ops
- register_tx_flow_control
- set_vdev_tx_desc_limit
- set_vdev_os_queue_status
- deregister_tx_flow_control_cb
- flow_control_cb
- get_tx_resource
- ll_set_tx_pause_q_depth
- vdev_flush
- vdev_pause
- vdev_unpause

CRs-Fixed: 2539748
Change-Id: I8ad4a20914c654b8e8aaf629dda7f673fdb110e4
2019-11-11 23:08:02 -08:00
Rakesh Pillai
4981a8f790 qcacld-3.0: cdp: Convergence of cdp_mob_stats_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged mob_stats_ops
- clear_stats

CRs-Fixed: 2539747
Change-Id: I5ee060b62d15380df4b8d15bb5709d700902aafd
2019-11-11 23:07:57 -08:00
Rakesh Pillai
84714471df qcacld-3.0: cdp: Convergence of cdp_ocb_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged ocb_ops
- set_ocb_chan_info
- get_ocb_chan_info

CRs-Fixed: 2539745
Change-Id: I7de53c48ec6b7f0c09be7c9cf642d8cf4f8eae78
2019-11-11 23:07:52 -08:00
Rakesh Pillai
82555082c9 qcacld-3.0: cdp: Convergence of cdp_throttle_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged throttle_ops
- throttle_init_period
- throttle_set_level

CRs-Fixed: 2539744
Change-Id: I0e1339ead92d66463d3b58ed9268c7194fd2bd27
2019-11-11 23:07:46 -08:00
Rakesh Pillai
ef35fab84c qcacld-3.0: cdp: Convergence of cdp_delay_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged delay_ops
- tx_delay
- tx_delay_hist
- tx_packet_count
- tx_set_compute_interval

CRs-Fixed: 2539742
Change-Id: I201d343f4ced3b861a65ddf78e10e66f786e5e91
2019-11-11 23:07:40 -08:00
Rakesh Pillai
a889ffa967 qcacld-3.0: cdp: Convergence of cdp_flowctl_ops
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.

Converged flowctl_ops
- flow_pool_map_handler
- flow_pool_unmap_handler
- dump_flow_pool_info
- tx_desc_thresh_reached

CRs-Fixed: 2539738
Change-Id: I9b11e66d8c2644f16e0f2464c323798a4cba007a
2019-11-11 23:07:35 -08:00
nakul kachhwaha
e3e92ae6db qcacld-3.0: Fix data stall during TDLS Offchan Operation
In non concurrency scenario with TDLS Offchan link, FW is sending
two pauses namely PAUSE_TYPE_CHOP and PAUSE_TYPE_CHOP_TDLS_OFFCHAN
back to back when DUT dwells between TDLS Off channel and AP channel
respectively. HOST handles these events as vdev based event instead
of peer based event and remove all the tx queues from scheduler for
all the peer irrespective of the pause type. This will lead to data
stall in TDLS offchan scenarios, as at any point of time, host will
be receiving one of the two pauses and keep its peer queues out of
scheduler.

Changes are done to decouple the handling of pause/unpause events
for TDLS peers with Offchan enabled from vdev based pause/unpause.
TDLS peers will be paused/unpaused based on PAUSE_TYPE_CHOP_TDLS_OFFCHAN
pause type. Other pause/unpause events will be handled as usual.

Change-Id: Iccb46fd6d121d5df6d53633c9978ddc8e02f588f
CRs-Fixed: 2558612
2019-11-06 23:50:23 -08:00
Nirav Shah
2b3843e027 qcacld-3.0: Make tx resource hi/low threshold configurable
Make tx resource hi/low threshold configurable through
config files and update hi threashold from 7.5% to 8%.

Change-Id: I2e52b7910caedf6e0af24242b79e1e9d42c6b85b
CRs-Fixed: 2548100
2019-11-05 09:26:45 -08:00
Ashish Kumar Dhanotiya
94ffbd1079 qcacld-3.0: Remove cds_queue.h and queue.h from driver code
Currently MCL and WIN both have separate queue.h
files with the same declarations and definitions.
As part of cleanup single queue.h is created in cmn code,
use this newly created queue.h file instead of MCL
specific queue.h file.

Change-Id: I91619e5fff2040cb588cd0413cb42d5d7469f41f
CRs-fixed: 2505800
2019-11-05 02:12:22 -08:00
Rakesh Pillai
2d5596fa13 qcacld-3.0: Fix compilation errors for QCN7605
Fix compilation issue related to datapath when
built for target QCN7605.

CRs-Fixed: 2555844
Change-Id: Iabe649205be31887f037545021f70dcaa5d3aabc
2019-10-31 00:05:18 -07:00
Wu Gao
d07ea69d26 qcacld-3.0: Fix compilation issues with QCA6174
Fix compilation issues related to IPA and DP when built for target
QCA6174. Here is the change to fix them.

Change-Id: I4441858450a78cdd98e3c5e25cdeee00c3a7db9e
CRs-Fixed: 2554619
2019-10-29 23:22:41 -07:00
Venkata Sharath Chandra Manchala
cf57262302 qcacld-3.0: Enable FEATURE_TSO_STATS
Enable FEATURE_TSO_STATS based on
FEATURE_TSO flag.

Change-Id: I2fbeac180f6bb0988a6e3660936659ea1f5da4a4
CRs-Fixed: 2392266
2019-10-28 07:11:27 -07:00
Yeshwanth Sriram Guntuka
521b6b254b qcacld-3.0: Increase the rx debug buffer list size
Increase the rx debug buffer list size to 8k to
capture more history.

Change-Id: I56d37e5c25653daa9dac76328808e99ed24a7bff
CRs-Fixed: 2542805
2019-10-25 04:40:32 -07:00
Rakesh Pillai
6c5af2fc0a qcacld-3.0: Use pdev_id instead of global dp handle
As a part of cdp convergence the pdev_id
is used to obtain the pdev handle on need
basis.

Instead of the pdev handle, use the pdev_id to
retrieve datapath pdev handle.

CRs-Fixed: 2539733
Change-Id: I887ea2f1a312207cbb642b33435f4e7111068c62
2019-10-24 21:41:42 -07:00
Rakesh Pillai
ca99b83616 qcacld-3.0: Add ol soc context
Add the soc context for ol_txrx.
This soc layer is used to hold ol pdev context.

CRs-Fixed: 2539731
Change-Id: I27a3f34a533034a4748674ce8b9212163b231b24
2019-10-24 21:41:36 -07:00
Li Feng
1b3116857c qcacld-3.0: Fix building error in tcp del ack
Fix building error in tcp del ack.

Change-Id: I74c5612536e703dbd0167ead07433f2ac66437be
CRs-Fixed: 2551290
2019-10-24 18:53:53 -07:00
Nirav Shah
fc0848cb38 qcacld-3.0: Avoid double free of tx_desc in ol_tx_download_done_hl_free
If tx_desc is freed as part of ol_tx_download_done_base
then do not free again in ol_tx_download_done_hl_free.

Change-Id: I006603f0fad40c0cfce59b8c14b521705cec7ebc
CRs-Fixed: 2544447
2019-10-23 14:29:33 -07:00
Tiger Yu
81a8073dcb Revert "qcacld-3.0: Featurize partial reorder properly"
The revert Change-Id: I1f3819fa093766abba87e5dc6dc44e6d2188740b

Inlucde the ol_rx_reorder.c for LL solution to avoid NULL pointer access
when handling the fragmentation frames.

Change-Id: I5182693437b00d4c8a932beb59fd03adea5ee8a1
CRs-Fixed: 2546353
2019-10-17 22:46:42 -07:00
Vevek Venkatesan
b8e96629e3 qcacld-3.0: fix compile error in cdp_fc_get_tx_resource API
cdp_fc_get_tx_resource API is being called without passing
pdev handle, which mis-matches the prototype. Adding a fix
to include right arguments to passed, also removing static
from function ol_txrx_get_vdev_by_peer_addr to expose scope
outside the file, to fix compile errors.

Change-Id: I8089aa5df3a127b85236e69f8a84de7ebd09ec3f
CRs-Fixed: 2545857
2019-10-16 11:18:15 -07:00
Yeshwanth Sriram Guntuka
0bf1a72b72 qcacld-3.0: Remove assert in peer_unmap_timer_handler
Fw down indication is received after disconnection
is triggered on STA vdev. After peer delete command
is sent to fw, peer_detach is invoked and peer unmap
timer is started. Since fw is down, peer unmap is
not sent by firmware. Shutdown is not invoked by
pld within the peer unmap timeout value which results
in assert in peer_unmap_timer_handler even though
driver is in recovery state.

Fix is remove the assert in peer_unmap_timer_handler
and trigger recovery which already has the necessary
checks.

Change-Id: Iffd83305d2c1eaec836fcea53d406cada5bfe095
CRs-Fixed: 2542886
2019-10-12 20:35:55 -07:00
Nirav Shah
aa34cbb6c6 qcacld-3.0: Add periodic stats for flow control
Add periodic stats for flow control and
group credit for HL and LL datapath.

Change-Id: I835ba366e9e45bbb1e4b6015577c451c7c0606c2
CRs-Fixed: 2485544
2019-10-11 00:34:47 -07:00
Rakesh Pillai
31d7fb2564 qcacld-3.0: Add vdev subtype to the vdev handle
The vdev subtype is needed to know if the operating
mode of a particular vdev is P2P or not.

Hence add the vdev subtype information in the
vdev handle.

CRs-Fixed: 2498715
Change-Id: Ia9b86bad389825474a0506804e07b7af555d36cb
2019-10-10 13:43:18 -07:00
Chaoli Zhou
fd8d282a75 qcacld-3.0: Fix WDI 1.0 MCC TX SMMU fault
Merge from 2517936 & 2490501.
SMMU fault is observed for WDI 1.0 MCC TX when SMMU is enabled.
Issue is that dma_addr passed from IPA driver is iova of IPA
domain. WLAN driver directly uses the iova to do transmission.
Since iova is not mapped in WLAN domain, SMMU fault occurs.
Fix is to map skb to WLAN domain for TX when SMMU is enabled.
After doing DMA map, an offset of frag_header and ipa_header
is added to the iova and skb->cb is updated with the new iova.
After TX completion, skb DMA unmap is done but with the iova
of the above offset included, which leads to unmapped iova error.
Fix is to recalculate the iova and update skb->cb with new iova,
which has frag_header and ipa_header length removed.

Change-Id: Ib0112d6a3de6dc9af43e5c48a49085c7d4f41a9b
CRs-Fixed: 2534845
2019-09-29 09:48:12 -07:00
Subrat Dash
c8259cd9f3 qcacld-3.0: Set tx_comp_req in the htt header when ptp is enabled
When the QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK feature is enabled
along with ptp feature, the req_tx_comp is not sent to the fw in
the htt header.

Since the driver expects tx completion from fw, the descriptors
are not freed.

Fix this by setting tx_comp_req appropriately.

CRs-Fixed: 2520686
Change-Id: I3960fb67fa5864b461d74cd3a683032e15cc460c
2019-09-27 07:56:27 -07:00
guangde
3e57c247d2 qcacld-3.0: update PTP timestamp for Rx packet
Host driver could not get correct timestamp of Rx AMPDU packet sometimes.
The reason is PTP timestamp is stored in PPDU_END info, only last msdu
description contain it.Rx indication which sent from target has limited
number of MSDU.If none of them is last msdu, Host driver will not get
the correct timestamp.
Add two parameters to record the last system time and timestamp. If
Host driver detect no last msdu in Rx indication, It will calculate the
timestamp according to the difference of two parameters and current
system time.

Change-Id: Iea94f5c0a681ec1d377cbed9dd5b00b100223cc7
CRs-Fixed: 2513659
2019-09-17 03:56:00 -07:00
Visweswara Tanuku
2e839e540c qcacld-3.0: Genoa: SDIO: Handle Tx Padding & Credits
In Genoa SDIO ADMA implementation Host sends packets to FW in
multiples of SDIO Block size.
If the packet/bundle is not block aligned Host adds padding at the
end of Packet/Bundle.

If the TX packet plus padding exceeds one FW TX Buffer, Padding data
will occupy the next FW TX buffer. Same applies for bundle TX packet.

For above scenario, HTC_FLAGS_PADDING_CHECK of HTC header Flags is used
to notify the FW that - Padding data follows the currentHTC packet

Since the padding data will take one extra FW Tx Buffer, host need to
handle the extra Tx credit being used by the padding data/buffer

CRs-Fixed: 2516619
Change-Id: Ie2d2292fabb30e1a13eebe4d11b57f452e42afa8
2019-09-08 07:37:21 -07:00
Ajit Pal Singh
407d6d84b8 qcacld-3.0: Deduct HTT credit from TXQ group also
In HL data path, when HTT credits are used outside the HL scheduler,
credits are getting deducted form target_tx credit only.
When CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL is enabled, credits
should be deducted from TXQ group also.

Change-Id: Ice4160043fc1d812686f8ce7ee310110299d2276
CRs-Fixed: 2485819
2019-08-26 00:26:46 -07:00
Vulupala Shashank Reddy
6d6f68d04b qcacld-3.0: Fix possible NULL pointer de-reference
Fix possible NULL pointer de-reference in functions
peer_unmap_timer_handler().

Change-Id: I2ec6af12b1f8232a247729fd658c2d51ff163405
CRs-Fixed: 2512610
2019-08-22 04:23:24 -07:00
Nirav Shah
7f37dbea19 qcacld-3.0: Fix DHCP indication to FW feature in SAP for HL
In case of HL, send tx completion bit in HTT tx descriptor
to receive tx completion from FW and disable DHCP indication
to FW properly.

Change-Id: Iff8e0c1f5d95c4f62af8b498552d92b57006969c
CRS-Fixed: 2506011
2019-08-20 14:38:32 -07:00
Rakshith Suresh Patkar
73654d0a34 qcacld-3.0: Cleanup ol_txrx_flush_cache_rx_queue [PEER_ID_PHASE1]
Cleanup ol_txrx_flush_cache_rx_queue to find peer
from peer_list instead of sta_id.

Change-Id: Ia737e732051f3cdad53b1a552eb273b8a05562aa
CRs-Fixed: 2508259
2019-08-20 03:59:24 -07:00
Nirav Shah
5db193fced qcacld-3.0: Featurize partial reorder properly
Avoid compiling ol_rx_reorder.c and ol_rx_reorder_timeout.c
for low latency and only compile for high latency
data path.

Change-Id: I1f3819fa093766abba87e5dc6dc44e6d2188740b
CRs-Fixed: 2506005
2019-08-19 02:10:41 -07:00
Rakshith Suresh Patkar
6ff56da568 qcacld-3.0: Cleanup ol_txrx_get_tx_resource[PEER_ID_PHASE1]
Cleanup ol_txrx_get_tx_resource to be peer mac address based
from local peer id based.

Change-Id: Id7ac4b5152c782d3475d9fad59f8f835102483cc
CRs-Fixed: 2508132
2019-08-17 10:53:38 -07:00
Chaoli Zhou
74af4177a8 qcacld-3.0: Add packet drop status
In the current wlanhost driver dump status, it doesn't
support to count the dropped packets seperately that
due to firmware don't have enough tx descriptors, so
add such function which can benefit KPI tune.

Change-Id: I1a72acbc4f1f861c2013a1ef1a95b73acccd6b53
CRs-Fixed: 2507410
2019-08-16 08:22:41 -07:00
Rakshith Suresh Patkar
6a8802ff1a qcacld-3.0: Cleanup ol_txrx_get_vdev_by_peer_addr[PEER_ID_PHASE1]
Rename API ol_txrx_get_vdev_by_sta_id to ol_txrx_get_vdev_by_peer_addr
and cleanup ol_txrx_get_vdev_by_peer_addr to be peer mac address based
from local peer id based.

Change-Id: Ie3b8a1d97b5196e7306e5641cb894f31b8abe154
CRs-Fixed: 2504565
2019-08-15 20:38:09 -07:00
Ajit Pal Singh
9a0705e818 qcacld-3.0: HL: Iterate over txqs of a selected category
When CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL is enabled each group
has its own credit limit.
It may happen that when the High Latency TX Scheduler selects a category
the txq at the head may belong to a group which has credits less than the
"credit_reserve" of that group. In this case the scheduler will return
without downloading any frames although the other group may have credits
and also frames to be downloaded.
The scheduler will be called again if there is a credit update from FW or a
packet arrives from network stack and the next txq will be picked up which
belongs to the group which has sufficient credits.

It is seen that sometimes there is no credit update from FW (since the
host has sufficient credits) and the network stack also does not
transmits packet since it has already queued packets in driver's queue.
In such case the scheduler is not called and throughput drop to zero is
seen although there are enough credits on host.

To avoid such a situation, in case scheduler is unable to download
packets from a txq since its group does not have enough credits, iterate
over to the next txq in the chosen category and download its packets.
Exit from the schduler is case able to download from any txq OR not able
to download from any txq.

Change-Id: I6143d5c3aa40761d1997846896e5e77435252b26
CRs-Fixed: 2485819
2019-08-13 07:33:01 -07:00
Rakshith Suresh Patkar
0dd44df12c qcacld-3.0: Cleanup ol_txrx_clear_peer[PEER_ID_PHASE1]
Cleanup ol_txrx_clear_peer to be peer mac address based
from local peer id based.

Change-Id: I63154508e6a08f973a4c602de58217e6bf23d683
CRs-Fixed: 2503737
2019-08-13 04:17:04 -07:00
Nirav Shah
718d14b1ee qcacld-3.0: Add support for addba/delba HTT message
In case of high latency data path, addba/delba messages
needs to be handled to support partial reorder.
This reverts commit b8919e14c5
and fix below security isses in ol_tx_addba_handler.
1. handle memory allocation failure scenario.
2. Free array memory before assign new memory to avoid
   memory leak.

Change-Id: I4f577c9e8bcb40f70ffb1b305659a059eac68d8d
CRs-Fixed: 2488966
2019-08-12 01:27:32 -07:00