To isolate CPUs (isolate from hrtimers) from sysfs using cpusets, we need some
support from the hrtimer core. i.e. A routine hrtimer_quiesce_cpu() which would
migrate away all the unpinned hrtimers, but shouldn't touch the pinned ones.
This patch creates this routine.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[forward port to 3.18]
Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org>
[ohaugan@codeaurora.org: Port to 4.4]
Git-commit: d4d50a0ddc35e58ee95137ba4d14e74fea8b682f
Git-repo: git://git.linaro.org/people/mike.holmes/santosh.shukla/lng-isol.git
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
[rameezmustafa@codeaurora.org: Port to msm-4.9]
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Change-Id: Icf93622bdeed9c6c28eb1aca1637bc5b9522a533
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
'Pinned' information would be required in migrate_hrtimers() now, as we can
migrate non-pinned timers away without a hotplug (i.e. with cpuset.quiesce). And
so we may need to identify pinned timers now, as we can't migrate them.
This patch reuses the timer->state variable for setting this flag as there were
enough number of free bits available in this variable. And there is no point
increasing size of this struct by adding another field.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[forward port to 3.18]
Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org>
[ohaugan@codeaurora.org: Port to 4.4]
Git-commit: 62feaf1ed0b64c04868d143d8bdb92d60dc3189b
Git-repo: git://git.linaro.org/people/mike.holmes/santosh.shukla/lng-isol.git
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
[markivx: Port to 4.14, fix merge conflicts due to lack of timer stats code]
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Change-Id: Id2cdd74903598e31fab6999c4cbab9c2fd17fe23
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
To isolate CPUs (isolate from timers) from sysfs using cpusets, we need some
support from the timer core. i.e. A routine timer_quiesce_cpu() which would
migrates away all the unpinned timers, but shouldn't touch the pinned ones.
This patch creates this routine.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[forward port to 3.18]
Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org>
[ohaugan@codeaurora.org: Port to 4.4. Fixes for compilation error]
Git-commit: 313910b70ea0c73f8789d9189c11e1f339080646
Git-repo: git://git.linaro.org/people/mike.holmes/santosh.shukla/lng-isol.git
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
[rameezmustafa@codeaurora.org: Port to msm-4.9 and rebase to change
patch dependency order.]
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
[markivx: Port to 4.14, fix merge conflicts]
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Change-Id: I4795aeffd1be41830ac295a1e2e8f36fb05e98b7
[satyap@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This snapshot is taken from msm-4.9 as of commit 57637bbc4fb6537
(Revert "ANDROID: sched/tune: Initialize raw_spin_lock
in boosted_groups").
Change-Id: Ie624026a428c13a6a1f9a1cee259bf5cdd59860a
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
[satyap@codeaurora.org: resolve merge conflicts & uncomment
code for compilation]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This reverts commit c5616f2f874faa20b59b116177b99bf3948586df.
If we re-init the per-cpu boostgroup spinlock every time that
we add a new boosted cgroup, we can easily wipe out (reinit)
a spinlock struct while in a critical section. We should only
be setting up the per-cpu boostgroup data, and the spin_lock
initialization need only happen once - which we're already
doing in a postcore_initcall.
For example:
-------- CPU 0 -------- | -------- CPU1 --------
cgroupX boost group added |
schedtune_enqueue_task |
acquires(bg->lock) | cgroupY boost group added
| for_each_cpu()
| raw_spin_lock_init(bg->lock)
releases(bg->lock) |
BUG (already unlocked) |
|
This results in the following BUG from the debug spinlock code:
BUG: spinlock already unlocked on CPU#5, rcuop/6/68
Change-Id: I04f7c36cea511cd27fcaa2c762de7abbd96fcbbd
CRs-fixed: 2113062
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
These trace events allows to track various functions
for WALT enabled platforms.
Change-Id: I446bd762584fd32b4a24515152e2a2755abed74d
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
[satyap@codeaurora.org: updated commit text to reflect the change]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This snapshot is taken from msm-4.9 as of commit 935c3e96d14c14d
(Revert "sched/fair: Limit sync wakeup bias to waker cpu").
Change-Id: Ib66005e34e57707882e3139265c9866df306e741
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
One SoC can have multiple CPU speedbins which cannot be represented
with current energy model due to fixed capacity per CPU frequency
steps.
Provide CPU's all possible frequency steps instead of capacities along
with corresponding energy costs to be able to support different
speedbins.
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
[markivx: Resolved merge-conflicts]
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Change-Id: Ib865fd5ca7347946cfa532ca464dba4f9c51ced5
[satyap@codeaurora.org:
1. resolve trivial merge conflicts
2. port update_cpu_capacity function from msm-4.9 commit: 5e900d488428a6a
(ANDROID: arm64: Cpu invariant scheduler load-tracking and capacity support)
]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This snapshot is taken from msm-4.9 as of commit 12a64233c6b30a7
("sched: Fix for 32bit '__udivdi3' build error").
Change-Id: I2bac563ddd0985f0bc85a8d7fc6f3c9694c84264
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
[satyap@codeaurora.org:
1. Resolve merge conflicts
2. Fix compilation issues for ARCH=um
3. Comment out parts of code for compilation]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This snapshot is taken from msm-4.9 as of commit 935c3e96d14c14d
(Revert "sched/fair: Limit sync wakeup bias to waker cpu").
Change-Id: I53b79289b37b7a352ae2a04b03cdadb3f2e564c6
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
[satyap@codeaurora.org:
1. Resolve merge conflicts
2. Fix indentation issues
3. Fix compilation issues for ARCH=um & SDM855
4. Comment out parts of code for compilation
5. Remove stubs introduced by commit: d8e3774e124001f
(cpufreq: Various changes to allow sugov to compile)]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
The SDAM provides scratch register space for the
PMIC clients which can be accessed over the NVMEM
framework. The memory can be used by software to
store information or communicate to/from the PBUS.
Change-Id: Ieb1b8fa296ce7250060d3c036f4ed4ae153b0359
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
IPA GSI register channel state not fully sync with gsi
channel context state during USB disconnect/suspend scenarios.
this change updates the gsi channel context state correctly.
Change-Id: If9cbae6ac64a6a18dc417dd458d842e7044eba72
Acked-by: Ashok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
Pass the correct request and response buffer pointer to the
qmi functions.
Change-Id: I5910d26471ee946118792bdb96e1e0d8af768106
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Update the rumi clock freq for the new rumi release.
Change-Id: I1512879337035124590b14f0014c763c05e01a87
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
dma buffer lazy unmap requires the client to set the dma_map_attrs with
DMA_ATTR_DELAYED_UNMAP value when calling dma_buf_map_attachment and
dma_buf_unmap_attachment. Override gem_prime_import method with
msm_gem_prime_import to support the lazy unmap attribute setting.
Change-Id: Iff471cd5e34c5261bc32e833af622a3839bf6f0e
Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
Enable the USB PD PHY and policy engine drivers. Also enable
the dual role USB class driver which is a required dependency.
Change-Id: I5cf465183fca5bb77197f5ea79462dd1a2b97b9b
Signed-off-by: Jack Pham <jackp@codeaurora.org>
The qpnp-pdphy driver provides support for the PD PHY peripheral
found on Qualcomm Technologies, Inc. PMICs. This along with
the policy engine provides a protocol stack that supports
USB Power Delivery communication over a Type-C port.
This snapshot is taken as of msm-4.9 commit 11273b09e247
("usb: phy: msm: Remove phy-msm-usb driver"). This includes one
minor fixup to remove use of the extcon mutually_exclusive
field which is no longer visible outside of drivers/extcon.
Change-Id: I0a34076dee8476494dfccfe6fc807247caab8927
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Clock needs to be on when accessing TPDM register. Clock is
enabled with TPDM enablement process. Check for TPDM enablement
status before accessing register, return error if TPDM is not
enabled.
Change-Id: I3010fc8c8dc2a1c58d2b5276ab832b2e3b063f08
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Use a spinlock to protect runtime resource in substream
against race conditions which may lead to use-after-free.
CRs-fixed: 2112713
Change-Id: I37dee68cad5eae05b21cfade3dabc0c2b79be6b8
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
Add auto query command response support for
diag over stm.
Change-Id: I3cb235f95ec9152962726a0ba7894fd6133bf945
Signed-off-by: Sreelakshmi Gownipalli <sgownipa@codeaurora.org>
msm_dma_map_sg_lazy is deprecated. New method of enabling lazy
mapping/unmapping will require to set the dma buf attachment attribute
with DMA_ATTR_DELAYED_UNMAP when calling dma_buf_map_attachment and
dma_buf_unmap_attachment.
Change-Id: I0efd554c70d6b790d80e11fcf69d11735cd3cc24
Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
SDM855 supports three clusters, update cpu map to reflect the same.
Change-Id: Id8f98d3ddf7f7ec1a0fcdc19052436d61d8c1941
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>