Using channel mutex lock while accessing channel specific lists,
event_req_buffers and flush_event_req_buffers. This will avoid any
synchronization issues for these lists. Previously two different mutex
locks, global MHI lock and channel lock are used while accessing these
lists.
Removing MHI spin lock while accessing the above lists in
mhi_dev_process_reset_cmd, mhi_dev_queue_transfer_completion and
mhi_dev_flush_transfer_completion_events APIs as they are already
protected by channel mutex lock obtained from the APIs that are
calling these three APIs.
Removing MHI spin lock in mhi_dev_event_msi_cb and adding channel mutex
lock. In other instances where these lists are accessed they are already
protected by channel mutex lock.
Change-Id: I58b673be452a942ff946e07f17c96a0715805621
Signed-off-by: Sai Chaitanya Kaveti <quic_skaveti@quicinc.com>
With the commit <1528bbe6b5> ("msm: mhi_dev: Keeping event req
memory without clearing in close channel"), we are avoiding freeing
of ereq memory in close channel API. New memory is not created again
as part of start/open channel since it is not released while closing
the channel. Idea is to hold the allocated memory and avoid
reallocating every time.
But during the reset command we are freeing some of the ereqs which we
need to hold without releasing.
This change avoids freeing of ereq memory as part of reset channel
command and adds the ereqs to the event_req_buffers list. This ensures
that the lists, event_req_buffers and flush_event_req_buffers are
updated with valid ereqs.
Change-Id: Ie29962f2bc8ef5a0c193d13a13118ae9b6044c0b
Signed-off-by: Sai Chaitanya Kaveti <quic_skaveti@quicinc.com>
Start channel commands from MHI Host are given for all the set of valid
channels during the initialization itself. Previously we are allocating
ereq memory as part of start channel command. But, many of these channels
may not be opened by the clients and the ereq memory allocated is not
useful here.
Here avoiding ereq memory allocation during start channel command and
allocating memory only as part of open channel call by the clients. This
will reduce the overall memory usage and avoid the memory allocation
failures.
Change-Id: I60eccd1d17c60e1108820e1532f2ae385455f336
Signed-off-by: Sai Chaitanya Kaveti <quic_skaveti@quicinc.com>
Use UBI_MAX_VOLUME_NAME length for printing ubi volume names
to avoid truncation of ubi volume name fields.
Change-Id: I0ab4577dcc1e4bb93d2bcef1b8e52da98f13ff15
Signed-off-by: Pradeep P V K <quic_pragalla@quicinc.com>
Performance counter values need not be retained across contexts unless
specifically requested for debug. Zap the counters by initialising
perfcounter SRAM with 0's using GPU_RBBM_PERFCTR_SRAM_INIT_CMD.
Add pm4 packets during context switches and add a KMD postamble packet to
clear the counters during preemption. Do not enable perfcounter save and
restore unless requested.
Change-Id: I371779ce659c07a1cc664327f5ecdcf0374201d8
Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>
Signed-off-by: Harshitha Sai Neelati <quic_hsaineel@quicinc.com>
If packet size is set to invalid value by firmware, when driver
tries to copy property content to memory, it could cause buffer
overflow. To avoid this, packet size needs to be checked to make
sure it's valid.
Change-Id: Ic549f840db998385323e89b3f3dbe2e4349b932e
Signed-off-by: Jilai Wang <quic_jilaiw@quicinc.com>
Currently, only HS descriptors will be updated with endpoint address
during binding process. According to current max_speed in configfs,
this patch will also update SS/SSP descriptors with endpoint address.
Bug: 162562782
Signed-off-by: Ray Chi <raychi@google.com>
Change-Id: I67983ef47df7ac567ec1d3af80921c39c98a545d
Git-commit: 41fe558317e9ffdc07326e8ef9ca6ea596d9a518
Git-Repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Pratham Pratap <ppratap@codeaurora.org>
Adds the necessary SuperSpeed Plus support for f_accessory.
[Not upstream as this file is not upstream].
Bug: 170925797
Signed-off-by: taehyun.cho <taehyun.cho@samsung.com>
Change-Id: Ia2a5f4a6cefac2418f8f29bf1a56355b96d80fc0
(cherry picked from commit 00572be28ec474d7953f1b9dd681cc2dd290d9bf)
[willmcvicker: only cherry-pick f_accessory from original patch]
Signed-off-by: Will McVicker <willmcvicker@google.com>
(cherry picked from commit 4d7ced0819d3f30acbde46991393249049cefa05)
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Git-commit: 9acdbad022c88c958ba69ab3f021f2e8a07cfc45
Git-Repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Pratham Pratap <ppratap@codeaurora.org>
dma_map_resource() API returns DMA_MAPPING_ERROR i.e -1 upon error.
The current code checks against NULL which makes it think that the
API returned successfully. The incorrect IOVA further results into
SMMU fault. To fix this, add proper error handling for mapping
failure of iova.
Change-Id: I080049029ce01be13c603a1d709e37189a09484e
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
Cleanup the redundant configs from holi_GKI.config as they are
updated in gki_defconfig.
Change-Id: I9e1a3bc7800e9d1e56ba651a63ebab03dd52546e
Signed-off-by: Srinivasarao Pathipati <quic_spathi@quicinc.com>
* refs/heads/tmp-5d7a491:
UPSTREAM: lib/iov_iter: initialize "flags" in new pipe_buffer
Revert "ANDROID: incremental-fs: remove index and incomplete dir on umount"
Revert "ANDROID: incremental-fs: fix mount_fs issue"
FROMGIT: f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
UPSTREAM: usb: gadget: rndis: check size of RNDIS_MSG_SET command
UPSTREAM: USB: gadget: validate interface OS descriptor requests
Revert "tracefs: Have tracefs directories not set OTH permission bits by default"
UPSTREAM: tipc: improve size validations for received domain records
ANDROID: GKI: Enable CONFIG_SERIAL_8250_RUNTIME_UARTS=0
ANDROID: GKI: db845c: Update symbols list and ABI
ANDROID: Increase x86 cmdline size to 4k
UPSTREAM: cgroup-v1: Require capabilities to set release_agent
ANDROID: incremental-fs: remove index and incomplete dir on umount
UPSTREAM: binder: fix async_free_space accounting for empty parcels
UPSTREAM: tee: handle lookup of shm with reference count 0
UPSTREAM: bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc
Change-Id: Icb1c0295b7d7da25c37c21a2580ea4d246069039
Signed-off-by: Srinivasarao Pathipati <quic_spathi@quicinc.com>
GFP_ATOMIC flag is typically used in memory allocations inside
interrupt handlers or with spin locks. It is of high priority but it
does not allow the caller to reclaim the memory allocation request.
This may lead to memory allocation failures in low memory situations.
Since alloc_skb() is not called from interrupt handler or in spin lock
context, changing the GFP flag from GFP_ATOMIC to GFP_KERNEL.
Change-Id: I6c3a2b5b4674965cf1d4860e9072fa46cd4adddb
Signed-off-by: Sai Chaitanya Kaveti <quic_skaveti@quicinc.com>
Consider a case where, during bus_reset or composition switch,
due to some reason ENDXFER command timed out. Now, gadget driver
won't be giving back the requests to function driver because of
the timeout since controller can still access those requests.
During function_disable gadget driver expects function driver to
dequeue the requests so that the lists maintained by both gadget
driver and function driver should free up all the request.
Currently u_serial driver is just freeing the requests from
read/write pool without any dequeue which is causing
inconsistencies.
Fix this by dequeueing requests from read/write pool on
gserial_disconnect.
Change-Id: I714c7fe681d42a68c864bf0e90748f117b258548
Signed-off-by: Pratham Pratap <quic_ppratap@quicinc.com>
The gadget->max_speed should not be changed dynamically as it can
mess up the descriptor preparation. Let it be the max supported
by the hardware and changed the dwc3->maximum_speed to force
the controller to enumerate at lower speed when needed. This makes
sure that the descriptors for all speeds are cached during bind
of the function drivers.
Change-Id: Id7fd8f23bb84f7396a6e3b62c5e61c4536522d82
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
commit 9d2231c5d74e13b2a0546fee6737ee4446017903 upstream.
The functions copy_page_to_iter_pipe() and push_pipe() can both
allocate a new pipe_buffer, but the "flags" member initializer is
missing.
Fixes: 241699cd72 ("new iov_iter flavour: pipe-backed")
To: Alexander Viro <viro@zeniv.linux.org.uk>
To: linux-fsdevel@vger.kernel.org
To: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 87c575d2a2)
Bug: 220741611
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I91076a0b6327ee8dd87e75fc875062b6adf2de4c
Currently performance counters are global and can be read by anyone. Change
the behaviour to disable reading global counters as default and add a sysfs
node to enable/disable reads.
Change-Id: Ic3785acd9bd7425c2a844ed103d7b870d9f80adf
Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>
Signed-off-by: Harshitha Sai Neelati <quic_hsaineel@quicinc.com>
This reverts commit fe0c18d0f0.
This is follow up cleanup after revert of:
"Revert "ANDROID: incremental-fs: fix mount_fs issue"
Bug: 220805927
Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I7749401484d87b9d519bd7b9600cd02f91a18090
Clean up the lucid_5lpe_sdx_cpu ops as it is not in use.
Change-Id: I2a154be710b2a36f2a00eb689212cc39f57c284d
Signed-off-by: Imran Shaik <quic_imrashai@quicinc.com>
This reverts commit 013b7ed754.
Test: Can now install the same apk twice, and repeated installs are
stable
Bug: 217661925
Bug: 219731048
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I86871c364c17a0d1107b3891a574b72edcf04ea2
(cherry picked from commit d107cd06f26b4d45b1079c7eb857815905198076)
Signed-off-by: Howard Chen <howardsoc@google.com>
In msm_pcie_enable,EP is brought out of reset
after the link up.This will cause the enumeration
issues with HSP as NTN3 GPIO is connected to WLAN reset.
So moving the part of bringing the EP out of reset
prior link training and after de-emphasis setting.
The reason for moving it after de-emphasis setting is
to ensure WLAN is brought out of reset after all the switch
settings gets applied.
change-Id: I523000fd2475d8a1767423469f3bab0b7bc97ac0
Signed-off-by: Ramya SR <quic_rsr@quicinc.com>
This change registers an interrupt with flag IRQF_NO_SUSPEND,so as
to allow system to not disable the interrupt by suspend_device_irqs().
If any client issues transfer during system suspend/resume time, i2c
should do transfer without any timeout.
Change-Id: I5b2eda52e82dc319e4bb74cb44b9c6ae09ad84c9
Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
In NTN3 switch there are i2c writes performed
in order to update some of the settings prior linkup.
These settings are taken care in upcoming versions of ntn3 chips
i.e, above V1 chips.There are some settings still required for NTN3v2
to solve the gen3 AER's. So added a separate switch reg update
sequence for it.
This change is to support update of de_emphasis settings of ntn3 switch
depending on the chip version.Also added a condition to check the
force update of these settings irrespective of the chip version
if force update flag is set by the client in the dtsi.
Change-Id: Id4828533f3f6f6f309b1c9c844a99a183c2950e1
Signed-off-by: Ramya SR <quic_rsr@quicinc.com>
Client with direct dma will have multiple dma buffer segments.
Warning is raised as partial cmo only supported with one segment.
Suppress these warnings as this is known limitation.
Change-Id: Ie534b2b11121e60bf87f671b14ea1b1fd57633af
Signed-off-by: Srinivasarao Pathipati <quic_spathi@quicinc.com>
There is a chance that ep_disable will be called from mass
storage function driver after usb is in LPM as ep_disable
in mass storage function driver is called in worker
thread context. Hence, Commit 589a7f885ae2 ("usb: dwc3: Don't
perform pm rt sync operations in atomic context") added
pm_runtime calls for mass storage function driver,
so that system can be resumed and then do the ep_disable
operations.
But Commit e8e83c46c5eb ("usb: gadget: f_mass_storage: Disable
eps during disconnect") has changed the implementation of
ep_disable in mass storage function driver. It is now being
called in atomic context. So there is no chance of ep_disable
being called after usb is in lpm. Hence remove the support for
pm_runtime calls in ep_disable as they are any how no-op.
Change-Id: I5bcc2572da1608b24b1fe1cf14b6f1c3918d2d7a
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
When receiving a disconnect event from the UDC, the mass storage
function driver currently runs the handle_exception() routine
asynchronously. For UDCs that support runtime PM, there is a
possibility the UDC is already suspended by the time the
do_set_interface() is executed. This can lead to HW register access
while the UDC is already suspended.
Change-Id: Ie1374cb7c895bd9d5c0129dd18886980dba71712
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Link: https://lore.kernel.org/r/1635365407-31337-3-git-send-email-quic_wcheng@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 9fff139aeb11186fd8e75860c959c86cb43ab2f6
Git-Repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
The usb_ep_disable() and usb_ep_enable() routines are being widely
used in atomic/interrupt context by function drivers. Hence, the
statement about it being able to only run in process context may
not be true. Add an explicit comment mentioning that it can be used
in atomic context.
Change-Id: I509be3e7eba3f61b95c9bbeef6b39f4fb3a55f25
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Link: https://lore.kernel.org/r/1635365407-31337-2-git-send-email-quic_wcheng@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: b0d5d2a71641bb50cada708cc8fdca946a837e9a
Git-Repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
The config CONFIG_FORTIFY_SOURCE is disabled in gki_defconfig
with 'commit 90d684876917 ("ANDROID: GKI: disable CONFIG_FORTIFY_SOURCE")'
so removing it.
Change-Id: I81db9fea3f4dbc640df385efdaaa4461e5db1c8c
Signed-off-by: Srinivasarao Pathipati <quic_spathi@quicinc.com>