show_resume_irq is used to debug interrupts that cause wakeup.
Support it for spmi arbiter's interrupt controller.
Change-Id: I52d51c09d7ff316248542c84a1cd65a28e2283da
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Add SDE rotator register read/write access in the debugfs for debugging
support and verification purpose.
CRs-Fixed: 1083137
Change-Id: Ib6c18253f5d8be0f6eba4cfb741c4492b33a4c3f
Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
A306a GPU have the two different frequency plans. The frequency
plan needs to be loaded dynamically based on the speed bin
information. Add support for A306a gpu to read the speed bin
information and choose frequency plan dynamically.
Change-Id: Iba53d4381d61f23ce1195a147493b0d292cd3723
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
Add device tree support for msmcobalt interposer platform
using msmfalcon QRD.
CRs-Fixed: 1086541
Change-Id: If17aa7a60832b71a94d75718da07158e1474ef31
Signed-off-by: Zhenhua Huang <zhenhuah@codeaurora.org>
Fix fake button press when headset is inserted by properly
disabling micbias after the detection is completed.
CRs-Fixed: 1086418
Change-Id: I241a49dd36746c083b410a58c8c899ee0e9390ad
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
There is a race between watchdog being enabled by hotplug and core
isolation disabling the watchdog. When a CPU is hotplugged in and
the hotplug lock has been released the watchdog thread might not
have run yet to enable the watchdog. We have to wait for the
watchdog to be enabled before proceeding.
Change-Id: I88f73603b6d389a46f8e819d9b490091d5ba4fe9
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
To move tasks off a cpu when offlining the rq needs to be offlined to
un-throttle tasks. However, tasks might still run on the CPU even after
the CPU has been isolated (per-CPU threads). Thus we should leave the rq
in online state after tasks have been moved.
Change-Id: I61486e8648af0dbb82595fe699e1bc158e837362
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
There is a race condition between checking for whether an active load
balance request has been set and clearing the request. A cpu might have
an active load balance request set and queued but not executed yet.
Before the load balance request is executed the request flag might be
cleared by cpu isolation. Then subsequently the load balancer or tick
might try to do another active load balance. This can cause the same
active load balance work to be queued twice causing report of list
corruption.
Fix this by moving the clearing of the request to the stopper thread and
ensuring that load balance will not try to queue a request on an
already isolated cpu.
Change-Id: I5c900d2ee161fa692d66e3e66012398869715662
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
The current value is leading to spurious fault interrupts
from the GPU. Increase the threshold 4 times so that hardware
fault detection won't be triggered as quickly.
CRs-Fixed: 1073836
Change-Id: Ie780cec4de818c94a407461580f9d80de7e4ec84
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
The scheduler allocates memory for the task load structures during
fork. It then relies to sched_exit() to be called to free that memory.
However, if the fork itself fails at any point after the allocation,
the memory is left unclaimed forever. Fix this memory leak by freeing
the allocated memory under error conditions.
Change-Id: I14a8290c9fcc4174ec80560e9f9d7bcdb119761f
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Task load structure allocations can consume a lot of memory as the
number of tasks begin to increase. Also they might exhaust the atomic
memory pool pretty quickly if a workload starts spawning lots of
threads in a short amount of time thus increasing the possibility of
failed allocations. Move the call to init_new_task_load() outside
atomic context and start using GFP_KERNEL for allocations. There is
no need for this allocation to be in atomic context.
Change-Id: I357772e10bf8958804d9cd0c78eda27139054b21
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Recent changes to scheduler guided frequency have started reporting
the maximum of the cpu load and the load of the top task on a CPU
to the governor. Use the same information to determine whether a
notification is necessary or not.
Change-Id: I1928c6cd0509952443a912ef54e0d72d5f75955d
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Capping load when reporting to the governor was important prior to new
scheduler guided frequency changes as intra-cluster migrations would
sometimes lead to CPU loads well in excess of 100%. With the new top
task approach however, load greater than 100% is no longer possible
except for the same conditions that were previously exempted (i.e.
inter-cluster migrations and frequency aggregation).
Change-Id: I3e4f5e39ec9ae7eeaba9a567efd245a7aec1b7ad
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Currently, fuel gauge assumes that the battery charging current
is provided only by the main charger. When ESR pulse is needed,
it notifies only the main charger to lower its FCC. However, with
parallel charger also supplying the FCC to the battery, the main
charger can end up increasing its FCC instead of lowering it.
This is because of the fact that FCC of main charger is lower
than the total battery charging current because of the current
distribution to the parallel charger and the code sent by FG
allows it to increase its FCC.
Fix this by controlling ESR FCC current code to 300mA in software
when the device is charging and the parallel charger is enabled.
Switch back to hardware control when the device is not charging
or parallel charger is disabled.
Change-Id: I0e6e600f72f9ef8864f9b775df88f674de9cb52c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently charge inhibit feature is enabled by default and the
charge inhibit threshold is not configurable. Add a device tree
parameter "qcom,chg-inhibit-threshold-mv" through which the
charge inhibit threshold can be configured. If the property is
not specified, then charge inhibit feature is kept disabled.
Change-Id: I464d720abc138e8cd9ba8d7f1704cd91f4408bee
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>