The logic to walk through the memory blocks in the movable
zone is not correct. When memory at either extreme of the movable
zone is offlined, the start of the movable zone is adjusted such that
it no longer accounts for the block that was offlined--if the block
is at the beginning of the movable zone--or the span of the movable
zone is adjusted such that it no longer covers the block that was
offlined--if the block is at the end of the movable zone. Similarly,
when the entire zone is offlined, the zone's start pfn and span are
set to 0. So, when looking for a block to online, we end up ignoring
some of the blocks at the extremes of the movable zone, or the entire
zone.
Thus, walk through all of the present memory blocks in the system when
deciding to online a block.
Change-Id: I1e1def049f672a1710c5916dfd7de70d3ef68e71
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
There is a possible scenario where the system can deadlock
itself when it is low on memory, and attempts to online
a memory block. Consider the following scenario:
-A thread in userspace onlines a memory block through sysfs-
state_store() /* Acquires the device_hotplug_lock */
device_online()
memory_subsys_online()
memory_block_change_state()
memory_block_action()
online_pages()
memory_notify(MEM_GOING_ONLINE, ...)
online_page_ext()
alloc_page_ext()
__alloc_pages_nodemask(GFP_KERNEL, ...)
/* System enters into a critically low memory state */
out_of_memory()
try_online_one_block() /* Invokes lock_device_hotplug() and deadlocks */
Fix deadlock by introducing and using trylock_device_hotplug()
instead of lock_device_hotplug().
Change-Id: I52bc8075ae713c50e3c381216f3616ce8366cf31
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Headset is not detected after system goes into suspend
as sufficient delay is not given after pm_stay_awake
for system to wakeup. Implementing freezable workqeueue
after pm_stay_awake resolves the issue.
Change-Id: Ia104a1577004a4242470f3b4150be23698fc92b1
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Update frequency tables, VDD data, PLL configuration and
halt check settings for all clock controllers as per the
latest frequency plan.
Change-Id: I8f698fb7b1d10b980916d7387c3cfb800f8b2d19
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>
Update the freq tbl for camss_tfe_clk_src, csi3phytimer
clks, ope_clk src, gpll8 lval and usb BCRs for HOLI.
Change-Id: I7e34a7027e1fd0a84ec26cc5815b0b247e1da3e3
Signed-off-by: Saurabh Sahu <sausah@codeaurora.org>
Update the mpm pin to tsense interrupt mapping so that
tsense interrupts can wakeup the APSS from deep sleep.
Change-Id: I41a69571a6621ec41c6185e1052be2c6e95ba1eb
Signed-off-by: Raghavendra Kakarla <rkakarla@codeaurora.org>
Add clock id for camss_mclk4_clk, csi3phytimer_clk
csi3phytimer_clk_src and usb bcrs for HOLI.
Change-Id: I0acab96149aedee355e036cf44d104b73a348ff9
Signed-off-by: Saurabh Sahu <sausah@codeaurora.org>
Enable system PM violators driver for QGKI on Lahaina.
Change-Id: I6dcb7be5813866d1cb0e080865d86f6aede734dc
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
A660 GPU variant has GMU, use GMU specific gpudev for this GPU.
Change-Id: I0f34c88b1c57738fc7a8557c0b3e0cddcea09163
Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>
This change propagates the missing fixes in synatics tcm touch
driver from msm-4.19 to msm-5.4.
Change-Id: I0b2ad56081d161957c8e0cb7ef80103525365490
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
Enable touch driver in touch driver.
Support drm_panel callback to be notified when screen on/off.
Add new property "synaptics,firmware-name" when different modules
with same touch IC.
Change-Id: I58159ce531913108e702227c5474fdc2f539d2d3
Signed-off-by: Fei Mao <feim1@codeaurora.org>
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>