Video kernel modules as LKM make the T32 debugging difficult.
So, make video drivers as part of boot image.
Change-Id: I229eba78f883d7656ac1bd64487dccc70bb0d43c
Signed-off-by: Manikanta Sivapala <msivap@codeaurora.org>
Signed-off-by: Deepak Kushwah <dkushwah@codeaurora.org>
On certain cases we have seen usleep_range() return before
the intended minimum time parameter passed to this function.
There is no protection against wakeups and we may return
early. msleep() already has code to handle this cases since
it loops as long as there is still time.
Change-Id: I3cf1e2d7f61f5a6d42d66afb86ae3b3fe141a9e7
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Move the qpnp-power-on driver from the drivers/input directory
into the drivers/input/misc directory. This is the standard
location where other power key drivers are kept.
Also make a small fix to use octal instead of symbolic
permissions for the ship_mode_en module parameter.
Change-Id: I4d80c2ca0f161bd443dbfe0fcef822459c9fe44b
Signed-off-by: David Collins <collinsd@codeaurora.org>
Currently enabling of Qnovo isn't allowed unless a charger with
minimum 1A current limit is detected. This is not required.
Allow enabling of Qnovo regardless of the charger current limit.
Change-Id: I1726423d3bc31725c162f09b907683d6e63ac6b5
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
OSM cpu clocks would require the supply rails on which power and perf
clusters are connected, so add the same.
Change-Id: Ie5e50dff1c3c5b06585d03abb45ff493779f029d
Signed-off-by: Taniya Das <tdas@codeaurora.org>
GPIO7 is used for volume up key on qrd sdm660 device.
Configure it to input and pull-up and add gpio-keys device to
enable the key detection.
CRs-Fixed: 1108198
Change-Id: I9ef323088e478aa2fd35858d256edb041da6f385
Signed-off-by: cyizhao <cyizhao@codeaurora.org>
Add battery profile for qrd sdm660 to make sure FG could load it
and work as expected.
Disable soft hot jeita threshold according to the battery vendor's and
hardware team's suggestion to make sure the battery could sustain at 1C
charging current longer.
CRs-Fixed: 1108198
Change-Id: Ifebeadae1590813ad785d25a399011efb447746d
Signed-off-by: cyizhao <cyizhao@codeaurora.org>
The documentation for schedule_timeout(), schedule_hrtimeout(), and
schedule_hrtimeout_range() all claim that the routines couldn't possibly
return early if the task state was TASK_UNINTERRUPTIBLE. This is simply
not true since wake_up_process() will cause those routines to exit early.
We cannot make schedule_[hr]timeout() loop until the timeout expires if the
task state is uninterruptible because we have users which rely on the
existing and designed behaviour.
Make the documentation match the (correct) implementation.
schedule_hrtimeout() returns -EINTR even when a uninterruptible task was
woken up. This might look strange, but making the return code depend on the
state is too much of an effort as it would affect all the call sites. There
is no value in doing so, but we spell it out clearly in the documentation.
Change-Id: I3e9bf91e7d285abcac134e32b02131b999d79f40
Suggested-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Cc: huangtao@rock-chips.com
Cc: heiko@sntech.de
Cc: broonie@kernel.org
Cc: briannorris@chromium.org
Cc: Andreas Mohr <andi@lisas.de>
Cc: linux-rockchip@lists.infradead.org
Cc: tony.xie@rock-chips.com
Cc: John Stultz <john.stultz@linaro.org>
Cc: linux@roeck-us.net
Cc: tskd08@gmail.com
Link: http://lkml.kernel.org/r/1477065531-30342-2-git-send-email-dianders@chromium.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Git-commit: 4b7e9cf9c84b09adc428e0433cd376b91f9c52a7
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Users of usleep_range() expect that it will _never_ return in less time
than the minimum passed parameter. However, nothing in the code ensures
this, when the sleeping task is woken by wake_up_process() or any other
mechanism which can wake a task from uninterruptible state.
Neither usleep_range() nor schedule_hrtimeout_range*() have any protection
against wakeups. schedule_hrtimeout_range*() is designed this way despite
the fact that the API documentation does not mention it.
msleep() already has code to handle this case since it will loop as long
as there was still time left. usleep_range() has no such loop, add it.
Presumably this problem was not detected before because usleep_range() is
only used in a few places and the function is mostly used in contexts which
are not exposed to wakeups of any form.
An effort was made to look for users relying on the old behavior by
looking for usleep_range() in the same file as wake_up_process().
No problems were found by this search, though it is conceivable that
someone could have put the sleep and wakeup in two different files.
An effort was made to ask several upstream maintainers if they were aware
of people relying on wake_up_process() to wake up usleep_range(). No
maintainers were aware of that but they were aware of many people relying
on usleep_range() never returning before the minimum.
Change-Id: Ia403f0dc9cac711c8a4b6fcc4cf0094ad1358ed7
Reported-by: Tao Huang <huangtao@rock-chips.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Cc: heiko@sntech.de
Cc: broonie@kernel.org
Cc: briannorris@chromium.org
Cc: Andreas Mohr <andi@lisas.de>
Cc: linux-rockchip@lists.infradead.org
Cc: tony.xie@rock-chips.com
Cc: John Stultz <john.stultz@linaro.org>
Cc: djkurtz@chromium.org
Cc: linux@roeck-us.net
Cc: tskd08@gmail.com
Link: http://lkml.kernel.org/r/1477065531-30342-1-git-send-email-dianders@chromium.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Git-commit: 6c5e9059692567740a4ee51530dffe51a4b9584d
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Linus noticed that lock_timer_base() lacks a READ_ONCE() for accessing the
timer flags. As a consequence the compiler is allowed to reload the flags
between the initial check for TIMER_MIGRATION and the following timer base
computation and the spin lock of the base.
While this has not been observed (yet), we need to make sure that it never
happens.
Change-Id: I577327e02ab77b6de951ac2aa936cb5d5a4f477a
Fixes: 0eeda71bc3 ("timer: Replace timer base by a cpu index")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1610241711220.4983@nanos
Cc: stable@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Git-commit: b831275a3553c32091222ac619cfddd73a5553fb
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[runminw@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Keep gcc_bimc_gfx_clk always on to prevent a stall during BIMC
redirection handshake that occurs as part of a transition between
different CCI power modes. The stall causes momentary bandwidth drops
for the display ports and creates display buffer underflows.
Change-Id: Ie7de487fbe16c7e6b1234a96c1208d54daa5a9bb
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Add a level at the lower end of the memlat table for the Silver
cluster so that the memlat driver votes for at least 200MHz
when the CPU's effective frequency is at most 300MHz for latency
bound workloads.
Change-Id: I2695d2d115d925ac8b274d93e59b2be6578f3001
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
Free all the SKP ION buffers that were locked for SPSS app swapping,
when remote subsystem reset.
Change-Id: I5230152cc7c3e721b1ebb01b663b9fd14bd2d6c9
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
This patch enables allocation of 5MB for new diag client
of memshare.
CRs-Fixed: 1107794
Change-Id: Ibfbd9c2fc13860b647c1411e6c60f4a543683993
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
The UB size has been updated to 64KB for
SDM660.
Change-Id: I6493574b17f7ad458476f6e25a8aef19c0befdae
Signed-off-by: Meera Gande <mgande@codeaurora.org>
Rename clock handles as per de-initialization sequence,
which is required to avoid the dangling pointers.
Change-Id: I9e0715e2a47f318acc414605ce8e624c432d6665
Signed-off-by: AnilKumar Chimata <anilc@codeaurora.org>
If cluster deepest low power mode is disabled in idle path, the
residencies are recalculated and the max_residency for the shallower
mode becomes ~0 even if deepest mode is not disabled in suspend path.
Because of this while the cluster mode is selected during suspend,
it selects shallower mode instead of deepest mode available.
During suspend ignore the residency to select the cluster level
low power mode.
Change-Id: I812e33ad45e563b88c478d5d70296d5bd488438f
Signed-off-by: Srinivas Rao L <lsrao@codeaurora.org>
pl psy access is guarded by pl_disable_votable, disabled in PMI
probe. Accessing parallel psy before it is available will cause
crash.
Fix this by allowing access to parallel psy only after all the
initial votes have been cast on pl_disable_votable in probe.
CRs-Fixed: 1101600
Change-Id: Idd289229f45c31cf8fd234339b6738bd241283bd
Signed-off-by: Harry Yang <harryy@codeaurora.org>
While switching to HS mode, high speed mode timing should be selected
in the device before changing the clock frequency in the host.
But present driver first updates the frequency in host and then selects
HS mode in device while selecting HS400 mode. This is a spec violation.
Updated the sequence to comply with spec.
Change-Id: I5b2c1f724d820daf9c0bca8651cf85bd0ff67655
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Currently the legacy cable bit is always asserted during off mode
PON via USBIN. This causes PD to be disallowed even when a
non-legacy cable is attached in off mode.
Fix this by always allowing PD upon USBIN attach PON, but keep the
normal legacy detection flow for all subsequent insertions.
CRs-Fixed: 1107607
Change-Id: I20acd75643955b6d2144389159a0dad41f01a532
Signed-off-by: Harry Yang <harryy@codeaurora.org>
Calling ioremap() in clk_osm_panic_callback() can result in
BUG() when the kernel is panic-ing. It is not safe to use
ioremap() in atomic context. Map the debug registers at probe
time instead.
Change-Id: I4009ea6e10df2dc8649cf0b0c1a5b6398d3c689e
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Calling ioremap() in clk_osm_panic_callback() can result in
BUG() when the kernel is panic-ing. It is not safe to use
ioremap() in atomic context. Map the debug registers at probe
time instead.
CRs-Fixed: 1086427
Change-Id: Ie14be6ee9ffbcb09009d5d05235e20f6ac215fa0
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Forcing a certain value on the result of the votable is a very
desireable feature to speed up debugging.
For this create a debugfs dir per votable and implement following debugfs
files
- status : This is the same as the earlier one which dumps clients and
their values and results.
- force_val : The value of the vote to force. This will be an integer
value for min/max votables and should be a boolean value
for set_any votables.
- force_active: This flag activates or deactives the force mode.
Note that writing to the force active flags always invokes the callback
when present even if the same value is being set. When activated the
callback is called with the result set to force_val and the client set to
"DEBUG_FORCE_CLIENT".
While activated, other clients are allowed to vote, their votes are
noted and the effective values tracked internally are updated. Only the
callback is skipped. This internal tracking of the effective values help
in switching back quickly to the voted results once the force mode is
deactivated IOW When deactivated the callback is called with the result
and client set to the effective ones which could have been the same as
the ones prior to force activation or could have been updated by
the calls to vote() while force was activte.
Also, note that while force is activated, the calls to
get_effective_result and get_effective_client return the force_val
and "FORCE_DEBUG_CLIENT" instead of the internal effective values. This
provides consistency with callback values.
Change-Id: Id9eb5b27675e3ed53176175c13e0d654783bcf08
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>