Commit graph

583502 commits

Author SHA1 Message Date
Linux Build Service Account
1449de5126 Merge "mm: vmpressure: fix sending wrong events on underflow" 2017-02-21 05:33:26 -08:00
Linux Build Service Account
3e0898136d Merge "USB: qusb: Add support to change TUNEX registers dynamically" 2017-02-21 05:33:25 -08:00
Linux Build Service Account
9576ebffd1 Merge "phy: qcom-ufs: parse ref-clk details prior to resource request" 2017-02-21 05:33:24 -08:00
Linux Build Service Account
b3b9d63434 Merge "ARM: dts: msm: update enable signal polarity of SMB1351 for SDM660" 2017-02-21 05:33:23 -08:00
Linux Build Service Account
7997223a2d Merge "msm: ipa: changes to suspend/disable for WDI 2" 2017-02-21 05:33:23 -08:00
Linux Build Service Account
bf0ca85b71 Merge "net: validate the range we feed to iov_iter_init() in sys_sendto/sys_recvfrom" 2017-02-21 05:33:19 -08:00
Linux Build Service Account
32ba260669 Merge "usb: pd: Skip decreasing current when requesting the same PPS" 2017-02-21 05:33:18 -08:00
Linux Build Service Account
7fd898c7d3 Merge "ARM: dts: msm: Update Temperature sensor support for sdm660" 2017-02-21 05:33:17 -08:00
Linux Build Service Account
488d502924 Merge "USB: gadget: Replace %pK with %p" 2017-02-21 05:33:16 -08:00
Linux Build Service Account
328a15d380 Merge "msm: kgsl: Fix false timeout gpu faults" 2017-02-21 05:33:16 -08:00
Linux Build Service Account
921ba81bc3 Merge "input: touchscreen: remove msg21xx mstar touch driver" 2017-02-21 05:33:15 -08:00
Linux Build Service Account
abe0d1ce01 Merge "mmc: core: Fix deadlock in suspend & rescan path" 2017-02-21 05:33:14 -08:00
Linux Build Service Account
82ab22b4ae Merge "mmc: sdhci-msm: Dont wait infinitely for pwr_irq interrupt" 2017-02-21 05:33:13 -08:00
Veerabhadrarao Badiganti
43464aa84e 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>
2017-02-21 17:20:14 +05:30
Veerabhadrarao Badiganti
23a7da0be7 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>
2017-02-21 17:18:48 +05:30
Jin Fu
1fdcd6cd5a ARM: dts: msm: Add touch device node for HDK835
Add ST touch controller device node for MSM8998 HDK835.
Touch controller is connected to the host processor via
I2C.

Change-Id: Id94f2feaddfa0c7aca74a52448b652afcd013ed7
Signed-off-by: Jin Fu <jinf@codeaurora.org>
2017-02-21 19:43:42 +08:00
Ankit Sharma
6951006459 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>
2017-02-21 17:06:32 +05:30
Laxminath Kasam
cf29faa1ee Revert "ASoC: wsa881x: Add cache-always mode for sdm660"
This reverts 'commit b3f17f8fe8
("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>
2017-02-21 15:53:50 +05:30
Laxminath Kasam
da31eab171 Revert "ARM: dts: msm: Enable cache-always for WSA in sdm660 internal codec"
This reverts 'commit 4dd5dc49ac
("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>
2017-02-21 15:53:27 +05:30
Laxminath Kasam
6f5b527c17 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>
2017-02-21 15:53:02 +05:30
Laxminath Kasam
613aec8015 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>
2017-02-21 15:39:06 +05:30
Amit Nischal
e9a6b4b935 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>
2017-02-21 14:39:12 +05:30
Sayali Lokhande
23fc79cd39 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>
2017-02-21 13:46:54 +05:30
Vlastimil Babka
18be75139f mm, kswapd: replace kswapd compaction with waking up kcompactd
Similarly to direct reclaim/compaction, kswapd attempts to combine
reclaim and compaction to attempt making memory allocation of given
order available.

The details differ from direct reclaim e.g. in having high watermark as
a goal.  The code involved in kswapd's reclaim/compaction decisions has
evolved to be quite complex.

Testing reveals that it doesn't actually work in at least one scenario,
and closer inspection suggests that it could be greatly simplified
without compromising on the goal (make high-order page available) or
efficiency (don't reclaim too much).  The simplification relieas of
doing all compaction in kcompactd, which is simply woken up when high
watermarks are reached by kswapd's reclaim.

The scenario where kswapd compaction doesn't work was found with mmtests
test stress-highalloc configured to attempt order-9 allocations without
direct reclaim, just waking up kswapd.  There was no compaction attempt
from kswapd during the whole test.  Some added instrumentation shows
what happens:

 - balance_pgdat() sets end_zone to Normal, as it's not balanced
 - reclaim is attempted on DMA zone, which sets nr_attempted to 99, but
   it cannot reclaim anything, so sc.nr_reclaimed is 0
 - for zones DMA32 and Normal, kswapd_shrink_zone uses testorder=0, so
   it merely checks if high watermarks were reached for base pages.
   This is true, so no reclaim is attempted.  For DMA, testorder=0
   wasn't used, as compaction_suitable() returned COMPACT_SKIPPED
 - even though the pgdat_needs_compaction flag wasn't set to false, no
   compaction happens due to the condition sc.nr_reclaimed >
   nr_attempted being false (as 0 < 99)
 - priority-- due to nr_reclaimed being 0, repeat until priority reaches
   0 pgdat_balanced() is false as only the small zone DMA appears
   balanced (curiously in that check, watermark appears OK and
   compaction_suitable() returns COMPACT_PARTIAL, because a lower
   classzone_idx is used there)

Now, even if it was decided that reclaim shouldn't be attempted on the
DMA zone, the scenario would be the same, as (sc.nr_reclaimed=0 >
nr_attempted=0) is also false.  The condition really should use >= as
the comment suggests.  Then there is a mismatch in the check for setting
pgdat_needs_compaction to false using low watermark, while the rest uses
high watermark, and who knows what other subtlety.  Hopefully this
demonstrates that this is unsustainable.

Luckily we can simplify this a lot.  The reclaim/compaction decisions
make sense for direct reclaim scenario, but in kswapd, our primary goal
is to reach high watermark in order-0 pages.  Afterwards we can attempt
compaction just once.  Unlike direct reclaim, we don't reclaim extra
pages (over the high watermark), the current code already disallows it
for good reasons.

After this patch, we simply wake up kcompactd to process the pgdat,
after we have either succeeded or failed to reach the high watermarks in
kswapd, which goes to sleep.  We pass kswapd's order and classzone_idx,
so kcompactd can apply the same criteria to determine which zones are
worth compacting.  Note that we use the classzone_idx from
wakeup_kswapd(), not balanced_classzone_idx which can include higher
zones that kswapd tried to balance too, but didn't consider them in
pgdat_balanced().

Since kswapd now cannot create high-order pages itself, we need to
adjust how it determines the zones to be balanced.  The key element here
is adding a "highorder" parameter to zone_balanced, which, when set to
false, makes it consider only order-0 watermark instead of the desired
higher order (this was done previously by kswapd_shrink_zone(), but not
elsewhere).  This false is passed for example in pgdat_balanced().
Importantly, wakeup_kswapd() uses true to make sure kswapd and thus
kcompactd are woken up for a high-order allocation failure.

The last thing is to decide what to do with pageblock_skip bitmap
handling.  Compaction maintains a pageblock_skip bitmap to record
pageblocks where isolation recently failed.  This bitmap can be reset by
three ways:

1) direct compaction is restarting after going through the full deferred cycle

2) kswapd goes to sleep, and some other direct compaction has previously
   finished scanning the whole zone and set zone->compact_blockskip_flush.
   Note that a successful direct compaction clears this flag.

3) compaction was invoked manually via trigger in /proc

The case 2) is somewhat fuzzy to begin with, but after introducing
kcompactd we should update it.  The check for direct compaction in 1),
and to set the flush flag in 2) use current_is_kswapd(), which doesn't
work for kcompactd.  Thus, this patch adds bool direct_compaction to
compact_control to use in 2).  For the case 1) we remove the check
completely - unlike the former kswapd compaction, kcompactd does use the
deferred compaction functionality, so flushing tied to restarting from
deferred compaction makes sense here.

Note that when kswapd goes to sleep, kcompactd is woken up, so it will
see the flushed pageblock_skip bits.  This is different from when the
former kswapd compaction observed the bits and I believe it makes more
sense.  Kcompactd can afford to be more thorough than a direct
compaction trying to limit allocation latency, or kswapd whose primary
goal is to reclaim.

For testing, I used stress-highalloc configured to do order-9
allocations with GFP_NOWAIT|__GFP_HIGH|__GFP_COMP, so they relied just
on kswapd/kcompactd reclaim/compaction (the interfering kernel builds in
phases 1 and 2 work as usual):

stress-highalloc
                        4.5-rc1+before          4.5-rc1+after
                             -nodirect              -nodirect
Success 1 Min          1.00 (  0.00%)         5.00 (-66.67%)
Success 1 Mean         1.40 (  0.00%)         6.20 (-55.00%)
Success 1 Max          2.00 (  0.00%)         7.00 (-16.67%)
Success 2 Min          1.00 (  0.00%)         5.00 (-66.67%)
Success 2 Mean         1.80 (  0.00%)         6.40 (-52.38%)
Success 2 Max          3.00 (  0.00%)         7.00 (-16.67%)
Success 3 Min         34.00 (  0.00%)        62.00 (  1.59%)
Success 3 Mean        41.80 (  0.00%)        63.80 (  1.24%)
Success 3 Max         53.00 (  0.00%)        65.00 (  2.99%)

User                          3166.67        3181.09
System                        1153.37        1158.25
Elapsed                       1768.53        1799.37

                            4.5-rc1+before   4.5-rc1+after
                                 -nodirect    -nodirect
Direct pages scanned                32938        32797
Kswapd pages scanned              2183166      2202613
Kswapd pages reclaimed            2152359      2143524
Direct pages reclaimed              32735        32545
Percentage direct scans                1%           1%
THP fault alloc                       579          612
THP collapse alloc                    304          316
THP splits                              0            0
THP fault fallback                    793          778
THP collapse fail                      11           16
Compaction stalls                    1013         1007
Compaction success                     92           67
Compaction failures                   920          939
Page migrate success               238457       721374
Page migrate failure                23021        23469
Compaction pages isolated          504695      1479924
Compaction migrate scanned         661390      8812554
Compaction free scanned          13476658     84327916
Compaction cost                       262          838

After this patch we see improvements in allocation success rate
(especially for phase 3) along with increased compaction activity.  The
compaction stalls (direct compaction) in the interfering kernel builds
(probably THP's) also decreased somewhat thanks to kcompactd activity,
yet THP alloc successes improved a bit.

Note that elapsed and user time isn't so useful for this benchmark,
because of the background interference being unpredictable.  It's just
to quickly spot some major unexpected differences.  System time is
somewhat more useful and that didn't increase.

Also (after adjusting mmtests' ftrace monitor):

Time kswapd awake               2547781     2269241
Time kcompactd awake                  0      119253
Time direct compacting           939937      557649
Time kswapd compacting                0           0
Time kcompactd compacting             0      119099

The decrease of overal time spent compacting appears to not match the
increased compaction stats.  I suspect the tasks get rescheduled and
since the ftrace monitor doesn't see that, the reported time is wall
time, not CPU time.  But arguably direct compactors care about overall
latency anyway, whether busy compacting or waiting for CPU doesn't
matter.  And that latency seems to almost halved.

It's also interesting how much time kswapd spent awake just going
through all the priorities and failing to even try compacting, over and
over.

We can also configure stress-highalloc to perform both direct
reclaim/compaction and wakeup kswapd/kcompactd, by using
GFP_KERNEL|__GFP_HIGH|__GFP_COMP:

stress-highalloc
                        4.5-rc1+before         4.5-rc1+after
                               -direct               -direct
Success 1 Min          4.00 (  0.00%)        9.00 (-50.00%)
Success 1 Mean         8.00 (  0.00%)       10.00 (-19.05%)
Success 1 Max         12.00 (  0.00%)       11.00 ( 15.38%)
Success 2 Min          4.00 (  0.00%)        9.00 (-50.00%)
Success 2 Mean         8.20 (  0.00%)       10.00 (-16.28%)
Success 2 Max         13.00 (  0.00%)       11.00 (  8.33%)
Success 3 Min         75.00 (  0.00%)       74.00 (  1.33%)
Success 3 Mean        75.60 (  0.00%)       75.20 (  0.53%)
Success 3 Max         77.00 (  0.00%)       76.00 (  0.00%)

User                          3344.73       3246.04
System                        1194.24       1172.29
Elapsed                       1838.04       1836.76

                            4.5-rc1+before  4.5-rc1+after
                                   -direct     -direct
Direct pages scanned               125146      120966
Kswapd pages scanned              2119757     2135012
Kswapd pages reclaimed            2073183     2108388
Direct pages reclaimed             124909      120577
Percentage direct scans                5%          5%
THP fault alloc                       599         652
THP collapse alloc                    323         354
THP splits                              0           0
THP fault fallback                    806         793
THP collapse fail                      17          16
Compaction stalls                    2457        2025
Compaction success                    906         518
Compaction failures                  1551        1507
Page migrate success              2031423     2360608
Page migrate failure                32845       40852
Compaction pages isolated         4129761     4802025
Compaction migrate scanned       11996712    21750613
Compaction free scanned         214970969   344372001
Compaction cost                      2271        2694

In this scenario, this patch doesn't change the overall success rate as
direct compaction already tries all it can.  There's however significant
reduction in direct compaction stalls (that is, the number of
allocations that went into direct compaction).  The number of successes
(i.e.  direct compaction stalls that ended up with successful
allocation) is reduced by the same number.  This means the offload to
kcompactd is working as expected, and direct compaction is reduced
either due to detecting contention, or compaction deferred by kcompactd.
In the previous version of this patchset there was some apparent
reduction of success rate, but the changes in this version (such as
using sync compaction only), new baseline kernel, and/or averaging
results from 5 executions (my bet), made this go away.

Ftrace-based stats seem to roughly agree:

Time kswapd awake               2532984     2326824
Time kcompactd awake                  0      257916
Time direct compacting           864839      735130
Time kswapd compacting                0           0
Time kcompactd compacting             0      257585

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: accf62422b3a67fce8ce086aa81c8300ddbf42be
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I5cc784ff0fb1b28bdcfa8d4ef9bd33f585ee4662
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2017-02-21 12:37:21 +05:30
Vlastimil Babka
28aea75c4b 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>
2017-02-21 12:37:10 +05:30
Vlastimil Babka
f9d29d58eb 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>
2017-02-21 12:36:57 +05:30
Vlastimil Babka
d7e25d6390 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 dc83edd941
("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 215ddd6664 ("mm: vmscan: only read
new_classzone_idx from pgdat when reclaiming successfully") and
d2ebd0f6b8 ("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>
2017-02-21 12:36:28 +05:30
Jin Fu
ebfafe11f2 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>
2017-02-21 14:56:54 +08:00
Jin Fu
ba6b93c16b 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>
2017-02-21 14:50:45 +08:00
Gopikrishnaiah Anandan
6465ed1ec2 ARM: dts: msm: Add sde dtsi for msm8998
msm8998 has a new version of display hardware block.
This Change adds the dtsi support for sde block.

CRs-Fixed: 2002381
Change-Id: Ib18d2e2134a314295667d557ab314cd9aab82585
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Manoj Kumar AVM <manojavm@codeaurora.org>
2017-02-20 22:42:18 -08:00
Vijayavardhan Vennapusa
19bfa415e9 ARM: dts: msm: Enable support for LPM Errata feature on sdm660
LPM Errata feature is enabled on dwc3 controller which has
DWC3_REVISION_300A.

Change-Id: Iae32496ce5c35515f2b393171a4c3ba27790157b
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2017-02-21 11:09:50 +05:30
Vatsal Bucha
59645729eb 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>
2017-02-20 21:31:48 -08:00
Jayant Shekhar
82fc7a7b26 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>
2017-02-21 10:57:09 +05:30
Taniya Das
1a5c4d6ac3 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>
2017-02-20 20:59:45 -08:00
Linux Build Service Account
c4b8f73455 Merge "ARM: dts: msm: Enable APC0/1 CPR closed-loop operation for sdm660" 2017-02-20 19:44:30 -08:00
Linux Build Service Account
14e732143d Merge "drm/msm: gpu: Return error on hw_init failure" 2017-02-20 19:44:28 -08:00
Linux Build Service Account
09191dbe4d Merge "drm/msm: Detach the MMU during msm_gpu_cleanup()" 2017-02-20 19:44:27 -08:00
Linux Build Service Account
31516ed735 Merge "msm: mdss: fix secure session power vote" 2017-02-20 19:44:27 -08:00
Linux Build Service Account
8c91258981 Merge "clk: qcom: Add support to list registers for slew PLL" 2017-02-20 19:44:26 -08:00
Linux Build Service Account
4b649675b7 Merge "certs: dm-verity: add keyring certification for verity" 2017-02-20 19:44:25 -08:00
Linux Build Service Account
56b0a1f166 Merge "ppp: defer netns reference release for ppp channel" 2017-02-20 10:08:27 -08:00
Linux Build Service Account
e7d1ccb3fa Merge "power: qcom-charger: delay ICL change reporting to parallel psy" 2017-02-20 10:08:26 -08:00
Linux Build Service Account
41bb68940b Merge "ARM: dts: msm: Enable camera for sdm630" 2017-02-20 10:08:25 -08:00
Linux Build Service Account
e4dff026df Merge "ARM: dts: msm: Add max secure video sessions for sdm660" 2017-02-20 10:08:24 -08:00
Linux Build Service Account
4d49e3647c Merge "ARM: dts: msm: add support for NO jacktype for SDM630" 2017-02-20 10:08:24 -08:00
Tanya Dixit
533749ccfa 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>
2017-02-20 23:24:39 +05:30
Srikanth Uyyala
e305bc314e 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>
2017-02-20 06:18:27 -08:00
Ashay Jaiswal
595c4b1262 defconfig: mfd: Enable REGMAP_ALLOW_WRITE_DEBUGFS for SDM660
Enable it in the debug defconfig only, to allow REGMAP write
through debugfs.

Change-Id: I528415ef5d4427371d4dc24181d783abf780c3bf
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
2017-02-20 18:12:37 +05:30
Vijayavardhan Vennapusa
4fd545a06e 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>
2017-02-20 17:14:30 +05:30
Sarada Prasanna Garnayak
cbaa3c6555 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>
2017-02-20 15:55:04 +05:30