Commit Graph

596 Commits

Author SHA1 Message Date
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
Rakshith Suresh Patkar
55e08c0916 qcacld-3.0: Cleanup ol_txrx_register_peer[PEER_ID_PHASE1]
Cleanup ol_txrx_register_peer to be peer mac address based
from local peer id based.

Change-Id: I59fd19c0185d8fe89563ac78bc9e8a8117c12ed1
CRs-Fixed: 2503182
2019-08-09 07:37:35 -07:00
bings
39e70dbcbe qcacld-3.0: Initialize local variable old_credit before using it
In some platform, it reports error "old_credit is used uninitialized".
Initialize old_credit before using it.

Change-Id: I06351bba0abdfc5efb32406d1d245f8d8c658684
CRs-Fixed: 2495209
2019-07-30 09:11:36 -07:00
Alok Kumar
d6de641aa6 qcacld-3.0: Remove work create for peer_unmap_timer_handler
This is revert of Change-Id: I9a9554ef0aa9288bf5abe22cd2513d8cc41c29d4

When peer_unmap_timer_handler runs for multiple peers, same work
is INITed for multiple peers as this work is not per peer based.
This will update the work param i.e. peer gets updated each time,
which leads in deletion of wrong peer.

Remove the work INIT and scheduling of "peer_unmap_timer_work_function"
as cds_trigger_recover() has already taken care of atomic context.

Change-Id: Ida0a50f27cfe4c08763b359dab51c82e757ec100
CRs-Fixed: 2498498
2019-07-30 02:43:47 -07:00
hqu
28f68df635 qcacld-3.0: Remove void pointer usage for part of DP code
Add code to use cdp_vdev instead of void pointer for
txrx_vdev and ol_tx_data.

Change-Id: I3d3b7cc8012981a7c883c8113d88fa387711d41e
CRs-Fixed: 2483388
2019-07-27 13:42:14 -07:00
Chaoli Zhou
b11e18a0a4 qcacld-3.0: Export max IPA interface numbers
As for Rome, currently it usually just only support two
IPA interfaces offload, if use the default value 3, which
will cause the IPA pipe setup failure issue. So export
the max IPA interface numbers, and it's better to set
the appropriate value from build file according to
different requirement for different chipset and platform.
Meanwhile, it support SMMU on the sa415 platform, so
enable SMMU for it.

Change-Id: I2de31bcb4d38f5e7964d2cbdc2fc6f143eef510d
CRs-Fixed: 2480627
2019-07-25 02:40:48 -07:00
Rakshith Suresh Patkar
02f3d31c2f qcacld-3.0: Use new HDD callback for rx mic error
Post rx mic error information to HDD via new HDD mic
error callback(hdd_rx_mic_error_ind) registered to
.rx_mic_error member in dp_ol_if_ops.

Change-Id: Ia1e2b78a94dddba48937995ecf62fb5a7ae4139d
CRs-Fixed: 2488452
2019-07-22 11:36:11 -07:00
Nirav Shah
a3e59d8d2f qcacld-3.0: Ratelimit per packet log in case of disconnect
Ratelimit per packet error log in case of disconnect.

Change-Id: I39af6361f1ae1a1c571e3885f2024efbd9b4c651
CRs-Fixed: 2482120
2019-07-22 02:19:00 -07:00
Nirav Shah
38ccf5b720 qcacld-3.0: Fix DPTRACE TX and RX counters for HL data path
Fix DPTRACE TX and RX counters for HL data path.

Change-Id: I3a6599d1181ec31ae5cfd1c8a9bd89579fe11089
CRs-Fixed: 2485534
2019-07-19 04:04:09 -07:00
Chaoli Zhou
678a32b2dd qcacld-3.0: Properly set IPA RX params for WDI 1.0
In the htt_ipa_uc_get_resource, rx2_rdy_ring is from
pdev->ipa_uc_rx_rsc.rx2_ind_ring, rx2_proc_done_idx is
from pdev->ipa_uc_rx_rsc.rx2_ipa_prc_done_idx, but
rx2_ind_ring & rx2_ipa_prc_done_idx are not used for
WDI 1.0, just only used for WDI 2.0, which initialized in
the htt_rx_ipa_uc_alloc_wdi2_rsc. So as for Rome that use
WDI 1.0, these two variables are not initialized and thus
they are NULL pointers. Therefore this change can fix NULL
pointer deference for WDI 1.0 when CONFIG_IPA_WDI_UNIFIED_API
is defined and meanwhile QCA_WIFI_3_0 used to distinguish WDI 2.0
and WDI 1.0 IPA RX params.

Change-Id: I0378753dcedde4f398885d930a4cbbb2c854c110
CRs-Fixed: 2483879
2019-07-16 18:40:11 -07:00
Nirav Shah
21d055dd05 qcacld-3.0: Fix double free of skb in case of send failure for TSO
In case of TSO, same buffer results in multiple tx_desc after
segmentations. To avoid multiple free of skb ref_cnt is used.
Currently ref_cnt is incremented twice for 1st segment and
not incremented for last segment and in case of failure from
ce_send_fast, ref_cnt is decremented twice.

Above logic don't work in case when TSO packet with segment
count is 1 and ce_send_fast failure is observed.
So, Change logic to increment ref_cnt only once for 1st segment
and avoid reducing ref_cnt twice in case of ce_send_fast failure.

Change-Id: Ia85a6a8f905310b210d6f480a004feb2528a31d7
CRs-Fixed: 2469773
2019-07-11 04:53:32 -07:00