By default when ep0 gets enable, current code SET XFER resource command
for all USB endpoints excluding USB GSI endpoint. SET XFER resource
command shall fail if all resources are allocated. All allocated transfer
resources are resets in controller when DEPXFERCFG cmd is send with ep0
with value as 2 OR when controller is being peformed power on reset or
being restarted (i.e. device initiated disconnect and reconnect).
Consider case as below:
a. USB enumerated
b. USB bus suspend
c. USB bus reset
d. USB connect done
e. USB set_config() (set_alt())
f. Reenable all USB endpoint and resize tx fifo for it except ep0 and ep1
g. USB GSI endpoint operation (EP_OP_CONFIG) is sending SET XFER RESOURCE
which is failing as all resources are already allocated.
ep0 is disabled while clearing run stop and re-enabled when setting run
stop. For USB device mode we know that ep0 enabling is prerequisite before
setting run stop. Hence let ep0 enabling takes care of reallocating
transfer resources for all endpoint including USB GSI endpoints.
Change-Id: Ic5ab7558fadc636aaf255d62f91abf7842460659
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
https://bugzilla.kernel.org/show_bug.cgi?id=208565
PID: 257 TASK: ecdd0000 CPU: 0 COMMAND: "init"
#0 [<c0b420ec>] (__schedule) from [<c0b423c8>]
#1 [<c0b423c8>] (schedule) from [<c0b459d4>]
#2 [<c0b459d4>] (rwsem_down_read_failed) from [<c0b44fa0>]
#3 [<c0b44fa0>] (down_read) from [<c044233c>]
#4 [<c044233c>] (f2fs_truncate_blocks) from [<c0442890>]
#5 [<c0442890>] (f2fs_truncate) from [<c044d408>]
#6 [<c044d408>] (f2fs_evict_inode) from [<c030be18>]
#7 [<c030be18>] (evict) from [<c030a558>]
#8 [<c030a558>] (iput) from [<c047c600>]
#9 [<c047c600>] (f2fs_sync_node_pages) from [<c0465414>]
#10 [<c0465414>] (f2fs_write_checkpoint) from [<c04575f4>]
#11 [<c04575f4>] (f2fs_sync_fs) from [<c0441918>]
#12 [<c0441918>] (f2fs_do_sync_file) from [<c0441098>]
#13 [<c0441098>] (f2fs_sync_file) from [<c0323fa0>]
#14 [<c0323fa0>] (vfs_fsync_range) from [<c0324294>]
#15 [<c0324294>] (do_fsync) from [<c0324014>]
#16 [<c0324014>] (sys_fsync) from [<c0108bc0>]
This can be caused by flush_dirty_inode() in f2fs_sync_node_pages() where
iput() requires f2fs_lock_op() again resulting in livelock.
Change-Id: I5d7ef35a21cdb074e7bf5288371f579bfc0eb19d
Reported-by: Zhiguo Niu <Zhiguo.Niu@unisoc.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Git-commit: b0f3b87fb3abc42c81d76c6c5795f26dbdb2f04b
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Add the null checks for irq_chip callback while calling
affinity call of glink interrupt.
Change-Id: I62cec6ade0233094ef9a821185677b703d3ba1a3
Signed-off-by: Raghavendra Kakarla <rkakarla@codeaurora.org>
It takes sometime for complete memory reclaimed by oom kills to be
available, specifically ion allocations. This either require FDs to be
closed which is not covered by oom reaper or released by another process
not being kiled. So defer panic_on_oom to avoid panic trigger before memory
become available.
Change-Id: I9f3312c780e4d8444f58de5f781c9c8dfec9b2c7
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
This change adds power config changes for sdxlemur.
Change-Id: Icb09b5361cfda42c18c316e0a0d79aeee3d18b97
Signed-off-by: Tushar Nimkar <tnimkar@codeaurora.org>
MADV_FREE clears pte dirty bit and then marks the page lazyfree (clear
SwapBacked). PPR increments ISOLATE_FILES count, then isolates page and
invokes a reclaim. Inbetween if this lazyfreed page is touched by user then
it becomes dirty. PPR in shrink_page_list in try_to_unmap finds the page
dirty, marks it back as PageSwapBacked and skips reclaim. As PageSwapBacked
set, PPR identifies the page as anon and decrements ISOLATED_ANON, thus
creating isolated count mismatch.
This results in too_many_isolated() check causing delay in reclaim. Skip
reclaiming lazyfreed pages in PPR path.
Change-Id: I87223c4fa492c5e373ac48f116384b5de03da9fa
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Currently, updating USB type only depends on USB status change
notification from the charger firmware. During a reboot with USB
connected, there is a chance that a USB power supply notification would
have been sent by the charger firmware little earlier even before the
battery charger driver was ready to handle it. Hence it would've got
missed and USB type is not updated properly. Fix it by scheduling
usb_type_work once the driver probes.
Change-Id: I0ae482e90a76a0b2128fcc45561adb77a2ca017c
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Provide the option to configure the request of preset during
the initial part of the equalization master phase.
Change-Id: Ib33e84b3d333bc7c7275dd7108ef37067d92abbd
Signed-off-by: Tony Truong <truong@codeaurora.org>
Clear AOSS_CC_RESET_STATUS::PERST_RAW_RESET_STATUS
after PCIe link training in HLOS. Failure to clear it in
HLOS will result in PBL to consider it a controller reset
pending state during warm reset and initiate a controller
reset even if the PCIe link is up.
Change-Id: I3e5b89181be29062f79e4c5ace1863124367c72c
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Toggle between tcxo and phy pipe clock as part of
LPM sequence. Switch the source to XO before disabling
PCIe gdsc to avoid PCIe gdsc to be stuck until source
is switched to XO.
Change-Id: Ie2044da622962ff316319e7891974621e5c0ee92
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Typec attach_detach handler gets executed which is not
expected for micro-usb design. Return from type-C attach-detach
handler for micro-usb stack.
Change-Id: Ia7bfe6b407757663be4f7d143ccd88a60079657b
Signed-off-by: Kavya Nunna <knunna@codeaurora.org>
Signed-off-by: Ashish Chavan <ashichav@codeaurora.org>
Add partner registration for otg to provide UX. USB_HAL expects
power_role and data_role to be updated for the notification to UI.
Update power_role and data_role for microusb otg.
Change-Id: I741df638e18a400c862845bddd5bb19130adecd7
Signed-off-by: Kavya Nunna <knunna@codeaurora.org>
Signed-off-by: Ashish Chavan <ashichav@codeaurora.org>
Enable CONFIG_ARM_SMMU_POWER_ON_ALWAYS for all GKI targets, and only
in the GKI configuration. This feature should not be enabled in
the QGKI/production configurations.
Change-Id: Ifa16169b2595408d4f5c2142f6fddb9aa941eb2a
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
The SMMU driver will vote for the resources it needs before performing
a particular operation, and will remove its votes after the operation
is complete.
When power resources are not currently enabled by other drivers,
the SMMU driver's requests to enable its devices' power resources
go through the slow paths where the hardware power resources
get turned on. So, in a scenario where the SMMU driver is constantly
performing work and having to toggle the state of the power resources,
the SMMU driver operations take more time.
On GKI, the upstream implementation of the IOMMU page table management
code is used, which doesn't have the optimizations we have downstream,
which improve the performance of the SMMU driver when unmapping memory.
The GPU can go into slumber if it is not active, and can relinquish its
votes for the power resources that the SMMU driver votes for when
unmapping memory. This requires the SMMU driver to take the slowpath
of enabling all of these power resources and then disabling them
on every call to unmap memory, which can incur a considerable amount
of delay.
This delay, along with the usage of the unoptimized IOMMU page table
management code in GKI results in slow unmap calls.
Thus, add support for the SMMU driver to never remove its power votes,
so that it doesn't have to spend time voting for power resources while
it is operating.
Change-Id: Id93aafef18f69e377391875e2a7b340b34b4b3e8
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Add CONFIG_QPNP_QG to enable the QG device present on PM7250B
that can be used on sdxlemur platforms.
Also, add CONFIG_TYPEC and CONFIG_QCOM_POWER_SUPPLY to compile
QG and SMB5 drivers properly.
Change-Id: Ibb8230ccb1366b7f2a04e2ac77b043ece7f463dd
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Snapshot of PCIe endpoint driver as of msm-4.14.
'commit <adeff59> (""drivers: clk: msm:
fix compilation for non DEBUG_FS build"")'.
The following changes were done:
-Replace msm_bus driver with interconnect framework.
-Remove iommu deprecated API's.
-Fix checkpatch warnings on usage of module param.
-Fix several checkpatch warnings.
Change-Id: I04ee8f5d5802af0aa0cdd607a79c91e3eca7f194
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
This reverts commit fc6d479bac4c756359388647d45f39f08d0c8534. The
functionality offered by this change was not implemented correctly,
so revert it in favor of a different way of addressing the issue
that was supposed to be fixed.
Change-Id: Id061372026dea2960758c4dad0a5e37c2604576e
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Sometimes crashdumper can timeout due to unresponsive hang
scenarios. Hence fill the crash dumper with known pattern to
know the progress of crashdumper before it gets timed out.
Change-Id: I757fa345b4d7db7d7012ff6501b169a562f9b9c6
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>