If higher 4 bits of chip ID (device major version) is 1, read board
data file name as bdwlang.e<board ID>. The assumption is board ID
will be always less than 0xFF. If board ID (0xFF) is invalid in OTP
then read it as bdwlang.elf for such case. Also only use lower 4 bits
of device major version as the version number to load firmware file
because of above new requirement.
Change-Id: I4dce528a9c389a660b19dabe4ee44e655a23570b
Signed-off-by: Yue Ma <yuem@codeaurora.org>
* This debug logging consumes 10% of all the CPU
cycles in the drivers communicating with the DSP.
* Disable the logging for the time being until we add
a config.
Bug: 71867957
Change-Id: I97d418fee3d4576b077ed284ed5ae4447da5a789
* Excessive logging -- not present on angler -- is
affecting performance, contributing to missed audio
deadlines and likely other latency-dependent tasks.
Bug: 30375418
[@0ctobot: Extend patch to cover binder_alloc_debug_mask]
Co-authored-by: Adam W. Willis <return.of.octobot@gmail.com>
Change-Id: I36c4ce8a0294e5e7847a3fd884691cb178cd95c2
Commit "rcu: Create RCU-specific workqueues with rescuers" switched RCU
to using local workqueses and removed power efficiency flag from them.
This caused a performance regression that can be observed in Geekbench 5
after enabling CONFIG_WQ_POWER_EFFICIENT_DEFAULT: score went down from
760/2500 to 620/2300 (single/multi core respectively).
Add WQ_POWER_EFFICIENT flag to avoid this regression.
Change-Id: I2c4f41faa55548f9e81a1c0cbe10703948062d89
Remote register I/O amounts to a measurably significant portion of CPU
time due to how frequently this function is used. Cache the value of
each register on-demand and use this value in future invocations to
mitigate the expensive I/O.
Co-authored-by: Sultan Alsawaf <sultan@kerneltoast.com>
[@0ctobot: Adapted for msm-4.19]
Change-Id: I6846ee58c476a125076d0c3ad351f9e15eba180a
* These have all moved into the ramdisk, and boot devices
has gone to the kernel commandline.
Bug: 117933812
Change-Id: I0d06607c522c08f50484b9eff4dc78b21cc083f5
* Android devices use LMK algorythms, so there's no
reason to disable and enable the OOM killer when entering and exiting
suspend.
* This is a fixed version of https://github.com/YaroST12/VIOLENT_kernel/commit/86e59a93b2ef
Co-authored-by: Danny Lin <danny@kdrag0n.dev>
Change-Id: Icb2a57e51128a9ae8d578e697f041ff19871351b
* Similar to what I've done on other devices, revert
to normal grace periods to reduce power usage.
* Expedited RCU hammers CPUs with IPIs to reduce grace
period durations and thus RCU latency, but that disrupts
busy CPUs and causes unnecessary wakeups while providing
little to no improvement in real-world performance.
Change-Id: I2b55e4aaa82bb670dfd6fb417b05fe9ae685e0a8
* Our kernel only runs on known systems where broken
IRQs would already have been discovered, so disable
this to reduce overhead in the IRQ handling path.
Change-Id: Ia9e655dc9891f9cb94a6123ceaec43ba7c5fd5b1
Add support to control the LDOs found on PM8010 PMICs. PM8010 is
a pin-compatible update of PM8008.
Change-Id: Ia15481c9610bdf1b8ce305381decbf28c9f65716
Signed-off-by: David Collins <collinsd@codeaurora.org>
Change the qcom_pm8008-regulator "regulator-name" device tree
property parsing procedure from an exact match to a substring
match. This allows multiple PM8008 chips to be used on a given
board which have unique names specified for their respective
regulators.
Change-Id: I519107431148cdf1882d8e50056f2d2e20ce018f
Signed-off-by: David Collins <collinsd@codeaurora.org>
When someone calls blk_get_request() and blk_put_request()
without invoking blk_execute_rq() in between, nr_pending
will be unbalanced. Fix this by adding a flag, namely the
RQF_PM_ADDED, to track the usage of nr_pending, so that
blk_pm_put_request() won't touch nr_pending if the flag is
not set. Extra care should be given to blk_pm_requeue_request(),
because blk-flush.c inserts flush requests into queue without
calling blk_pm_add_request(), if the flush requests get requeued
by LLD, blk_pm_requeue_request() should anyways decrease
nr_pending in this situation to keep it balanced.
Change-Id: I7baa2049ac532e4fd22a0ce358133ba88266a314
Signed-off-by: Ziqi Chen <ziqichen@codeaurora.org>
Signed-off-by: Can Guo <cang@codeaurora.org>
Currently MTP driver is handling OS descriptors which
causes CTS test failures(android.adb.cts.AdbHostTest) if
MTP is in the default composition.
Fix this by skipping the handling of OS descriptors in
MTP driver and let composite driver take care of it for
the whole configuration.
Change-Id: I77902108c3a550997dfd56b9b3127900c724f066
Signed-off-by: Pratham Pratap <prathampratap@codeaurora.org>
There is an existing device-tree property "qcom,hvdcp2-max-icl-ua" to
specify the ICL when QC2 charger adapter working at high voltage to
avoid VBUS voltage collapse. Normally QC2 adapters have different
current rating at different voltage level, hence keep the existing
property to specify the ICL setting at 9V level and add a new
property "qcom,hvdcp2-12v-max-icl-ua" to specify the ICL setting at
12V level.
Change-Id: I0811932de997b56a1d8d95bd5cbf22a194ffe035
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Currently driver is checking for VBUS state after accessing register
in msm_otg_suspend() routine. In case of CDP, there will be race between
msm_otg_suspend() and driving DP pulse. This could cause accessing
register in msm_otg_suspend() while clocks are off as part of sequence
to drive pulse on D+ line and later it is checking for VBUS state high
to abort suspend sequence. Hence fix it by checking for VBUS state
before accessing registers in msm_otg_suspend().
Change-Id: I95ad5339b21647e3971908d15f2eabe0c6311800
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Currently driver is checking only charger type from internal variable
in msm_otg_suspend(), which is valid for PHY based charger detection.
If PMIC charger does charger detection, that charger type will not be
updated and result in allowing low power mode sequence even VBUS is
active. Hence fix it by checking psy_type as well to avoid allowing
low power mode sequence while VBUS is active.
Change-Id: I8cb47912867b15ebdc30bc15b58ff99026a1e180
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Currently driver is calling API to apply pulse from vbus notifier, but
it might lead to race condition during bootup and result in unclocked
access. Hence avoid applying DP pulse during bootup from vbus notifier
callback. Also enable LDOs and clocks only if usb is in lpm, else apply
DP pulse without enabling LDOs and clocks again.
Change-Id: I987d93de5261147481f3856254941091dedba108
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
When attaching to audiopd on ADSP, allocate one
extra byte for the process name so that it is
null terminated when data is copied from file
pointer in the userspace.
Change-Id: I98ac64a4c16f44fa4fd0e09da1648b9d78d65a82
Signed-off-by: prabha <prabha@codeaurora.org>
Remove the gcc_camss_camnoc clocks from debugcc
which are not registered in GCC to avoid the crash
because of parent index in KHAJE.
Change-Id: Ia8db40e55c3f7d96abb47bb810eb4f13c20e65f2
Signed-off-by: Madhuri Medasani <mmedasan@codeaurora.org>
A race condition is seen between DP pan_display commit
path and pm runtime suspend when DP cable is inserted
when device is in suspend. This causes commit failure
and subseqently display won't wake up from suspend.
Avoid runtime suspend/resume of DP lower interface to
resolve this.
Change-Id: Ia1aea19799df718e0713d0cf0ccc3237bb7a31f3
Signed-off-by: Nirmal Abraham <nabrah@codeaurora.org>
Add slatecom_interface header file in gen_headers to make it
accessible from userspace modules who uses Android.bp files
for compilation.
Change-Id: Ie298ec28983c16999d941ee8667e2dd7b5c3db22
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
SMSM interrupts are expected even during APPS suspend path.
Added IRQF_NO_SUSPEND flag to handle interrupts during
suspend path.
Change-Id: I1c16a2be7fd0b3e85eebbee54aa472fb4a04bc6e
Signed-off-by: Vivek Golani <vgolani@codeaurora.org>
This tries to fix priority inversion in the below condition resulting in
long checkpoint delay.
f2fs_get_node_info()
- nat_tree_lock
-> sleep to grab journal_rwsem by contention
checkpoint
- waiting for nat_tree_lock
In order to let checkpoint go, let's release nat_tree_lock, if there's a
journal_rwsem contention.
Change-Id: I72ca6cf52908a08976c200be32a09fb3105e726e
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Git-commit: 2eeb0dce728a7eac3e4dfe355d98af40d61f7a26
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Ignore -106 error when channel opened
again without closing.
CRs-Fixed: 2836671
Change-Id: Ib27179031e6bbdc20511132efd6c4578d1d0a911
Signed-off-by: Satish Kodishala <skodisha@codeaurora.org>
It is possible that byte-cntr release happens after byte-cntr is disabled.
Don't write csr register when byte-cntr is disabled to avoid the register
access issue.
Change-Id: Ic818107e1bcbe31e1a55cdc8c0f6ff89ff70564f
Signed-off-by: Mao Jinlong <jinlmao@codeaurora.org>
Signed-off-by: Yuanfang Zhang <zhangyuanfang@codeaurora.org>
Set the wakeup timeout for qrtr to 500 ms for lito. This change
will help ensure the TUI client thread gets a chance to run before
the system is suspended again.
Change-Id: I8c8831995bf58fc39a3e8c107d0fd761745bbfed
Signed-off-by: Sarannya S <sarannya@codeaurora.org>
The qrtr driver can guarantee that the packet gets queued to the socket
but cannot guarantee the client process will get time to run if auto
sleep is enabled. This config will help mitigate missed packets on
systems where auto sleep is too aggressive.
Use the pm_wakeup_ws_event() api so a hard wakeup can be specified.
This will ensure a resume occurs if the data coming in happens while
the device is going into suspend.
Change-Id: Ic596e06e585b3479a6faa1d0210c016fc9138c6e
Signed-off-by: Chris Lew <clew@codeaurora.org>
Signed-off-by: Arun Prakash <app@codeaurora.org>