OSDN Git Service

sagit-ice-cold/kernel_xiaomi_msm8998.git
7 years agodrivers: soc: qcom: Remove prints from the idle path
Mahesh Sivasubramanian [Wed, 8 Mar 2017 22:38:23 +0000 (15:38 -0700)]
drivers: soc: qcom: Remove prints from the idle path

The system runs into a "undefined instruction" error when first core waking
out of power collapse tries to wakeup a core by writing to a GIC register.
When waking out of reset, the GIC SRE bit is reset, and any accesses to the
GIC ICC registers would result in a "undefined instructions". When a first
waking out of reset writes to a console, the console task is now marked as
unnable by the scheduler. If the console task is running on a different
CPU, this would trigger a IRQ_WORK IPI to the target CPU. Since the core is
waking out of reset, its SRE bit is cleared and any access to the GIC ICC
registers results in an undefined instruction abort.

Fix by removing logging from the idle path.

Change-Id: I476d4a4d082bb115128e1f54c931558e79fec567
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
7 years agoMerge "defconfig: msm: Enable the config SYSTEM_TRUSTED_KEYS"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:56 +0000 (15:48 -0800)]
Merge "defconfig: msm: Enable the config SYSTEM_TRUSTED_KEYS"

7 years agoMerge "diag: Register diag glink channels for only WDSP"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:55 +0000 (15:48 -0800)]
Merge "diag: Register diag glink channels for only WDSP"

7 years agoMerge "diag: Add mdlog session to apps pkt response path"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:55 +0000 (15:48 -0800)]
Merge "diag: Add mdlog session to apps pkt response path"

7 years agoMerge "ARM: dts: msm: Modify DMIC settings for sdm660 skus"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:54 +0000 (15:48 -0800)]
Merge "ARM: dts: msm: Modify DMIC settings for sdm660 skus"

7 years agoMerge "mmc: cmdq_hci: Enable legacy interrupts immediately after halt"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:53 +0000 (15:48 -0800)]
Merge "mmc: cmdq_hci: Enable legacy interrupts immediately after halt"

7 years agoMerge "ARM: dts: msm: Add VOL_UP node for SDM630"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:52 +0000 (15:48 -0800)]
Merge "ARM: dts: msm: Add VOL_UP node for SDM630"

7 years agoMerge "ARM: dts: msm: Add touch device node for QVR8998"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:51 +0000 (15:48 -0800)]
Merge "ARM: dts: msm: Add touch device node for QVR8998"

7 years agoMerge "ARM: dts: msm: add analog USB audio support for SDM660"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:50 +0000 (15:48 -0800)]
Merge "ARM: dts: msm: add analog USB audio support for SDM660"

7 years agoMerge "mmc: cmdq_hci: CQ Register changes for sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:49 +0000 (15:48 -0800)]
Merge "mmc: cmdq_hci: CQ Register changes for sdm660"

7 years agoMerge "ARM: dts: msm: Enable audio over DP for sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:48 +0000 (15:48 -0800)]
Merge "ARM: dts: msm: Enable audio over DP for sdm660"

7 years agoMerge "ASoC: msm: Add support for audio over Display Port for sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:48 +0000 (15:48 -0800)]
Merge "ASoC: msm: Add support for audio over Display Port for sdm660"

7 years agoMerge "core_ctl: fix bug in assignment of not_preferred tunable values"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:47 +0000 (15:48 -0800)]
Merge "core_ctl: fix bug in assignment of not_preferred tunable values"

7 years agoMerge "ASoC: msm: Changes for adding format widget"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:45 +0000 (15:48 -0800)]
Merge "ASoC: msm: Changes for adding format widget"

7 years agoMerge "wil6210: added sysfs file for FTM calibration"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:45 +0000 (15:48 -0800)]
Merge "wil6210: added sysfs file for FTM calibration"

7 years agoMerge "Revert "ASoC: wsa881x: Add cache-always mode for sdm660""
Linux Build Service Account [Tue, 21 Feb 2017 23:48:44 +0000 (15:48 -0800)]
Merge "Revert "ASoC: wsa881x: Add cache-always mode for sdm660""

7 years agoMerge "Revert "ARM: dts: msm: Enable cache-always for WSA in sdm660 internal codec""
Linux Build Service Account [Tue, 21 Feb 2017 23:48:43 +0000 (15:48 -0800)]
Merge "Revert "ARM: dts: msm: Enable cache-always for WSA in sdm660 internal codec""

7 years agoMerge "ASoC: msm_sdw: Fix wsa881x random speaker mute"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:43 +0000 (15:48 -0800)]
Merge "ASoC: msm_sdw: Fix wsa881x random speaker mute"

7 years agoMerge "mm, memory hotplug: small cleanup in online_pages()"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:42 +0000 (15:48 -0800)]
Merge "mm, memory hotplug: small cleanup in online_pages()"

7 years agoMerge "mm, compaction: introduce kcompactd"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:41 +0000 (15:48 -0800)]
Merge "mm, compaction: introduce kcompactd"

7 years agoMerge "clk: msm: Fix half-divider calculation for slave clks"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:41 +0000 (15:48 -0800)]
Merge "clk: msm: Fix half-divider calculation for slave clks"

7 years agoMerge "msm: pcie: add bounds check for debugfs register write"
Linux Build Service Account [Tue, 21 Feb 2017 23:48:40 +0000 (15:48 -0800)]
Merge "msm: pcie: add bounds check for debugfs register write"

7 years agoMerge "ASoC: msm: enable DAP set license logic on sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:50 +0000 (05:33 -0800)]
Merge "ASoC: msm: enable DAP set license logic on sdm660"

7 years agoMerge "ARM: dts: msm: correct headset detection for msm8998 HDK"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:49 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: correct headset detection for msm8998 HDK"

7 years agoMerge "ASoC: msm: remove obsolete dolby driver"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:48 +0000 (05:33 -0800)]
Merge "ASoC: msm: remove obsolete dolby driver"

7 years agoMerge "ASoC: qdsp6v2: send afe calibration in acdb id mismatch cases"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:48 +0000 (05:33 -0800)]
Merge "ASoC: qdsp6v2: send afe calibration in acdb id mismatch cases"

7 years agoMerge "ASoC: msm: qdsp6v2: Add support for fractional sampling rates"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:47 +0000 (05:33 -0800)]
Merge "ASoC: msm: qdsp6v2: Add support for fractional sampling rates"

7 years agoMerge "ARM: dts: msm: Fix compile warning in sdm660 audio node"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:46 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Fix compile warning in sdm660 audio node"

7 years agoMerge "clk: qcom: Remove gcc_hmss_ahb_clk for sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:45 +0000 (05:33 -0800)]
Merge "clk: qcom: Remove gcc_hmss_ahb_clk for sdm660"

7 years agoMerge "mm, kswapd: remove bogus check of balance_classzone_idx"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:44 +0000 (05:33 -0800)]
Merge "mm, kswapd: remove bogus check of balance_classzone_idx"

7 years agoMerge "defconfig: msmcortex: Add ST TP configuration for QVR8998"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:44 +0000 (05:33 -0800)]
Merge "defconfig: msmcortex: Add ST TP configuration for QVR8998"

7 years agoMerge "drivers:soc: Avoid use of uninitialized variable"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:43 +0000 (05:33 -0800)]
Merge "drivers:soc: Avoid use of uninitialized variable"

7 years agoMerge "msm: mdss: Correct mixer enumeration for sdm630"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:42 +0000 (05:33 -0800)]
Merge "msm: mdss: Correct mixer enumeration for sdm630"

7 years agoMerge "clk: qcom: Remove mmssnoc cpu active vote clock for SDM660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:41 +0000 (05:33 -0800)]
Merge "clk: qcom: Remove mmssnoc cpu active vote clock for SDM660"

7 years agoMerge "ARM: dts: msm: Update VFE SVS clock corner"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:41 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Update VFE SVS clock corner"

7 years agoMerge "wil6210: Move dma mask setting after platform initialization"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:40 +0000 (05:33 -0800)]
Merge "wil6210: Move dma mask setting after platform initialization"

7 years agoMerge "MMC : host: clear interrupt after halt in case of error"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:39 +0000 (05:33 -0800)]
Merge "MMC : host: clear interrupt after halt in case of error"

7 years agoMerge "ARM: dts: msm: Correct vote on LDO11 for VDDIO on sdm630"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:38 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Correct vote on LDO11 for VDDIO on sdm630"

7 years agoMerge "clk: qcom: Move gcc_usb3_phy_pipe_clk to branch clock"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:37 +0000 (05:33 -0800)]
Merge "clk: qcom: Move gcc_usb3_phy_pipe_clk to branch clock"

7 years agoMerge "Bluetooth: Enhance logging in btfm slim & audio codec drivers"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:37 +0000 (05:33 -0800)]
Merge "Bluetooth: Enhance logging in btfm slim & audio codec drivers"

7 years agoMerge "ARM: dts: msm: Update bus bandwidth for msm8998"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:36 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Update bus bandwidth for msm8998"

7 years agoMerge "ARM: dts: msm: Enable SSC based sensors for QRD SDM660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:35 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Enable SSC based sensors for QRD SDM660"

7 years agoMerge "ARM: dts: msm: Update icnss device node for sdm630"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:35 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Update icnss device node for sdm630"

7 years agoMerge "clk: qcom: Remove few multimedia clocks for sdm630"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:34 +0000 (05:33 -0800)]
Merge "clk: qcom: Remove few multimedia clocks for sdm630"

7 years agoMerge "msm: kgsl: Log mmap_base value on _get_svm_area failure"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:33 +0000 (05:33 -0800)]
Merge "msm: kgsl: Log mmap_base value on _get_svm_area failure"

7 years agoMerge "soc: qcom: rpm_rail_stats: Add support for lpcx and lpmx rail stats"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:32 +0000 (05:33 -0800)]
Merge "soc: qcom: rpm_rail_stats: Add support for lpcx and lpmx rail stats"

7 years agoMerge "ARM: dts: msm: Enable OSM CPU clocks for SDM630"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:31 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Enable OSM CPU clocks for SDM630"

7 years agoMerge "ARM: dts: msm: Enable home key for qrd sdm630"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:31 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Enable home key for qrd sdm630"

7 years agoMerge "ARM: dts: msm: disable dynamic fps for nt35597 truly panel on sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:30 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: disable dynamic fps for nt35597 truly panel on sdm660"

7 years agoMerge "ARM: dts: msm: update correct read OT settings for mdss"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:29 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: update correct read OT settings for mdss"

7 years agoMerge "smb138x-charger: use SW based comparison for connector health"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:28 +0000 (05:33 -0800)]
Merge "smb138x-charger: use SW based comparison for connector health"

7 years agoMerge "ARM: dts: msm: add connector temp iio channel for SMB138X"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:28 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: add connector temp iio channel for SMB138X"

7 years agoMerge "mm: vmscan: do not pass reclaimed slab to vmpressure"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:27 +0000 (05:33 -0800)]
Merge "mm: vmscan: do not pass reclaimed slab to vmpressure"

7 years agoMerge "mm: vmpressure: fix sending wrong events on underflow"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:26 +0000 (05:33 -0800)]
Merge "mm: vmpressure: fix sending wrong events on underflow"

7 years agoMerge "USB: qusb: Add support to change TUNEX registers dynamically"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:25 +0000 (05:33 -0800)]
Merge "USB: qusb: Add support to change TUNEX registers dynamically"

7 years agoMerge "phy: qcom-ufs: parse ref-clk details prior to resource request"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:24 +0000 (05:33 -0800)]
Merge "phy: qcom-ufs: parse ref-clk details prior to resource request"

7 years agoMerge "ARM: dts: msm: update enable signal polarity of SMB1351 for SDM660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:23 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: update enable signal polarity of SMB1351 for SDM660"

7 years agoMerge "msm: ipa: changes to suspend/disable for WDI 2"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:23 +0000 (05:33 -0800)]
Merge "msm: ipa: changes to suspend/disable for WDI 2"

7 years agoMerge "net: validate the range we feed to iov_iter_init() in sys_sendto/sys_recvfrom"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:19 +0000 (05:33 -0800)]
Merge "net: validate the range we feed to iov_iter_init() in sys_sendto/sys_recvfrom"

7 years agoMerge "usb: pd: Skip decreasing current when requesting the same PPS"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:18 +0000 (05:33 -0800)]
Merge "usb: pd: Skip decreasing current when requesting the same PPS"

7 years agoMerge "ARM: dts: msm: Update Temperature sensor support for sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:17 +0000 (05:33 -0800)]
Merge "ARM: dts: msm: Update Temperature sensor support for sdm660"

7 years agoMerge "USB: gadget: Replace %pK with %p"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:17 +0000 (05:33 -0800)]
Merge "USB: gadget: Replace %pK with %p"

7 years agoMerge "msm: kgsl: Fix false timeout gpu faults"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:16 +0000 (05:33 -0800)]
Merge "msm: kgsl: Fix false timeout gpu faults"

7 years agoMerge "input: touchscreen: remove msg21xx mstar touch driver"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:15 +0000 (05:33 -0800)]
Merge "input: touchscreen: remove msg21xx mstar touch driver"

7 years agoMerge "mmc: core: Fix deadlock in suspend & rescan path"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:14 +0000 (05:33 -0800)]
Merge "mmc: core: Fix deadlock in suspend & rescan path"

7 years agoMerge "mmc: sdhci-msm: Dont wait infinitely for pwr_irq interrupt"
Linux Build Service Account [Tue, 21 Feb 2017 13:33:14 +0000 (05:33 -0800)]
Merge "mmc: sdhci-msm: Dont wait infinitely for pwr_irq interrupt"

7 years agommc: cmdq_hci: Enable legacy interrupts immediately after halt
Veerabhadrarao Badiganti [Mon, 20 Feb 2017 08:38:29 +0000 (14:08 +0530)]
mmc: cmdq_hci: Enable legacy interrupts immediately after halt

Enable the legacy interrupts immediately after halt interrupt is
handled, from cmdq_irq() itself.

When cmdq halt is initiated, as per existing logic driver waits either
for halt interrupt to fire or for certain period of time.  In case if
cmdq is halted but halt interrupt got delayed than wait-timeout period,
driver disables cmdq interrupts since cmdq is in halt state.
The delayed halt interrupt gets fired only when cmdq is unhalted next
time and cmdq interrupts are enabled. And this delayed interrupt is
treated as an unexpected interrupt.

By enabling legacy interrupts (i.e., disabling cmdq interrupts) from
cmdq_irq(), we can ensure that we don't disable cmdq interrupts until
halt interrupt get fired. So we can avoid above mentioned scenario.

Change-Id: Ic052d41fac789b6390a5d80dfaee91767bdb783f
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
7 years agommc: cmdq_hci: Increase HAC interrupt wait time in halt path
Veerabhadrarao Badiganti [Mon, 20 Feb 2017 08:21:13 +0000 (13:51 +0530)]
mmc: cmdq_hci: Increase HAC interrupt wait time in halt path

When system is heavily loaded, in some cases interrupt servicing
is getting effected and cmdq halt interrupt handler is getting invoked
after 1 sec delay. Since wait time of HAC interrupt in cmdq driver
is 1 sec, the delayed interrupt is being treated as unexpected
interrupt.
For fixing this case, increasing the timeout to 10 seconds.

Change-Id: I55879095aa2b81a10f40963aee02b2068a3305b4
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
7 years agoARM: dts: msm: Add VOL_UP node for SDM630
Ankit Sharma [Tue, 21 Feb 2017 06:34:20 +0000 (12:04 +0530)]
ARM: dts: msm: Add VOL_UP node for SDM630

Add the GPIO and VOL_UP key configuration for SDM630.

CRs-Fixed: 2009507
Change-Id: I63b76194c07c1ce92a0801861cbe349cb2324ef6
Signed-off-by: Ankit Sharma <ansharma@codeaurora.org>
7 years agoRevert "ASoC: wsa881x: Add cache-always mode for sdm660"
Laxminath Kasam [Mon, 20 Feb 2017 17:29:38 +0000 (22:59 +0530)]
Revert "ASoC: wsa881x: Add cache-always mode for sdm660"

This reverts 'commit b3f17f8fe8f3
("ASoC: wsa881x: Add cache-always mode for sdm660")'
as wsa881x speaker mute without cache-always mode is fixed.

CRs-Fixed: 2000566
Change-Id: Ia3c4f2ad5749fd32bb7426ab855c20acc378f563
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
7 years agoRevert "ARM: dts: msm: Enable cache-always for WSA in sdm660 internal codec"
Laxminath Kasam [Mon, 20 Feb 2017 17:28:37 +0000 (22:58 +0530)]
Revert "ARM: dts: msm: Enable cache-always for WSA in sdm660 internal codec"

This reverts 'commit 4dd5dc49ac4f
("ARM: dts: msm: Enable cache-always for WSA in sdm660 internal codec")'
as WSA881x speaker mute without cache-always mode is fixed.

CRs-Fixed: 2000566
Change-Id: Iab2fb5745de5c8356b64ecf6178f1afac05d4d26
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
7 years agoASoC: msm_sdw: Fix wsa881x random speaker mute
Laxminath Kasam [Mon, 20 Feb 2017 17:19:12 +0000 (22:49 +0530)]
ASoC: msm_sdw: Fix wsa881x random speaker mute

In internal codec with WSA, wsa881x codec registers
accessed using soundwire expect to have delay.
So back to back registers access needs to ensure
proper delay, otherwise previous filled register
value is read and results in speaker mute.

CRs-Fixed: 2000566
Change-Id: I6b3441f206a3a9d0531b40d701636d7dd5a74cc0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
7 years agoARM: dts: msm: Fix compile warning in sdm660 audio node
Laxminath Kasam [Tue, 21 Feb 2017 10:05:53 +0000 (15:35 +0530)]
ARM: dts: msm: Fix compile warning in sdm660 audio node

Add address cells and size cells for digital audio node present
within analog codec node.

CRs-Fixed: 2000566
Change-Id: Iaf7ce40e9bcf8a1eabba0552377372fe2dd43ea3
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
7 years agoclk: qcom: Remove gcc_hmss_ahb_clk for sdm660
Amit Nischal [Fri, 17 Feb 2017 05:31:06 +0000 (11:01 +0530)]
clk: qcom: Remove gcc_hmss_ahb_clk for sdm660

The gcc_hmss_ahb_clk will be controlled by RPM. Remove all
control of it from the HLOS clock driver.

Change-Id: I26525787352cb0b85937cc005afba7c37a7989ff
Signed-off-by: Amit Nischal <anischal@codeaurora.org>
7 years agommc: cmdq_hci: CQ Register changes for sdm660
Sayali Lokhande [Wed, 4 Jan 2017 06:30:35 +0000 (12:00 +0530)]
mmc: cmdq_hci: CQ Register changes for sdm660

For SDHC version 5.0 onwards, ICE3.0 specific
registers are added in CQ register space, due to
which few CQ registers(like CQ_VENDOR_GFG,
CQ_CMD_DBG_RAM) are shifted. This change is to
update CQ register offset for sdm660.

Change-Id: Ie85b8f6c68511dccd2b545bd9cc17c747f3da8e7
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
7 years agomm, memory hotplug: small cleanup in online_pages()
Vlastimil Babka [Thu, 17 Mar 2016 21:18:12 +0000 (14:18 -0700)]
mm, memory hotplug: small cleanup in online_pages()

We can reuse the nid we've determined instead of repeated pfn_to_nid()
usages.  Also zone_to_nid() should be a bit cheaper in general than
pfn_to_nid().

Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: e888ca3545dc6823603b976e40b62af2c68b6fcc
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I6bdb2530fd6306ceb49022ef9cdc82b5598ebe8c
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
7 years agomm, compaction: introduce kcompactd
Vlastimil Babka [Thu, 17 Mar 2016 21:18:08 +0000 (14:18 -0700)]
mm, compaction: introduce kcompactd

Memory compaction can be currently performed in several contexts:

 - kswapd balancing a zone after a high-order allocation failure
 - direct compaction to satisfy a high-order allocation, including THP
   page fault attemps
 - khugepaged trying to collapse a hugepage
 - manually from /proc

The purpose of compaction is two-fold.  The obvious purpose is to
satisfy a (pending or future) high-order allocation, and is easy to
evaluate.  The other purpose is to keep overal memory fragmentation low
and help the anti-fragmentation mechanism.  The success wrt the latter
purpose is more

The current situation wrt the purposes has a few drawbacks:

 - compaction is invoked only when a high-order page or hugepage is not
   available (or manually).  This might be too late for the purposes of
   keeping memory fragmentation low.
 - direct compaction increases latency of allocations.  Again, it would
   be better if compaction was performed asynchronously to keep
   fragmentation low, before the allocation itself comes.
 - (a special case of the previous) the cost of compaction during THP
   page faults can easily offset the benefits of THP.
 - kswapd compaction appears to be complex, fragile and not working in
   some scenarios.  It could also end up compacting for a high-order
   allocation request when it should be reclaiming memory for a later
   order-0 request.

To improve the situation, we should be able to benefit from an
equivalent of kswapd, but for compaction - i.e. a background thread
which responds to fragmentation and the need for high-order allocations
(including hugepages) somewhat proactively.

One possibility is to extend the responsibilities of kswapd, which could
however complicate its design too much.  It should be better to let
kswapd handle reclaim, as order-0 allocations are often more critical
than high-order ones.

Another possibility is to extend khugepaged, but this kthread is a
single instance and tied to THP configs.

This patch goes with the option of a new set of per-node kthreads called
kcompactd, and lays the foundations, without introducing any new
tunables.  The lifecycle mimics kswapd kthreads, including the memory
hotplug hooks.

For compaction, kcompactd uses the standard compaction_suitable() and
ompact_finished() criteria and the deferred compaction functionality.
Unlike direct compaction, it uses only sync compaction, as there's no
allocation latency to minimize.

This patch doesn't yet add a call to wakeup_kcompactd.  The kswapd
compact/reclaim loop for high-order pages will be replaced by waking up
kcompactd in the next patch with the description of what's wrong with
the old approach.

Waking up of the kcompactd threads is also tied to kswapd activity and
follows these rules:
 - we don't want to affect any fastpaths, so wake up kcompactd only from
   the slowpath, as it's done for kswapd
 - if kswapd is doing reclaim, it's more important than compaction, so
   don't invoke kcompactd until kswapd goes to sleep
 - the target order used for kswapd is passed to kcompactd

Future possible future uses for kcompactd include the ability to wake up
kcompactd on demand in special situations, such as when hugepages are
not available (currently not done due to __GFP_NO_KSWAPD) or when a
fragmentation event (i.e.  __rmqueue_fallback()) occurs.  It's also
possible to perform periodic compaction with kcompactd.

[arnd@arndb.de: fix build errors with kcompactd]
[paul.gortmaker@windriver.com: don't use modular references for non modular code]
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 698b1b30642f1ff0ea10ef1de9745ab633031377
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I987ae548cba936987b8479dc02de67d0f88b9cb6
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
7 years agomm, kswapd: remove bogus check of balance_classzone_idx
Vlastimil Babka [Thu, 17 Mar 2016 21:18:05 +0000 (14:18 -0700)]
mm, kswapd: remove bogus check of balance_classzone_idx

During work on kcompactd integration I have spotted a confusing check of
balance_classzone_idx, which I believe is bogus.

The balanced_classzone_idx is filled by balance_pgdat() as the highest
zone it attempted to balance.  This was introduced by commit dc83edd941f4
("mm: kswapd: use the classzone idx that kswapd was using for
sleeping_prematurely()").

The intention is that (as expressed in today's function names), the
value used for kswapd_shrink_zone() calls in balance_pgdat() is the same
as for the decisions in kswapd_try_to_sleep().

An unwanted side-effect of that commit was breaking the checks in
kswapd() whether there was another kswapd_wakeup with a tighter (=lower)
classzone_idx.  Commits 215ddd6664ce ("mm: vmscan: only read
new_classzone_idx from pgdat when reclaiming successfully") and
d2ebd0f6b895 ("kswapd: avoid unnecessary rebalance after an unsuccessful
balancing") tried to fixed, but apparently introduced a bogus check that
this patch removes.

Consider zone indexes X < Y < Z, where:
- Z is the value used for the first kswapd wakeup.
- Y is returned as balanced_classzone_idx, which means zones with index higher
  than Y (including Z) were found to be unreclaimable.
- X is the value used for the second kswapd wakeup

The new wakeup with value X means that kswapd is now supposed to balance
harder all zones with index <= X.  But instead, due to Y < Z, it will go
sleep and won't read the new value X.  This is subtly wrong.

The effect of this patch is that kswapd will react better in some
situations, where e.g.  the first wakeup is for ZONE_DMA32, the second is
for ZONE_DMA, and due to unreclaimable ZONE_NORMAL.  Before this patch,
kswapd would go sleep instead of reclaiming ZONE_DMA harder.  I expect
these situations are very rare, and more value is in better
maintainability due to the removal of confusing and bogus check.

Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 81c5857b279e6b18f6ff0d1975e80a07af542cd1
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: If520144bb67b346a739166721137284112b9816a
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
7 years agodefconfig: msmcortex: Add ST TP configuration for QVR8998
Jin Fu [Mon, 20 Feb 2017 14:16:50 +0000 (22:16 +0800)]
defconfig: msmcortex: Add ST TP configuration for QVR8998

As QVR8998 project needed, add configuration for ST touch
panel driver.

Change-Id: I5bf4d705cedb32a26bed3832dac3fe08a0f45cfa
Signed-off-by: Jin Fu <jinf@codeaurora.org>
7 years agoARM: dts: msm: Add touch device node for QVR8998
Jin Fu [Tue, 7 Feb 2017 14:26:47 +0000 (22:26 +0800)]
ARM: dts: msm: Add touch device node for QVR8998

Add ST touch controller device node for QVR8998.Touch
controller is connected to the host processor via I2C.

Change-Id: Iad7db584a80c025e24f574292a63e019732da12c
Signed-off-by: Jin Fu <jinf@codeaurora.org>
7 years agodrivers:soc: Avoid use of uninitialized variable
Vatsal Bucha [Mon, 6 Feb 2017 13:25:17 +0000 (18:55 +0530)]
drivers:soc: Avoid use of uninitialized variable

While notifier de_register, we access the list which is not initialized.
Hence can result in access of uninitialized variable.
Update the loop to use correct list variable.

CRs-Fixed: 2002748
Change-Id: Ibff56477ed3fba90c8ff704ea7dbe3c472f59836
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
7 years agomsm: mdss: Correct mixer enumeration for sdm630
Jayant Shekhar [Mon, 20 Feb 2017 12:32:58 +0000 (18:02 +0530)]
msm: mdss: Correct mixer enumeration for sdm630

For sdm630, LM0 and LM2 layer-mixers are present.
LM1 interface mixer is removed. So, enumerate the
LM2 mixer correctly.

Change-Id: Iceff8f215ca34e95556368a13a9b0c8aeb7c2ef3
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
7 years agoclk: qcom: Remove mmssnoc cpu active vote clock for SDM660
Taniya Das [Mon, 30 Jan 2017 11:40:35 +0000 (17:10 +0530)]
clk: qcom: Remove mmssnoc cpu active vote clock for SDM660

There is no requirement to vote on active only clock of MMSSNOC cpu clock,
as the handoff flag for rpm clocks already takes care of the initial vote,
until the client puts across a vote.

Change-Id: I7804daa804d06ea3a7a81c4cf33156cc7324a542
Signed-off-by: Taniya Das <tdas@codeaurora.org>
7 years agoMerge "ARM: dts: msm: Enable APC0/1 CPR closed-loop operation for sdm660"
Linux Build Service Account [Tue, 21 Feb 2017 03:44:30 +0000 (19:44 -0800)]
Merge "ARM: dts: msm: Enable APC0/1 CPR closed-loop operation for sdm660"

7 years agoMerge "drm/msm: gpu: Return error on hw_init failure"
Linux Build Service Account [Tue, 21 Feb 2017 03:44:28 +0000 (19:44 -0800)]
Merge "drm/msm: gpu: Return error on hw_init failure"

7 years agoMerge "drm/msm: Detach the MMU during msm_gpu_cleanup()"
Linux Build Service Account [Tue, 21 Feb 2017 03:44:28 +0000 (19:44 -0800)]
Merge "drm/msm: Detach the MMU during msm_gpu_cleanup()"

7 years agoMerge "msm: mdss: fix secure session power vote"
Linux Build Service Account [Tue, 21 Feb 2017 03:44:27 +0000 (19:44 -0800)]
Merge "msm: mdss: fix secure session power vote"

7 years agoMerge "clk: qcom: Add support to list registers for slew PLL"
Linux Build Service Account [Tue, 21 Feb 2017 03:44:26 +0000 (19:44 -0800)]
Merge "clk: qcom: Add support to list registers for slew PLL"

7 years agoMerge "certs: dm-verity: add keyring certification for verity"
Linux Build Service Account [Tue, 21 Feb 2017 03:44:25 +0000 (19:44 -0800)]
Merge "certs: dm-verity: add keyring certification for verity"

7 years agoMerge "ppp: defer netns reference release for ppp channel"
Linux Build Service Account [Mon, 20 Feb 2017 18:08:28 +0000 (10:08 -0800)]
Merge "ppp: defer netns reference release for ppp channel"

7 years agoMerge "power: qcom-charger: delay ICL change reporting to parallel psy"
Linux Build Service Account [Mon, 20 Feb 2017 18:08:26 +0000 (10:08 -0800)]
Merge "power: qcom-charger: delay ICL change reporting to parallel psy"

7 years agoMerge "ARM: dts: msm: Enable camera for sdm630"
Linux Build Service Account [Mon, 20 Feb 2017 18:08:25 +0000 (10:08 -0800)]
Merge "ARM: dts: msm: Enable camera for sdm630"

7 years agoMerge "ARM: dts: msm: Add max secure video sessions for sdm660"
Linux Build Service Account [Mon, 20 Feb 2017 18:08:25 +0000 (10:08 -0800)]
Merge "ARM: dts: msm: Add max secure video sessions for sdm660"

7 years agoMerge "ARM: dts: msm: add support for NO jacktype for SDM630"
Linux Build Service Account [Mon, 20 Feb 2017 18:08:24 +0000 (10:08 -0800)]
Merge "ARM: dts: msm: add support for NO jacktype for SDM630"

7 years agoASoC: msm: Changes for adding format widget
Tanya Dixit [Fri, 17 Feb 2017 12:27:44 +0000 (17:57 +0530)]
ASoC: msm: Changes for adding format widget

Added logic to get and change format of MI2S
RX and TX streams.

CRs-Fixed: 2006420
Change-Id: I9809724499e0dd0c7f6787be09fbe9d76db684e6
Signed-off-by: Tanya Dixit <tdixit@codeaurora.org>
7 years agoARM: dts: msm: Update VFE SVS clock corner
Srikanth Uyyala [Fri, 17 Feb 2017 05:25:14 +0000 (10:55 +0530)]
ARM: dts: msm: Update VFE SVS clock corner

Update the VFE SVS clock corner from 256MHz to 404MHz.
This will help use a proper AHB clock corner thereby
saving power.

Change-Id: I4adb8b2f2722fbf337cc512cec51bd57676cdeeb
Signed-off-by: Venu Yeshala <vyeshala@codeaurora.org>
7 years agoUSB: qusb: Add support to change TUNEX registers dynamically
Vijayavardhan Vennapusa [Thu, 16 Feb 2017 10:55:35 +0000 (16:25 +0530)]
USB: qusb: Add support to change TUNEX registers dynamically

Add required support to change QUSB2PHY_PORT_TUNE1/2/3/4/5 registers
dynamically for testing USB electrical complaince.

Change-Id: Id84d460c8f8dc8cdedabe3887859d6b90acf7c3f
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
7 years agoARM: dts: msm: Update icnss device node for sdm630
Sarada Prasanna Garnayak [Wed, 15 Feb 2017 11:31:08 +0000 (17:01 +0530)]
ARM: dts: msm: Update icnss device node for sdm630

Add SMMU sid, memory base address and enable icnss
device node status for the icnss platform driver probe.

CRs-Fixed: 2008779
Change-Id: I05e48c8c450c03b119fc71c395e6456c88060c42
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
7 years agoASoC: msm: enable DAP set license logic on sdm660
Sharad Sangle [Thu, 16 Feb 2017 07:19:27 +0000 (12:49 +0530)]
ASoC: msm: enable DAP set license logic on sdm660

Since we move to GEF implementation for Dolby post processing,
disabling DAP/DAX2 driver logic on sdm660 target except for
license validation.

CRs-Fixed: 2001077
Change-Id: Ib9e2237a5118fef2f17f745df096d4de2082f0c7
Signed-off-by: Sharad Sangle <assangle@codeaurora.org>
7 years agoclk: qcom: Move gcc_usb3_phy_pipe_clk to branch clock
Amit Nischal [Thu, 16 Feb 2017 12:29:19 +0000 (17:59 +0530)]
clk: qcom: Move gcc_usb3_phy_pipe_clk to branch clock

A clk_disable on gate clocks would hold a global
spinlock and it would wait for a halt_delay. In some
race conditions(due to longer delays for gate clocks)
if any other CPU would also invoke a clk_disable then
it could result in a spinlock lockup. Avoid this by
moving the gcc_usb3_phy_pipe_clk clk to branch clock.

CRs-Fixed: 2008439
Change-Id: I177349844c571964637e16a150f93c5912f7dafe
Signed-off-by: Amit Nischal <anischal@codeaurora.org>