As SSR event is not received to APPS, some data
is sent to modem. Add change to stop netdev first
during SSR events and halt the modem channels.
Change-Id: Id62d5f0cf811a30dc796401c15cf1ed6b8425992
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
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
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>
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>
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>
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>
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>
Make changes to memcopy before preload end.
Change-Id: Icc056a3bcd5b739b8165813202c87dd84e72c78a
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
Make changes to delete NAPI TX object when pipe setup fails.
Change-Id: Ie7124fc9f996795b1a955166a9cae198f6a57f03
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>
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>
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>
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>
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>
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
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>
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>
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>
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>
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
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>
Adding checks if the rt_rule is not freed
before committing.
Change-Id: I4a2c86c24587a6a3ea7318bac438a9f27784f2f7
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
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>
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>
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
Rate limitting the warning if client doesn't have
callback.
Change-Id: I09b02181e4c34ecf342e150de76eace9341a0c0a
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
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>
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>
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>
Adding changes to configure the destination resource group for DRB-IP.
Change-Id: I41248e7e7e92a0e4635b8661d1f324be165bd2fa
Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
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>
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>
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>
In IPA4.9, the wrong end_init_deaggr ipa hal implementation had
been chosen. The fix is to correc the setting.
Change-Id: I63e2c50bc42b13ef9213d4b75d5c22346170a0d3
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>
Avoiding NULL pointer de-referencing for an internal variable.
Change-Id: I9fa3bc24c747c7c04d1d64b29fc63677206252e0
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
Fix using the right client enum when trying to add
NAPI TX function.
Change-Id: Ie45b5b72efdd76c27da854f1a22ed7e8f5853592
Signed-off-by: Chaitanya Pratapa <cpratapa@codeaurora.org>