Commit Graph

297 Commits

Author SHA1 Message Date
Michael Adisumarta
d0c1bd6bdf msm: ipa: removing warn on no client callback
Removing warn on whilst no client call back on
pm register.

Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-10-14 15:32:50 -07:00
qctecmdr
9899d28499 Merge "msm: ipa: Fix rndis client disconnection gracefully" 2020-10-13 18:22:52 -07:00
qctecmdr
6be9b12bb8 Merge "msm: ipa3: Send enable force clear only for producer pipe" 2020-10-13 14:48:48 -07:00
Ashok Vuyyuru
5ed3cc3fcd msm: ipa3: Send enable force clear only for producer pipe
Enable forceclear only supported for producer pipe so
avoid sending the force clear command to consumer pipes.

Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
Change-Id: I850f360f18c6598af6914c9cd2c89cacad1ac4c9
2020-10-12 11:26:52 +05:30
qctecmdr
1903fc4aed Merge "msm: ipa: fix to delete napi tx object" 2020-10-10 14:01:25 -07:00
qctecmdr
08bab0a6ce Merge "msm: ipa: Fix setting disconnect in progress flag" 2020-10-09 17:56:28 -07:00
qctecmdr
222ef78f75 Merge "msm: ipa3: Fix to unmap sgt pages with correct size" 2020-10-09 12:49:33 -07:00
Chaitanya Pratapa
63d979273d msm: ipa: Fix rndis client disconnection gracefully
if there are packets coming from rndis client to device
IPA driver tries to gives those packets to network driver.
If at the same time USB disconnection is in progress, there
can be a possibility of race where callback is called with NULL
private data and it can result in a undefined behavior at client
driver. Make changes to add proper checks to handle the scenario
gracefully.

Change-Id: I7b3a5731ae21362dc67c53a2de464b17a223d4ba
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-10-09 18:21:50 +05:30
Bojun Pan
7e92b9e0e8 msm: ipa: Fix setting disconnect in progress flag
When USB is disconnected USB driver deregisters callback
with IPA driver. If there are exception packets coming to USB
driver at the same time there is a possiblity of race condition
where callback is de-registered and IPA driver tries to access it.
Make changes to restrict the callback access when disconnect is
in progress.

Change-Id: I85d2876847bfd0b23f19b2b81e1aab68729b2e31
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
2020-10-09 17:55:51 +05:30
Akshay Pandit
09b94adf7e ipa3: Fix to save sgt table info in proper context
Sg table tables are not contiguous page due to this while copying
total sg table it failing. To avoid this copying the each sg
table individually.

Acked-by: Akshay Pandit <pandit@codeaurora.org>
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-10-09 11:55:28 +05:30
Ashok Vuyyuru
eca7b0f54f msm: ipa3: Fix to unmap sgt pages with correct size
scatterlist pages not unmapped properly, it was leading to
issue when mapping the same pages again. Adding changes
to store scatterlist information properly and unmap the
page with correct length.

Change-Id: If11926608f633ce1d66150b1e4b6c515adc48049
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-10-09 11:48:46 +05:30
Chaitanya Pratapa
4265276331 msm: ipa: Add additional trace points for rx/tx
Make changes to add additional trace points for rx
and tx path. Also enhance existing traces to capture more
information.

Change-Id: I40d5bfc4080a47d986e16ac157524c341949e51e
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-10-08 18:02:04 -07:00
Michael Adisumarta
0d5800910f msm: ipa: Fix use-after-free in ipa3_alloc_counter_id
Make changes to memcopy before preload end.

Change-Id: 	Icc056a3bcd5b739b8165813202c87dd84e72c78a
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-10-08 16:22:27 -07:00
Chaitanya Pratapa
81310e8512 msm: ipa: fix to delete napi tx object
Make changes to delete NAPI TX object when pipe setup fails.

Change-Id: Ie7124fc9f996795b1a955166a9cae198f6a57f03
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-10-07 16:05:32 -07:00
Akshay Pandit
a2ea5ff32c msm: ipa3: fix the unmap logic
Ethenet driver npn phy address was same for UL/DL
pipes, currently this address was unmapped during
DL pipe disconnect where UL pipe still avtive,
move the logic to do the unmamp to the last pipe
disconnect.

Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2020-10-07 03:37:37 -07:00
Ashok Vuyyuru
fb1282f82f msm: ipa3: Fix to map the npn phy address only once
Ethenet driver npn phy address was same for UL/DL
pipes, currently this address was mapped twice.
Added changes to map the map npn phy address only
once.

Change-Id: Icd713943326aad38ecf8e080a73d1d6bb8f641d2
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-10-07 03:28:54 -07:00
Chaitanya Pratapa
4e3719b0fc msm: gsi: dump channel information
Dump channel information when stop channel fails.

Change-Id: I39ef3338c9e7e968ee6a592debc23edbff9f8fc8
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-10-06 13:36:27 -07:00
Ashok Vuyyuru
02d7436603 msm: ipa3: Reduce NAPI weight to 32
observing the shadow stack overflow due to skb is
chained using the frag_list more than 64. To reduce the
skb chained reducing the NAPI weight to 32.

Change-Id: I1164c7d8e886a1079d30c213c91827b0aa191db2
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-10-06 23:44:20 +05:30
qctecmdr
7e372e6a9d Merge "msm: ipa: Add change to support wdi gsi db polling" 2020-10-05 13:38:06 -07:00
Armaan Siddiqui
a577e8ee97 msm: ipa: Add change to support wdi gsi db polling
Changes done to support wdi gsi db polling based on
the polling flag whether enabled in dtsi or not.

Change-Id: Ib5559da136866dafc0b3ab3908c6073111dbab21
Signed-off-by: Armaan Siddiqui <asiddiqu@codeaurora.org>
2020-09-30 23:45:22 +05:30
qctecmdr
a69bd6f283 Merge "msm: ipa: add state for rmnet_ctl tx/rx pipes" 2020-09-28 17:30:58 -07:00
qctecmdr
2c16b81931 Merge "msm: ipa3: Rate limit excessive logging" 2020-09-23 19:45:35 -07:00
Bojun Pan
b793aca3be msm: ipa: add state for rmnet_ctl tx/rx pipes
When ssr happen in middle of egress ioctl, only tx pipe is setup
and the current state in teardown cannot handle it.
The fix is to add state for tx/rx setup separately.

Change-Id: I0eb4011ce91139acce3a619a8179d84066873953
2020-09-23 15:11:21 -07:00
qctecmdr
19c963a83d Merge "msm: ipa: Fix to remove duplicate proxy vote" 2020-09-23 08:50:32 -07:00
Sivakanth vaka
3049e6f03e msm: ipa3: Rate limit excessive logging
Rate limiting excessive logs when modem is in limited service.

Signed-off-by: sivakanth vaka <svaka@codeaurora.org>
2020-09-23 12:38:17 +05:30
Bojun Pan
f53c2a8a7a msm: ipa: correct the pointer in idr for FnR stats counter
The stats counter which saved in idr was some stack memory which
could be freed and cause memory corruption. The fix is to use
the memory allocated in heap instead.

Change-Id: Ie398b0271571fcff41cdb85de4d77d202b6552b5
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
2020-09-18 18:25:31 -07:00
Chaitanya Pratapa
7224364726 msm: ipa: Fix to remove duplicate proxy vote
In case if modem crashes even before uC is loaded, there is
a possibility that we hold the proxy vote twice and the clock
will not be disabled. Make changes to avoid duplicate proxy vote.

Change-Id: Id62994c79eff6868e3a491aa53963ec127ea1213
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-09-16 23:14:56 -07:00
qctecmdr
1a8bbaabfd Merge "msm: ipa3: Update the channel mode before start channel" 2020-09-16 18:58:43 -07:00
qctecmdr
f3fb4e64fb Merge "msm: ipa3: Fix to increase the inactivity timer" 2020-09-16 18:25:28 -07:00
Ashok Vuyyuru
a565f3ec5e msm: ipa3: Schedule the NAPI only from interrupt context
Due scheduling the NAPI in suspend path observing race conditions
in updating channel polling context and pipe polling context. To
avoid these scenario scheduling NAPI only from interrupt context.

Change-Id: I8eb0438618aedb9873e6eafc269435cc67c03dd5
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-09-16 23:31:32 +05:30
Ashok Vuyyuru
efa43ef916 msm: ipa3: Fix to increase the inactivity timer
In low latency ping scenario clock unvoting fastly due to this
ping RTT was increased. To avoid these scenario increased the
inactivity timer to 100msec.

Change-Id: I9b11e2adbe087aa67fa2e7ed751b190abb09d0ed
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-09-16 22:27:38 +05:30
Ashok Vuyyuru
ecf3b98c7c msm: ipa3: Update the channel mode before start channel
Observing the race condition if channel mode configured after
channel start. To avoid these race conditions configuring
the channel mode and starting the channel.

Change-Id: I8f8ec2d9faed320539e2b18de90ab24059a5616c
2020-09-16 22:17:09 +05:30
qctecmdr
596aec557e Merge "msm: ipa: adding checks if the rt_rule is not freed" 2020-09-11 05:10:34 -07:00
Bojun Pan
3b8fe1bc8e msm: ipa: fix the use-after-free on qmi framework in ssr scenario
IPA drvier free the qmi server hdl without notify the qmi
framework which is causing the use-after-free on QMI framework.
The fix is to notify qmi framework before freeing the qmi handle.

Change-Id: I1ec9d3efd29283fddd958561a538b2995222a53c
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
2020-09-09 15:06:26 -07:00
Michael Adisumarta
3fa607227c msm: ipa: adding checks if the rt_rule is not freed
Adding checks if the rt_rule is not freed
before committing.

Change-Id: I4a2c86c24587a6a3ea7318bac438a9f27784f2f7
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-09-03 19:37:15 -07:00
Bojun Pan
8e1f7e0c74 msm: ipa: set the mac header to 0 for rx skbs
packet_rcv_spkt is expecting to strip out the skb_mac_header.
Part of the alloc_skb, the mac header is setup ~0 which is causing
the skb data point to wrong location.

Change-Id: Ib8c14c029145da6a779ead21fb851b26677f4d0f
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
2020-09-02 21:58:57 -07:00
qctecmdr
feeb959896 Merge "msm: ipa: rate limiting the warning" 2020-09-02 19:47:07 -07:00
qctecmdr
078699f087 Merge "msm: ipa: Fix to set holb discard" 2020-09-02 06:22:27 -07:00
qctecmdr
45998a733a Merge "msm: ipa: stay in NAPI mode when default pipe has low credits" 2020-09-02 02:32:13 -07:00
qctecmdr
c19fb2d8ce Merge "msm: ipa3: Following HPG sequence for HOLB enabling" 2020-09-02 00:18:36 -07:00
Chaitanya Pratapa
d53edd4445 msm: ipa: Fix to set holb discard
As part of HOLB monitoring, uc will clear the HOLB discard if
it was set as part of HOLB monitoring or it can clear if
peripheral recovers just before receiving HOLB_DEL command.
Make change to set HOLB discard back if it was intended to be
configured from AP as part of disconnect scenarios.

Change-Id: I6659a62499150844c3b540fadb4ba8b9535f5e45
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-09-01 21:31:21 -07:00
Bojun Pan
8ed7d53cf1 msm: ipa: stay in NAPI mode when default pipe has low credits
When we have no buffer available in HW and switch to irq, a dead-loop is
observed between sending force close comamnd and replenish workqueue.
The fix is to keep in polling mode, wait for napi-poll and replenish again.

Change-Id: Ied0504564f86f41b8b5f9aa25170768027bf3391
2020-09-01 17:47:15 -07:00
Michael Adisumarta
c999c696ac msm: ipa: rate limiting the warning
Rate limitting the warning if client doesn't have
callback.

Change-Id: I09b02181e4c34ecf342e150de76eace9341a0c0a
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-09-01 16:32:48 -07:00
Chaitanya Pratapa
13c8f5cea2 msm: ipa: disable status on ODL_DPL_CONS pipe above IPAv4.5 targets
ADPLv3 targets do not require status to be enabled on ODL_DPL pipe.
Make changes to disable the status for targets with IPAv4.5 and above.

Change-Id: Ica07a25a01e742928d3ecb19a88b7ee2305235ae
Signedo-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-08-31 17:08:30 -07:00
Michael Adisumarta
915d352b94 msm: ipa3: Following HPG sequence for HOLB enabling
Correcting the sequence to dynamically change the HOLB timer.

Change-Id: Iefcac36b93f3aee037628e3b0ec81aa5f5636caa
Acked-by: Suhas mallesh <smallesh@codeaurora.org>
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-08-25 17:49:51 -07:00
qctecmdr
996d5675d6 Merge "ipa: Fix debugfs tethering stats print" 2020-08-22 13:59:26 -07:00
qctecmdr
85389c4153 Merge "ipa: Fix MHI channel resume after stuck GSI" 2020-08-22 13:28:32 -07:00
qctecmdr
60195e2ad2 Merge "msm: ipa: Fix lan polling to use max budget" 2020-08-20 00:41:34 -07:00
qctecmdr
33b0fd1d1a Merge "msm: ipa4: fix the unclock gsi IPA register access" 2020-08-19 19:14:56 -07:00
qctecmdr
3d503d5b16 Merge "msm: ipa4: Disable uc monitoring stats for holi target" 2020-08-19 18:30:16 -07:00
qctecmdr
08bb775bb1 Merge "msm: ipa4: Configure the destination resource group for DRB-IP" 2020-08-19 17:58:54 -07:00
Ashok Vuyyuru
8cb85b52b3 msm: ipa4: Disable uc monitoring stats for holi target
In holi target due uC memory constraints uC monitoring stats
not support. So disabling the sending monitor command to uC.

Change-Id: I34e319118287fcd82876344bd85ab53c50cf5651
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-08-19 22:02:20 +05:30
Ashok Vuyyuru
7c957296ab msm: ipa4: Configure the destination resource group for DRB-IP
Adding changes to configure the destination resource group for DRB-IP.

Change-Id: I41248e7e7e92a0e4635b8661d1f324be165bd2fa
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-08-19 21:58:56 +05:30
qctecmdr
a32fd77448 Merge "msm: ipa: fix the endp_init_deaggr configuration" 2020-08-19 06:49:25 -07:00
Bojun Pan
72e7088c19 msm: ipa4: fix the unclock gsi IPA register access
The while loop in gsi_handle_irq will cause an extra register
read after handle last interrupt. This read can be the unclocked
read. The fix is to break on ch/evt control interrupt where
could potientially cause IPA clock off.

Change-Id: If4b3bb127ee66648d24b8ca7c16bd6fec42d9fcc
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
2020-08-18 23:43:53 -07:00
qctecmdr
2d19d4a5e6 Merge "msm: ipa3: Fix to use paired PM operation for IPA" 2020-08-18 18:52:32 -07:00
qctecmdr
15bdbefea5 Merge "msm: ipa: avoiding NULL pointer de-referencing" 2020-08-18 17:48:24 -07:00
qctecmdr
10afe9873b Merge "msm: gsi: cache last 20 gsi interrupt for interrupt storm debug" 2020-08-18 14:06:17 -07:00
Ashok Vuyyuru
7aa33aede2 msm: ipa3: Fix to use paired PM operation for IPA
Becauase of using wrong pair of PM operation device
was not resuming if suspend fails. Adding changes to
use correct set of PM operations.

Change-Id: Ib9fdea8f93f0a6dafbd5908dc8fc2bbf4f1e0904
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-08-18 01:55:24 +05:30
Chaitanya Pratapa
37f6ed3720 msm: ipa: Fix lan polling to use max budget
Make changes to use the max budget of 64 for the LAN polling.
Otherwise we will switch between Polling and Interrupt mode
even when there is continuous data.

Change-Id: I6bbf49b77d258e88044c03a33fe20bb015a55019
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-08-14 16:50:43 -07:00
Bojun Pan
b1419bf968 msm: ipa: fix the endp_init_deaggr configuration
In IPA4.9, the wrong end_init_deaggr ipa hal implementation had
been chosen. The fix is to correc the setting.

Change-Id: I63e2c50bc42b13ef9213d4b75d5c22346170a0d3
2020-08-14 16:04:39 -07:00
qctecmdr
717e1ce2fb Merge "msm: ipa: enable drop stats for USB/WLAN and DPL pipes" 2020-08-14 13:45:31 -07:00
qctecmdr
afc5807ba0 Merge "msm: ipa: rate limitting error logs" 2020-08-14 13:05:27 -07:00
Chaitanya Pratapa
a5fbe3bdc5 msm: ipa: enable drop stats for USB/WLAN and DPL pipes
With HOLB monitoring, it is beneficial to enable drop
stats for USB and WLAN pipes. Also enable drop stats for
DPL pipe.

Change-Id: I24df7041a4056d2875f6b14d50ab52beb1459eeb
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-08-12 22:44:52 -07:00
Michael Adisumarta
c5ccae821e msm: ipa: rate limitting error logs
Rate limitting error logs in rndis_ipa file.

Change-Id: Iebd548df1a99553afdabb6375675576fe3776832
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-08-12 19:13:35 -07:00
Michael Adisumarta
8c28530134 msm: ipa: avoiding NULL pointer de-referencing
Avoiding NULL pointer de-referencing for an internal variable.

Change-Id: I9fa3bc24c747c7c04d1d64b29fc63677206252e0
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-08-12 14:33:52 -07:00
Ilia Lin
9d4ff10cc6 ipa: Cleanup after moving internal definitions
Removing the files copied from the kernel:
ipa.h
msm_gsi.h
ipa_fmwk.h
ipa_mhi.h
ipa_odu_bridge.h
ipa_uc_offload.h
ipa_usb.h
ipa_wdi3.h
ipa_wigig.h

and including the original files instead.

Depends-on: 3177533

Change-Id: I485f5545505bfbc4e775a75ae3d0809f9a977a97
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-08-12 10:37:35 +03:00
Ilia Lin
6cdcc3b5ab ipa: Fix debugfs tethering stats print
Currently the ipa_debugfs_print_tethering_stats()
prints values from zeroed buffer.

The ipa_get_teth_stats() has to be called only once,
and ipa_query_teth_stats() to fill the buffer.

Change-Id: I72e6db3c9f2c342e8b635341eee06795b2be9d67
Signed-off-by: Ilia Lin <ilialin@codeaurora.org>
2020-08-06 15:25:30 +03:00
Sivakanth vaka
9d023aee86 msm: ipa3: Enable holb as part of usb suspend
When USB is suspended there are DL packets on consumer
channel leading to stall. to avoid the stall enabling
the holb as part of suspend and removing it in resume.

Change-Id: I08e2fe248ee675698da16b6df6aec8f109c73608
Signed-off-by: sivakanth vaka <svaka@codeaurora.org>
2020-08-06 10:38:31 +05:30
Ilia Lin
63f19cf561 ipa: Fix MHI channel resume after stuck GSI
If in the __ipa3_stop_gsi_channel all iterafions
of the gsi_stop_channel returned GSI_STATUS_AGAIN,
channel->stop_in_proc flag has to be set,
otherwise the teardown of the ipa_mhi_suspend_internal
won't resume this channel.

For that the return value of the gsi_stop_channel
has to be forwarded (in case no other errors exist).

Additionally ipa_mhi_resume_channels should check both
IPA_HW_MHI_CHANNEL_STATE_SUSPEND state
and stop_in_proc flag.

Change-Id: I369211456fa949f8c1869b577028ff44ed4e2c95
Signed-off-by: Ilia Lin <ilialin@codeaurora.org>
2020-08-05 15:19:10 +03:00
Sivakanth vaka
00100fbf02 MDM:IPA3: Fixes issue with RNDIS and ECM suspend path
PM resources are released even when there are outstanding
packets leading to data stall hence resources are released
only when there are no outstanding packets.

Change-Id: I630737edfc9cadea1d8a99bdb6bb6fcbe76615d8
Signed-off-by: sivakanth vaka <svaka@codeaurora.org>
2020-08-05 16:10:30 +05:30
qctecmdr
9b22e915ef Merge "msm: ipa: Endpoint configuration and IPA driver changes for mannar" 2020-08-04 03:54:50 -07:00
Amir Levy
e45ddd2b4e msm: ipa3: fixed a dependency between tx-napi and LAN rx-napi
Fixed the if condition for enabling the NAPI netdev to init the netdev
if at least one of both features is enabled.

Change-Id: I14d454bf6eaa070a9ba5bab9e0b2d2f3bd4a8cf7
Acked-by: Tal Gelbard <tgelbard@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-08-03 02:51:33 -07:00
Armaan Siddiqui
9e91a1ef19 msm: ipa: Endpoint configuration and IPA driver changes for mannar
Added Endpoint configuration and IPA driver changes for mannar.

Change-Id: I7424faa1757e7cf81eb9387b63a153cd6b6e607b
2020-08-03 11:28:32 +05:30
qctecmdr
6234b61db8 Merge "msm: ipa: rate limit the error logs from IPA" 2020-08-02 05:29:30 -07:00
Michael Adisumarta
aeb5c38043 msm: ipa: rate limit the error logs from IPA
Reducing/Rate limitting the IPA error logs.

Change-Id: Ib664a252681ac10daf24b276a447f19bff01c982
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-07-31 13:48:14 -07:00
Bojun Pan
2795bd907b msm: ipa: remove duplicated ready cb for rmnet_ctl
Duplicate code which is causing we call probe_cb twice to rmnet_ctl
module.
Remove the un-necessary return after pipe setup but rmnet_ctl not
registered yet.

Change-Id: I935ca6c09801ab2882a196d739f0de55a4ab3806
2020-07-31 09:35:41 -07:00
Amir Levy
644aae185c msm: ipa3: Remove ipa_api
ipa_api provided a wrapping layer for various functions in order to
mitigate between different ipa version. This mitigation is no longer
needed, hence ipa_api is obsolete.

Change-Id: I84c3fafef0f578b86080ac8457493ced4ec442e3
Acked-by: Eliad Ben Yishay <ebenyish@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-07-30 15:51:45 +03:00
qctecmdr
a62933e710 Merge "gsi: Init rp_update_vaddr at event ring init" 2020-07-30 00:37:40 -07:00
qctecmdr
8d6f423aa0 Merge "msm: ipa: Fix deleting the routing entries" 2020-07-29 12:26:54 -07:00
Ilia Lin
f8bfa48848 gsi: Init rp_update_vaddr at event ring init
Leaving this field 0 may lead to a crash during
the first gsi_poll_n_channel() call.

Change-Id: I6c8e9e1e5bacdddd41023618881d761d730a1931
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-07-26 22:59:21 +03:00
Ashok Vuyyuru
8f3cb08e2c msm: ipa3: Configure correct aggeragtion byte limit
IPA HW will treat aggeragtion byte limit value 1 consider as 1K.
Adding changes to configuring the aggeragtion byte value w.r.t
IPA HW requirement.

Change-Id: Ibe9353a39971296f7e4b04f30039457c07c63033
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-07-23 15:27:40 +05:30
Chaitanya Pratapa
ed74f973da msm: ipa: Fix holb event log handling
When we get a bad peripheral event from uC when there is a pending
HOLB ADD/DEL command response from uC we will run into a deadlock
if we try to acquire mutex as part of event log. Make a change
to remove mutex lock when logging the events.

Change-Id: I60ca3ecc4fe4d090278f745bdf2bb9e1bd09ca60
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-07-22 11:55:24 -07:00
qctecmdr
5d58e67d7c Merge "msm: ipa: removing explicit NAPI object delete" 2020-07-21 22:06:58 -07:00
qctecmdr
088286f329 Merge "msm: ipa: use detach/attach netif instead of stop/wakeup" 2020-07-21 16:55:26 -07:00
qctecmdr
27eabd049c Merge "techpack: ipa: Fixing compile errors" 2020-07-21 10:21:01 -07:00
Chaitanya Pratapa
376242c944 msm: ipa: Fix deleting the TX napi context
TX napi context is a mutable variable and so must be deleted
whenever the pipe is disconnected. Otherwise we will see a
memory leak.

Change-Id: I9309130c786e1092fd1a717359774fca9a37fcd1
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-07-18 23:10:16 -07:00
Rishabh Garg
e6060ecc44 msm: ipa: Fix compilation error
Change the syntax of condition to fix compilation error.

Signed-off-by: Rishabh Garg <rishgarg@codeaurora.org>
2020-07-17 23:18:38 +05:30
Chaitanya Pratapa
68623da41c msm: ipa: Fix deleting the routing entries
Make changes to delete the route entry even when the hdr/proc_ctx
handles are already freed. Otherwise the entry will be dangling.

Change-Id: Icbab6b96fa137c5214b37ea33c6203c5a54273ac
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-07-16 23:55:00 -07:00
qctecmdr
b8079886fd Merge "techpack: ipa: Move internal definitions to the techpack" 2020-07-16 21:00:24 -07:00
Ilia Lin
2b169b5f0e techpack: ipa: Move internal definitions to the techpack
Moving the defines used only internally to the local files:
ipa_i.h
ipa_common_i.h
gsi.h

Moving completely the following files from the kernel tree:
ecm_ipa.h
rndis_ipa.h

Adjusting the #include statements accordingly.

Temporary moving the following files to the techpack
as part of 3 stage internal definitions moving:
ipa.h
msm_gsi.h
ipa_uc_offload.h
ipa_mhi.h
ipa_wigig.h
ipa_wdi3.h
ipa_usb.h
ipa_odu_bridge.h
ipa_fmwk.h

On the second stage (after this change merge)
the kernel change will be merged independently.

On the third stage the local copies will be removed
from the techpack and the original files from the kernel
will be included instead.

Change-Id: If5eecc5f96a6a98075db5819f18acaec581b456e
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-07-16 21:16:28 +03:00
qctecmdr
16f70a69e3 Merge "msm: ipa: Fix using the right client enum" 2020-07-16 00:57:39 -07:00
qctecmdr
aef65700cc Merge "msm: ipa4: Add checks to prevent use-after-free errors" 2020-07-15 23:22:58 -07:00
Bojun Pan
a2f95e6aab msm: gsi: cache last 20 gsi interrupt for interrupt storm debug
GSI interrupt storm can happen due to un-clocked gsi isr.
If we enable clock and assert, there is a chance the gsi isr will
be already handled.
To debug it further, the change is to cache last 20 gsi isr with
timestamp.

Change-Id: I30be03a20df9f11be7f5d8c06b049591305940bb
Signed-off-by: Bojun Pan <bojunp@codeaurora.org>
2020-07-15 16:42:05 -07:00
Michael Adisumarta
963ea81558 msm: ipa: removing explicit NAPI object delete
NAPI object is deleted as part of free_netdev. No need
to free it seperately

Change-Id: I20a2b6a8f73f9341030188d00dadc6acc7671c30
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-07-15 14:54:19 -07:00
Chaitanya Pratapa
5cffb57355 msm: ipa: Fix using the right client enum
Fix using the right client enum when trying to add
NAPI TX function.

Change-Id: Ie45b5b72efdd76c27da854f1a22ed7e8f5853592
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-07-15 14:31:03 -07:00
Praveen Kurapati
9fd0658d2d msm: ipa4: Add checks to prevent use-after-free errors
A dangling pointer in IPA IDR structure causes use-after-free
issue. Add changes to prevent this corruption.

Change-Id: I229266b05cf6dab0c2d19e5c1e3b0883c7efcc72
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
2020-07-16 00:22:25 +05:30
qctecmdr
6adb226271 Merge "msm: ipa4: Fix to mask the global interrupt INT1" 2020-07-15 03:42:19 -07:00
qctecmdr
78ab233b35 Merge "gsi: Fix NULL pointer dereference on event-less channels" 2020-07-15 03:05:08 -07:00
Michael Adisumarta
dd7950746f techpack: ipa: Fixing compile errors
Addressed unintialized pointers and P1 errors and
fixing them accordingly.

Change-Id: Iba70c5fdf91fffd823c3473383e687fe8b549b64
Signed-off-by: Michael Adisumarta <madisuma@codeauror.org>
2020-07-14 16:43:36 -07:00
Ashok Vuyyuru
a2aa9f1235 msm: ipa4: Fix to mask the global interrupt INT1
Receiving the global interrupt INT1 without sending any
generic commands. So disabling interrupt by default.
Enabling the interrupt only before sending the generic command.

Change-Id: I55011933d92d29e19cc478ed1dbea9d08b95d239
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-07-14 10:33:00 +05:30
Michael Adisumarta
b5286ca355 msm: ipa: use detach/attach netif instead of stop/wakeup
To make sure detach and attach netif instead of stop
and wakeup and also to update transfer timer update.

Change-Id: I9d589b7f9f6fe98f778df509d3c16f339dfdeea1
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-07-13 21:23:44 -07:00
Ilia Lin
554a879753 gsi: Fix NULL pointer dereference on event-less channels
If gsi_start_channel() or gsi_stop_channel() are called
on a channel with no event ring allocated, there will be
null pointer dereference error.
Adding null pointer check.

Change-Id: I200aa09f49c2394041f66c33c458f7daa9aeaf8c
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-07-13 12:04:33 +03:00
Ilia Lin
86e8365599 ipa: Fix MHI flavor detection
The ipa3_get_hw_type_index() uses the ipa3_ctx->ipa_config_is_mhi
for MHI flavor detection. Therefore the ipa3_ctx->ipa_config_is_mhi
has to be initialized before the ipa3_get_hw_type_index() call.

Change-Id: I8446c68f8b1fb0e2a56838e92f59198bd6890462
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-07-13 09:15:44 +03:00
qctecmdr
8ca7410b47 Merge "msm:ipa: add stats for low latency data-path" 2020-07-08 20:28:57 -07:00
qctecmdr
e4a4c9197a Merge "msm:ipa: fix for EOB scatter & gather support" 2020-07-08 20:02:01 -07:00
qctecmdr
9888de5027 Merge "ipa: fix ipa3_send_nop_desc locking before alloc" 2020-07-08 11:24:26 -07:00
qctecmdr
c81a5ae586 Merge "msm: ipa3: Fix to avoid gsi/sys len stats mismatch" 2020-07-08 08:08:10 -07:00
Bojun Pan
532fe68c9c msm:ipa: add stats for low latency data-path
Rate limit the warning which could cause latency on low_lat data path.
Add stats count for buffer replenish issues.

Change-Id: I8ce8c7584be211e215a05b6c5c9a1ff1b2512240
2020-07-07 14:40:38 -07:00
qctecmdr
8bb9e5aa2e Merge "techpack: ipa: Fix include path" 2020-07-07 12:45:20 -07:00
Ashok Vuyyuru
dfa193fcfc msm: ipa3: Fix to avoid gsi/sys len stats mismatch
In suspend just before stopping the channel possible to receive
the IEOB interrupt and xfer pointer will not be processed in this
mode but gsi stats are updated.  In resume after starting the channel
will receive the IEOB interrupt and xfer pointer will be overwritten
because of this observing the gsi/sys len stats are not matching and
buffers won't be replinished properly leading to HW stall.
To avoid this process all data in polling context, gsi/sys len
stats are updated properly.

Change-Id: Id665448165b6aa51b251cddd72573c6df64ee541
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-07-07 22:55:23 +05:30
qctecmdr
c67509b1c4 Merge "msm: ipa4: flow control changes for rmnet pipe" 2020-07-07 09:55:50 -07:00
qctecmdr
809b201347 Merge "msm: ipa3: Cache gsi_ver" 2020-07-07 09:26:18 -07:00
qctecmdr
be18f5ed82 Merge "msm: ipa: Add default cases for gsi and ipa hw version" 2020-07-07 06:55:32 -07:00
Amir Levy
f02a072963 msm: ipa3: Cache gsi_ver
Caching gsi_ver in static global variable ipa3_res.
Added gsi_ver to struct ipa3_plat_drv_res.
Caching gsi_ver in function ipa3_post_init in gsi_props of type
struct gsi_per_props.

Change-Id: I63e286d907be8d6151ed3a19bb1ef3c0601b9dc7
Acked-by: Eliad Ben Yishay <ebenyish@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-07-07 00:34:12 -07:00
qctecmdr
e348baa3ab Merge "msm: ipa: Fix to ignore return value of netif_receive_skb" 2020-07-04 16:00:22 -07:00
qctecmdr
ba036e5337 Merge "techpack: ipa: Fixing compile errors" 2020-07-04 15:16:18 -07:00
Michael Adisumarta
f4ea405fa9 techpack: ipa: Fixing compile errors
Addressed NULL check and P1 errors and fixing them accordingly.

Change-Id: I1a7e03fad2bd54d4c035a783f16709be12cd5be8
Signed-off-by: Michael Adisumarta <madisuma@codeauror.org>
2020-06-30 16:01:47 -07:00
Ilia Lin
44ea5a55e0 techpack: ipa: Fix include path
Defined proper include search path for the header files
in the project, and changed the "#include" lines accordingly.

Change-Id: I759177e2e2c32b2e062774d2a68d40b63a0f6906
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-06-28 09:14:17 +03:00
Chaitanya Pratapa
f3219c84cd msm: ipa: enable status supression on WAN_PROD pipe
Processing status on every packet increases MIPS consumption
on Q6. Enable status supression to disable sending status
for every packet on UL path.

Change-Id: Ie818bcac683ee8b46e2e8a7a64e62e17ffda67ad
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-06-25 21:05:49 -07:00
Armaan Siddiqui
85c85ac455 msm: ipa: Add default cases for gsi and ipa hw version
Add default cases to avoid compilation error for unsupported
or new hw version

Change-Id: I37d8c753225a71ef6f1f28261e5938e40435fe50
Signed-off-by: Armaan Siddiqui <asiddiqu@codeaurora.org>
2020-06-25 00:53:53 +05:30
Chaitanya Pratapa
5b8bdb72db msm: ipa: Fix to ignore return value of netif_receive_skb
Default return value of netif_receive_skb is drop. Make
changes to ignore the return value to avoid printing error
for every packet.

Change-Id: I002e53c85d6bfa781240e65ee38175dae68a80bb
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-06-24 11:52:40 -07:00
Amir Levy
cf1055773b ipa: fix ipa3_send_nop_desc locking before alloc
After adding the tx_pkt_wrapper cache the allocation
was done in GFP_KERNEL while SoftIrqs are disabled
since spin_lock_bh was used.
This change releases the spinlock before allocation is done.

Change-Id: I3c3cee3e82d581c79a0258d3fcec378ed3d9a07c
Acked-by: Tal Gelbard <tgelbard@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-06-24 07:37:55 -07:00
qctecmdr
8a9d067807 Merge "Register more ipa API" 2020-06-23 16:48:26 -07:00
Bojun Pan
ac6004def6 msm:ipa: fix for EOB scatter & gather support
1. Fix the issue where IPA adds the fragments into
the skb in reverse.
2. Fix the size update to stack for EOB packet.

Change-Id: I24e33391859dfe735cd3258a797e2c86d90bdfd6
2020-06-23 14:12:54 -07:00
Chaitanya Pratapa
ec886de69e ipa: Add support to notify wan upstream iface info
Netmgr requires upstream iface info whenever tethering is
enabled to toggle RSB advanced feature on/off for the
respective upstream iface. Make changes to give provision
to get upstream iface whenever tethering is enabled and
post a uevent.

Change-Id: I841e334fa9000dd5a0f0cc4fce52c5432f67cba8
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-06-21 20:07:47 -07:00
Amir Levy
253faa1d8c Register more ipa API
register the following ipa clients to ipa_framework:
ipa_wdi3
ipa_gsb
ipa_uc_offload
ipa_mhi
ipa_wigig
this comes as an addition to ipa_usb support.

Add all remaining IPA core driver API functions.
remove internal functions.
remove deprecated code from mhi_client and ipa_rm.

Change-Id: Ia56520863446c42ca7b4602f1633e0887abb0b40
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-06-20 23:55:14 -07:00
qctecmdr
e42ec8bab3 Merge "msm: ipa3: Fix increase the NAPI budget to maximum" 2020-06-19 13:24:50 -07:00
qctecmdr
7c22e26a44 Merge "msm: ipa: fix to check for ECONNRESET" 2020-06-19 12:57:38 -07:00
qctecmdr
9964653a72 Merge "msm: ipa3: Update channel start as success in flow control state" 2020-06-19 12:10:38 -07:00
qctecmdr
415e826ed9 Merge "msm: ipa: Fix not resetting HOLB configuration for USB DPL Pipe" 2020-06-19 11:42:54 -07:00
Ashok Vuyyuru
1346a26798 msm: ipa3: Fix increase the NAPI budget to maximum
Because of less NAPI budget it's need to reschedule multiple
times in high tput scenario.To avoid multiple reschedule
configuring maximum NAPI budget value.

Change-Id: Id8745b54c3909d01df69376a823396ea4c94eebb
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-06-19 23:06:33 +05:30
Michael Adisumarta
8135efe0d4 msm: ipa: fix to check for ECONNRESET
ECONNRESET is returned if Q6 QMI service is down. Make changes to
check for ECONNRESET as well to detect SSR.

Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-06-17 16:07:02 -07:00
Praveen Kurapati
2c82e9319e msm: ipa3: Update channel start as success in flow control state
Observing race condition when we are starting the channel and
modem trying to offload flow_control on same channel. Add changes
to retrun success if channel state is flow control when trying to
start the channel.

Change-Id: Id254cd0e3e17c74e931d27cb96577224559c091e
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
2020-06-17 12:31:13 -07:00
Ashok Vuyyuru
8b2da330a4 msm: ipa4: flow control changes for rmnet pipe
When the RMNET pipe channel in the started state receiving the
junk packets, it leading IPA HW stall. Add changes to support
the new flow control channel state for rmnet pipe, it avoids
entering the junk packet to IPA HW.

Change-Id: If2b3992e8cdc93343e70f9d2c1783bbbde329bc2
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
2020-06-17 22:47:36 +05:30
Amir Levy
7fa129bfd4 ipa: revert tx-napi to be enabled via dts
This is a revert of a temporary change:
I178bf6fe4e17bf107f98086a9fd52f4cad484950

Was done since issues with the dts was resolved.

Change-Id: I7fec695989bee54f96c8cbe6c8f30dcce4a1e005
Acked-by: Tal Gelbard <tgelbard@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-06-17 09:52:00 -07:00
Chaitanya Pratapa
4ebba45613 msm: ipa: Fix not resetting HOLB configuration for USB DPL Pipe
When switching from USB DPL to ODL or vice versa, HOLB configuration
should not be resetted as there can be a race where HOLB set by Modem
is removed by AP.

Change-Id: I8d7feb43f2c28b3a8f150e64b5089f9d8b991545
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-06-16 22:00:46 -07:00
Michael Adisumarta
4045331780 msm: ipa: read channel stats from local variable
Fetch channel stats from local variable instead of
reading it from MMIO, which would have resulted in
Unclocked access.

Change-Id: I9a4eedeaa28cd52fade6ab9bea7151b702ca46d0
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
2020-06-10 21:09:44 -07:00
Bojun Pan
03f3d1ac41 msm: ipa: fix the use after free in rmnet_ipa_ctl xmit
skb->len is still used to update the tx stats, after the skb
could be freed in tx completion context.

Change-Id: I2c490dfdbc9401613816058c1c8207ea6b6f3450
2020-06-08 15:15:58 -07:00
Amir Levy
ec17a7f341 msm: ipa: cancel timer after EOT packet sent
Canceling the nop descriptor timer in case we eventually
do send an EOT packet since we cross the threshold

Change-Id: Ifcf8615c19cf8ce36a2198d214c7c7ff68501e43
Acked-by: Tal Gelbard <tgelbard@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
2020-06-02 00:09:13 -07:00
qctecmdr
557c185a3d Merge "msm:ipa: fix the tx_napi enable condition" 2020-05-29 12:41:47 -07:00
qctecmdr
19cf065ea0 Merge "msm: ipa: fix to check for ECONNRESET" 2020-05-29 11:49:46 -07:00
Bojun Pan
f4527983e0 msm:ipa: fix the tx_napi enable condition
Only enable the tx_napi on APPS_PROD pipes.

Change-Id: Iaff4645e618d37604a86b5fc05f6cfe6e677c156
2020-05-28 10:28:25 -07:00
Chaitanya Pratapa
18866f3967 msm: ipa: fix to check for ECONNRESET
ECONNRESET is returned if Q6 QMI service is down. Make changes to
check for ECONNRESET as well to detect SSR.

Change-Id: If466106ed6726aa7d60af86bdcf5e55ef03b6e2c
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
2020-05-27 22:14:16 -07:00
Bojun Pan
f29b6320d4 msm: ipa: fix the unlock issue for rmnet_ctl module
Fix the double unlock issue on rmnet_ctl_wakeup_ipa.

Change-Id: I3f559a7296463fee446da5b8f0174ccae91ba43a
2020-05-27 11:15:07 -07:00
Rishabh Garg
d5c81c5204 ipa3:msm: Added debugfs support for drop packet stats
enabled the debug support for drop packets on the basis of
pipe number.

Change-Id: Ia1811dd7a5b28bfc787ed7e28e661dfac3e41a17
Signed-off-by: Rishabh Garg <rishgarg@codeaurora.org>
2020-05-26 06:21:44 -07:00
Sivakanth vaka
b93346f3ba msm: ipa3: fixed memory leak
SMMU mapping resources are not freed as part of wdi disconnect.

Change-Id: I702ac3bc0b5643424d051c45ec607d925f9c369d
Signed-off-by: sivakanth vaka <svaka@codeaurora.org>
2020-05-21 11:44:36 -07:00
Ilia Lin
7e89bf0760 msm: ipa: Fix ipa_pre_init teardown
Part of allocations made by the ipa_pre_init() are not freed correctly.
Fixing this by calling the relevant cleanup's.
Since the ipa_odl_init() is not the last allocation now,
the appropriate ipa_odl_cleanup added.

Change-Id: Iedbe1dff829f5bedbf788ffd89928982a498d065
Signed-off-by: Ilia Lin <ilial@codeaurora.org>
2020-05-21 05:53:02 -07:00
Bojun Pan
acde797a5f msm: ipa: add log for uC HOLB monitor
Log last 20 HOLB event for each client.
Add debugfs support to print those events.

Change-Id: I4aa1bd6c86b22efbbaa3a5be2030667d3e4c8bec
2020-05-19 09:39:24 -07:00
Bojun Pan
e32086115f msm:ipa:use separate event ring for low latency UL pipe
Setup a separate event ring for low latency UL pipe.

Change-Id: Ia7800457430f9d941587f4bffc9de3ff2b15ef2b
2020-05-18 22:35:48 -07:00