This is a snapshot of the IPCC controller driver as of msm-4.19 commit
<d3d6e9be4297471f88c2a14d31424c508a5b7174>. (Merge "cnss2: Add idle state
to bus voting").
Change-Id: I5b8a3b1e7f71d7cd7e59cf0271e8eac7549c5b6c
Signed-off-by: Prakruthi Deepak Heragu <pheragu@codeaurora.org>
The irq_domain_remove() API expects all the irqs of the domain be cleared
before it is called, else it throws a warning. A framework creating a
radix tree to map all the irqs used by its clients cannot be sure if all
the clients cleared their irqs. Thus to avoid this warning, we can use
this API irq_dispose_all_tree_mappings() to ensure that all irqs
belonging to the domain are cleared before the domain is itself removed.
Change-Id: Ied1f20c990aba9d4760091d9ed3d48c3e4f3d5d9
Signed-off-by: Prakruthi Deepak Heragu <pheragu@codeaurora.org>
This patch merges all of the IOMMU/SMMU, DMA mapping, fast, and
lazy mapping changes from msm-4.19 into msm-lahaina.
Change-Id: If7c1f641a8c836dbb799e2f3439f443ff299b299
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
The thread which initiates the hot plug can get scheduled
out, while trying to acquire the console lock,
thus increasing the hot plug latency. This option
allows to selectively disable the console flush and
in turn reduce the hot plug latency.
Change-Id: I42507804d321b29b7761146a6c175d959bf79925
Signed-off-by: Mohammed Khajapasha <mkhaja@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
This reverts commit a82785a953.
This is required for flush_cache_all to work.
Change-Id: I0c817ca02ff7f113d2058a81814b611342bc111a
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
CPU hotplug operations take place in preemptible context. This leaves
the hotplugging thread at the mercy of overall system load and CPU
availability. If the hotplugging thread does not get an opportunity
to execute after it has already begun a hotplug operation, CPUs can
end up being stuck in a quasi online state. In the worst case a CPU
can be stuck in a state where the migration thread is parked while
another task is executing and changing affinity in a loop. This
combination can result in unbounded execution time for the running
task until the hotplugging thread gets the chance to run to complete
the hotplug operation.
Fix the said problem by ensuring that hotplug can only occur from
threads belonging to the RT sched class. This allows the hotplugging
thread priority on the CPU no matter what the system load or the
number of available CPUs are. If a SCHED_NORMAL task attempts to
hotplug a CPU, we temporarily elevate it's scheduling policy to RT.
Furthermore, we disallow hotplugging operations to begin if the
calling task belongs to the idle and deadline classes or those that
use the SCHED_BATCH policy.
Change-Id: Idbb1384626e6ddff46c0d2ce752eee68396c78af
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
[psodagud@codeaurora.org: Fixed compilation issues]
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
In a heterogenous multiprocessor system, specifying the
'maxcpus' parameter on the kernel command line does not
provide sufficient control over which CPUs are brought
online at kernel boot time, since CPUs may have nonuniform
performance characteristics. Thus, we introduce a
'boot_cpus' command line argument, allowing the user to
explicitly specify the list of CPUs that shall be brought
online during kernel boot.
Change-Id: I7bf5efa94785bc6cf1236aa71f4d7364e859fc37
Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Add ftrace event trace_cpuhp_latency to track cpu
hotplug latency and this entry is useful in power,
performance and debug analysis.
Change-Id: Ie6b2a91027c665ccaf6325b0836bb629a4e91dd7
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
When mod_delayed_work() is concurrently executed, there a potential
live lock scenario due to pool->lock contention.
Lets say both CPU#0 and CPU#4 calls mod_delayed_work() on the same
work item with 0 delay on a bounded workqueue. This workitem has
run on CPU#4 previously. CPU#0 wins the work item PENDING bit race
and proceeds to queueing. As this work has previously run on CPU#4,
it tries to acquire the corresponding pool->lock to check if it is
still running there. In the meantime, CPU#4 loops in
try_to_grab_pending() for the workitem to be linked with a pwq so
that it can steal it from pwq->pool->worklist. The CPU#4 essentially
acquires and releases the pool->lock in a busy loop and CPU#0 may
never gets this lock.
---------------- --------------------
CPU#0 CPU#4
--------------- --------------------
blk_run_queue_async()
mod_delayed_work_on() queue_unplugged()
--> try_to_grab_pending() returns blk_run_queue_async()
0 indicating PENDING bit is set
now.
__queue_delayed_work() mod_delayed_work_on()
__queue_work() try_to_grab_pending()
{
--> waiting for the CPU#4's acquire pool->lock()
pool->lock release pool->lock()
}
Change-Id: I9aeab111f55a19478a9d045c8e3576bce3b7a7c5
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
If kernel stack variables are not initialized properly,
there is a chance of kernel information disclosure.
So, initialize kernel stack variables with null characters.
CRs-fixed: 2042592
Change-Id: I213c0e5c7f67824c2cecace276ff2f8f81599d51
Signed-off-by: Sai Krishna Juturi <jsaikrishna@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
Add the stack dump and printk of other CPUs when they are stopped
during an abnormal operation like a panic - This information is useful
for debugging to get a clear idea of what might have caused a crash.
Change-Id: I91a62cfc7cdb49b9cdbb247869b5ba799947ece5
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Add usecase IDs such as LLCC_MDMHW, LLCC_CVP, LLCC_MDMVPE,
LLCC_APTCM, LLCC_WRTCH, LLCC_CVPFW, and LLCC_CPUSS1 for the
respective clients.
Change-Id: I0b6666f3c17b9e880568f27782e967c5f9b587bf
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
For older targets, it is possible that they are not allowed
to configure certain llcc registers, as that is handled by
the secure side. However, this is not the case for newer
targets, and as such, they must configure these registers
according to the contents of the SCT table, while keeping in
mind that older targets may not have these capabilities.
Allow configuration of registers to enable capacity based
allocation and power collapse retention for capable targets.
Squashed commit:
drivers: llcc: Check the return value after write
Check the return value after writing to power collapse and
capacity based allocation registers.
Change-Id: I2106f98812a9369f1fdb7e20453741f1375c0a58
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
[vgutta@codeaurora.org: Resolved trivial merge conflicts]
Signed-off-by: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org>
[rananta@codeaurora.org: Resolved trivial merge conflicts]
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Configure the write sub-cache register based on the version, as
it's not supported by older targets.
Change-Id: Ifc3f2d4d66612d6dcc6070d3cbc3fce97202ccf3
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
[rananta@codeaurora.org: Resolved trivial merge conflicts]
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Update the ABI snapshot for aarch64 since the kernel is updated.
Change-Id: Id9a655a5757e980f3f653d33edd27713247a22de
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
* remotes/origin/tmp-cf045d8:
ANDROID: build configs: switch prebuilt path location
ANDROID: mnt: Fix null pointer dereference
ANDROID: {cuttlefish,gki}_defconfig: Enable CONFIG_SDCARD_FS
ANDROID: sdcardfs: Add sdcardfs filesystem
ANDROID: sdcardfs: Define magic value
ANDROID: mnt: Add filesystem private data to mount points
ANDROID: fs: Restore vfs_path_lookup() export
ANDROID: vfs: add d_canonical_path for stacked filesystem support
ANDROID: Add show_options2 to view private mount data
ANDROID: vfs: Add permission2 for filesystems with per mount permissions
ANDROID: vfs: Add setattr2 for filesystems with per mount permissions
ANDROID: sdcardfs: Enable modular sdcardfs
ANDROID: gki_defconfig: disable BRIDGE_NETFILTER
ANDROID: gki_defconfig: enable more configs
ANDROID: Updating abi for aarch64 gki to reflect HCD_DUMMY addition
ANDROID: adding usb HCD dummy config to permit usb write ops on init
Change-Id: Iee24e3d0ca3637e295682bbb37287c11aa264fcd
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Remove dmesg about irq redistributor since it fills up
the console with every hotplug of the cpus. The information
about redistributor is already disclosed in the dmesg during
bootup.
CRs-Fixed: 1048941
Change-Id: I5ddb2036ab3df4715382368c144365d578ce4bb8
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Move to a kernel specific prebuilt path.
Bug: 135922132
Change-Id: I8755f8f0154eecc86ad598be7a7811e9d8f068ed
Signed-off-by: Matthias Maennich <maennich@google.com>
The UFS phy during pre-silicon runs in HS-G1 and doesn't
support low-power modes.
It provides a method to disable-lpm and restrict
the gear to the desired value.
Change-Id: Iad7fae4aa4ed04546a761209d74107ad62d92ac7
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Add quirk for broken auto-hibern8 support.
It also retries to get the clock if clk_get fails.
Change-Id: I8862ebd31eb61b7cac6c88f66cbfe4f8255682cf
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Enable the UFS phy that is used for presilicon.
Change-Id: I6edb088fa0c1eb1e47d3e010ddb6542343788417
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Fix "ANDROID: mnt: Add filesystem private data to mount points" to only
call update_mnt_data() if the filesystem provides the function. This
avoids a null pointer dereference in do_mount().
Reported-by: youling 257 <youling257@gmail.com>
Signed-off-by: Alistair Delva <adelva@google.com>
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: I6aedaa89536ae85e6bc29093f38934c672c8fe42
Update the ABI signature for aarch64 based on v5.2.
Change-Id: Ib581cd12beba4f752da946c03b4d9773c8cfb27c
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Add Cortex A55 r2p0 MIDR value to list of CPUs that impacted by erratum
1024718.
Change-Id: Ida842a099fcd892c84db28ab6a92728d2303d21b
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Add the phy driver used for presilicon
verification of ufs.
Change-Id: Ie7cceffd49eb24066e4a1bcf47b1f0c5115ce116
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Enable Qualcomm specific generic UFS Phy driver
for IO.
Change-Id: I711fd291599a902d8ac51249a0764b12d27bd687
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>