Age | Commit message (Collapse) | Author |
|
Export the service notifier APIs so that other kernel
clients can use them.
CRs-Fixed: 999530
Change-Id: I48fd55ae7991b64f818543dfcc963bc75135f714
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>
Signed-off-by: Puja Gupta <pujag@codeaurora.org>
|
|
If byte wise copy fails here, we should return EFAULT. Returning a value
other than that would cause failure of some of the user-space test cases.
CRs-Fixed: 989314
Change-Id: I38ce12d44f25dc89bdd29e8abacd8777f0a8b9a1
Signed-off-by: Imran Khan <kimran@codeaurora.org>
|
|
Change GPU frequencies in dtsi tables to match clock plan.
CRs-Fixed: 973565
Change-Id: Iae431f74d533a0b4a60bb38b46bcb6a7c717ac3b
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
|
|
In order to set SMMU to S1 bypass configuration
IPA driver needs to set DOMAIN_ATTR_S1_BYPASS before
attaching to SMMU. The actual SMMU setting is controlled
via device tree.
CRs-Fixed: 998074
Change-Id: I3e63d9e6c511dd692b299543881e7266799108af
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
|
|
Enable smart prefetch control for GPI (sys) channels.
This is done by configuring the channel scratch in GSI.
CRs-Fixed: 1000819
Change-Id: Iac1687b9b26eed715a1055cca295daa7b46f8abd
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
|
|
Update channel scratch data structure according
to GSI ver 83.
CRs-Fixed: 1000819
Change-Id: I428963f9cd7885015e5185ef6c666bf26e0851bb
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
|
|
Add active and sleep sets for the DSI reset GPIO, panel mode
selection GPIO and the TE (tear check) GPIO which are needed to
enable display on the DSI interface.
CRs-Fixed: 1000724
Change-Id: I290e4813d74a392aa1e715e1ae181853a711523d
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
|
|
Change adds offsets of source and destination QSEED3
and LUT to mdss device tree which is required for
QSEED3 functionality.
CRs-fixed: 1000739
Change-Id: I838a39e799736b7c0297f993c8a96d982ab31d2f
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
|
|
Change adds mdss device tree for msmcobalt which
provides mdss HW offsets for this chipset.
CRs-fixed: 1000739
Change-Id: Ibb12e0179a66e89ca675f4ae35fc2f77c050da2c
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
|
|
Commit be231853070770fd7e7c6fd5ca2414e26e7534a7 ("Merge branch
'mdss-final-replay' into msm-4.4") resulted in the driver changes related
to writeback sub node being merged without the documentation for the
bindings associated with that device node. Add the missing binding
documentation.
Change-Id: Id2affddf055a6bbf0038958bcdb7abd6d7930509
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
|
|
Add uartblsp node in msmcobalt cdp and mtp.
CRs-Fixed: 1000637
Change-Id: I1605e68893a73f364f044c046e65b563e666bcd4
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
|
|
Specifically for the case of reads that use the Extended Register
Read Long command, a multi-byte read operation is broken up into
8-byte chunks. However the call to spmi_ext_register_readl() is
incorrectly passing 'val_size', which if greater than 8 will
always fail. The argument should instead be 'len'.
CRs-Fixed: 1002440
Change-Id: I2eb9f1e11f97cf7eeee4314616bc5d06443c8920
Fixes: c9afbb05a9ff ("regmap: spmi: support base and extended register spaces")
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
|
Add support to enable GIC_V3_ACL.
CRs-Fixed: 996399
Change-Id: I843c9a3e56b567a3e7bada1833bbee66fff60892
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
|
|
Enable gladiator error reporting driver v2 to detect and print the
error on the gladiator
CRs-Fixed: 1000642
Change-Id: I2c7a36f6a31e2f7caa36aa5632f8ddb4746abcc1
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
|
|
Add a device definition for gladitor error reporting v2 on msmcobalt
CRs-Fixed: 1000642
Change-Id: I7bbbc9d2318bd5a6bd2ea051fad43898ae979381
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
|
|
Add support for gladiator cache inter connect error detection
and reporting for msmcobalt
CRs-Fixed: 1000642
Change-Id: I68c5ce09cc77a19eb334a1d8ccce8d577f964316
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
|
|
Define TIF_MM_RELEASED to let UML compile.
CRs-Fixed: 1003624
Change-Id: I65dd431b7f1f756b33a2a0b25ab841aad5368967
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
|
|
Newer versions of the DSI phy do not require any programming of the lane
regulator settings. Make this binding an optional property for the DSI
device node.
CRs-Fixed: 1000724
Change-Id: I696aab348cdb04db4068b2b62bcd049c839cbc33
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
|
|
Fixed issues in jpeg DMA v4l2 driver, related to
incorrect clock index, incorrect buffer offset,
incorrect dtsi node names for VBIF, QOS and
mmu prefetch.
CRs-Fixed: 1001324
Change-Id: Ice15afd63e006401a469376277b50a129ef177b4
Signed-off-by: Ashwini Rao <ashwinik@codeaurora.org>
|
|
Since the IOMMU debug and test framework relies on parsing `iommus'
properties from the device tree, we've relied on setting an `iommus'
property directly on a few of our IOMMUs, just to ensure that the
debugfs directory gets populated even when client drivers haven't been
enabled. However, in newer kernels, any device node with an `iommus'
property gets auto-attached to the given IOMMU, which isn't actually
what we want to have happen. The end result is that we try to map our
own page table memory into an IOMMU, resulting in a recursive mapping
loop, which is unequivocally bad.
Fix this by removing the recursive `iommus' property. The method for
testing these things in isolation from clients will need to be
re-worked.
CRs-Fixed: 1000848
Change-Id: I394bfc1c72492415d6f7fbb0b10df309b86d6faa
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
|
|
The MMSS SMMU needs a bus vote in order to light the path to DDR. Add
it.
CRs-Fixed: 1000848
Change-Id: I6b0ffa35d73e7d5e4ed506779444ebc2902a7d28
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
|
|
There are a few more clocks needed for correct operation of the GPU
SMMU. Add them.
CRs-Fixed: 1000848
Change-Id: Id52d17f034a8d5403448fd09b78003e5ab23639c
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
|
|
Enable Userspace I/O and MSM shared memory driver on msmcortex.
CRs-Fixed: 1003245
Change-Id: I84fd0170a3a0ea41070c1368a5f6efdae5288f2d
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
|
There is a configurable divider between the byte_clk_src RCGs
and the mmss_mdss_byte_intf_clk clocks. Add support to program
it.
CRs-Fixed: 1003173
Change-Id: I976c2b9e9739b603f6cfb10d11c7b1d64cb577c5
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
|
|
While performing USB composition switch or adb is being killed,
list_add corruption related crash is seen when SLUB_DEBUG is
enabled. diag_function_unbind() API decrements kref count and when
it becomes zero, it is calling diag_context_release() which frees
diag_context. This list corruption is seen from purge_configfs_funcs()
API which is trying to move function list as part of func->list. Fix
this issue by releasing diag_context with free_func() instead of
diag_function_unbind().
CRs-Fixed: 1002041
Change-Id: Ie49e47f2a0f26144e0107759fedc67c3af80032c
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
|
|
Channel migration logic assumes that the remote & local channel contexts
are always different and exist in different transports. If the remote
& local channel contexts exist in the same transport, then it leads to
a use-after-free scenario.
Fix the channel migration logic by not freeing the channel context if
the local & remote side opens in the same initial transport.
Change-Id: I319a93c49022b08e5c33b561d982a751d5223a58
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
|
|
Errata#845719 is also applicable for Kryo2xx Silver. Enable
the appropriate entry for it with rAp4 revision.
Please note that default midr_range logic depends on the
less or greather than logic with "min" and "max" range,
assuming that rX where X will be zero only. This is not
true for all the processors and since it is 4-bit field
it can be greater than the the "max" or pY bits.
We are specifying the direct match values like
0xA00004 instead here to keep the logic consistent.
CRs-Fixed: 969563
Change-Id: I16b0c2106ae649b8a23b7ebb534c967aebd72774
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
|
|
Set DOMAIN_ATTR_S1_BYPASS SMMU attribute to put
stage 1 context bank in bypass, as an initial
configuration.
Stage-1 will be enabled in a later stage.
CRs-Fixed: 1001858
Change-Id: I5a320a605622fab85373d02fdbc6c206ddc514aa
Signed-off-by: Maya Erez <merez@codeaurora.org>
|
|
bonding and TC drivers (sch_multiq) are required in
8996 for fast session transfer feature.
CRs-Fixed: 1001827
Change-Id: I93facd07e46e2e2ce9e302c5a6d48ae2fb2ca9c3
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
|
|
This change disables USB QMP PHY on msmcobalt until SSUSB
functionality is validated. With this only USB high speed
functionality is supported now.
CRs-Fixed: 1001222
Change-Id: I74a00cc76ab86ee96905d270b1f6e09fb3fb9db7
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
|
|
Export MHI device header for user space clients.
Change-Id: I0f68975dfcad9483182e5af5477153f39a98ac1f
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
|
|
The Modem Host Interface (MHI) device driver supports
clients to send control and data packets such as
IP data packets, control messages and Diagnostic
data between the Host and the device. It follows the
MHI specification to transfer data.
The driver interfaces with the IPA driver for Hardware
accelerated channels and PCIe End point driver
to communicate between the Host and the device.
The driver exposes to both userspace and kernel space
generic IO read/write/open/close system calls and
kernel APIs to communicate and transfer data between
Host and the device.
Change-Id: I64990a972cbf7c2022d638c35f7517071de67f19
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
|
|
bitmap_scnprintf has been deprecated, so replace it with
scnprintf.
Change-Id: I8563fafc56515fde764046f882814c1c6e4c4299
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
|
|
The __GFP_CMA mask is now placed after all available GFP masks.
With this we need to increase the total number of GFP flags.
Do so accordingly.
CRs-Fixed: 648978
Change-Id: I53f5f064ac16a50ee10c84ff2bb50fdb7e085bd0
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
[lmark@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
Add a cma pcp list in order to increase cma memory utilization.
Increased cma memory utilization will improve overall memory
utilization because free cma pages are ignored when memory reclaim
is done with gfp mask GFP_KERNEL.
Since most memory reclaim is done by kswapd, which uses a gfp mask
of GFP_KERNEL, by increasing cma memory utilization we are therefore
ensuring that less aggressive memory reclaim takes place.
Increased cma memory utilization will improve performance,
for example it will increase app concurrency.
Change-Id: I809589a25c6abca51f1c963f118adfc78e955cf9
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
CMA pages are designed to be used as fallback for movable allocations
and cannot be used for non-movable allocations. If CMA pages are
utilized poorly, non-movable allocations may end up getting starved if
all regular movable pages are allocated and the only pages left are
CMA. Always using CMA pages first creates unacceptable performance
problems. As a midway alternative, use CMA pages for certain
userspace allocations. The userspace pages can be migrated or dropped
quickly which giving decent utilization.
Change-Id: I6165dda01b705309eebabc6dfa67146b7a95c174
CRs-Fixed: 452508
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Heesub Shin <heesub.shin@samsung.com
[lauraa@codeaurora.org: Missing CONFIG_CMA guards, add commit text]
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
[lmark@codeaurora.org: resolve conflicts relating to
MIGRATE_HIGHATOMIC and some other trivial merge conflicts]
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
In vmpressure notifier of LMK, shift_adj would have been set
by a previous invocation of notifier, which is not followed by
a lowmem_shrink yet. If this is follwed by a lower vmpressure,
and then by a lowmem_shrink, ALMK still triggers because of the
previous higher vmpressure notification. This is wrong.
Since vmpressure has improved, reset shift_adj to avoid false
adaptive LMK trigger.
CRs-fixed: 893699
Change-Id: I2d77103d7c8f4d8a66e4652cba78e619a7bcef9a
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
|
|
Couple of cases were reported few months ago, where the cpu was blocked
on the following call stack for /seconds/ after which the watchdog fires.
test_task_flag(p = 0xE14ABF00, ?)
lowmem_shrink(?, sc = 0xD7A03C04)
shrink_slab(shrink = 0xD7A03C04, nr_pages_scanned = 0, lru_pages = 120)
try_to_free_pages(zonelist = 0xC1116440, ?, ?, ?)
__alloc_pages_nodemask(?, order = 0, ?, nodemask = 0x0)
__do_page_cache_readahead(mapping = 0xEB819364, filp = 0xCC16DC00, offset =
ra_submit(?, ?, ?)
filemap_fault(vma = 0xC105D240, vmf = 0xD7A03DC8)
There weren't any dumps to analyse the case, but this can be a possible
reason. while_each_thread is known to be buggy and can result in the
function looping forever if the task exits, even when protected with
rcu_read_lock. Use for_each_thread instead.
More details on the problems with while_each_thread can be found
at https://lkml.org/lkml/2013/12/2/320
Change-Id: I5eb6e4b463f81142a2a7824db389201357432ec7
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
|
|
The lowmem_shrink function discounts all the swap cache pages from
the file cache count. The zone aware code also discounts all file
cache pages from a certain zone. This results in some swap cache
pages being discounted twice, which can result in the low memory
killer being unnecessarily aggressive.
Fix the low memory killer to only discount the swap cache pages
once.
Change-Id: I650bbfbf0fbbabd01d82bdb3502b57ff59c3e14f
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
|
|
There were issues reported, where page cache thrashing was
observed because of LMK not killing tasks when required,
resulting in sluggishness and higher app launch latency.
LMK does not kill a task for the following reasons.
1. The free and file pages are above the LMK thresholds
2. LMK tries to pick task with an adj level corresponding
to current thresholds, but fails to do so because of the
absence of tasks in that level.
But sometimes it is better to kill a lower adj task, than thrashing.
And there are cases where the number of file pages are huge, though
we dont thrash, the reclaim process becomes time consuming, since
LMK triggers will be delayed because of higher number of file
pages. Even in such cases, when reclaim path finds it difficult
to reclaim pages, it is better to trigger lmk to free up some memory
faster.
The basic idea here is to make LMK more aggressive dynamically
when such a thrashing scenario is detected.
To detect thrashing, this patch uses vmpressure events.
The values of vmpressure upon which an action has to be taken,
was derived empirically.
This patch also adds tracepoints to validate this feature,
almk_shrink and almk_vmpressure.
Two knobs are available for the user to tune adaptive lmk
behaviour.
/sys/module/lowmemorykiller/parameters/adaptive_lmk - Write
1 to enable the feature, 0 to disable. By default disabled.
/sys/module/lowmemorykiller/parameters/vmpressure_file_min -
This parameter controls the behaviour of LMK when vmpressure
is in the range of 90-94. Adaptive lmk triggers based on number file
pages wrt vmpressure_file_min, when vmpressure is in the range of
90-94. Usually this is a pseudo minfree value, higher than the
highest configured value in minfree array.
Change-Id: I1a08160c35d3e33bdfd1d2c789c288fc07d0f0d3
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
|
|
Pointer other_free is getting dereferenced without
performing proper NULL checks which may cause issue.
Do proper NULL checks at all points before dereferencing
it.
Change-Id: I88515703d64730e42598ab16136dcce4c18b099c
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
|
|
Add extra debug information to make it easier to both determine
why the lowmemorykiller killed a process and to help find the source
of memory leaks.
Also increase the debug level for "select" statements to help prevent
flooding the log.
Change-Id: I3b6876c5ecdf192ecc271aed3f37579f66d47a08
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
Currenlty most memory reclaim is done through kswapd.
Since kswapd uses a gfp mask of GFP_KERNEL, and because
the lowmemorykiller is zone aware, the lowmemorykiller will
ignore highmem most of the time.
This results in the lowmemorykiller being overly aggressive.
The fix to this issue is to allow the lowmemorykiller to
count highmem when being called by the kswapd if the lowmem
watermarks are satisfied.
Change-Id: I938644584f374763d10d429d835e74daa4854a38
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
The lowmemorykiller relies on NR_FILE_PAGES when measuring
the amount of reclaimable memory in the system.
However when swap is enabled swap cache pages are counted
in NR_FILE_PAGES, and swap cache pages aren't as reclaimable
in low memory as file cache pages. Therefore a large swap
cache can result in the lowmemorykiller not running and
an OOM occurring.
In order to ensure the lowmemorykiller properly evaluates the
amount of reclaimable memory don't count the swap cache pages.
Change-Id: I38239283e572f814b277c718eaf6be7f92abacbb
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
In certain memory configurations there can be a large number of
CMA pages which are not suitable to satisfy certain memory
requests.
This large number of unsuitable pages can cause the
lowmemorykiller to not kill any tasks because the
lowmemorykiller counts all free pages.
In order to ensure the lowmemorykiller properly evaluates the
free memory only count the free CMA pages if they are suitable
for satisfying the memory request.
Change-Id: I7f06d53e2d8cfe7439e5561fe6e5209ce73b1c90
CRs-fixed: 437016
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
There are cases that LMK doesn't run, even when it must run.
It is due to LMK shrinker not considering memory status per zone.
So add LMK parameters(other_free, other_file) tunnig code to
consider target zone of LMK shrinker.
Change-Id: I6f1f8660d5da920a0e3af45a160499965032081d
Git-commit: 22d990a58fc17b3f0155e15eb2dc3efa037bea1c
Git-repo: https://android.googlesource.com/kernel/common/
[ohaugan@codeaurora.org: Fix compilation issues]
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
A killed task can stay in the task list long after its
memory has been returned to the system, therefore
ignore any tasks whose mm struct has been freed.
Change-Id: I76394b203b4ab2312437c839976f0ecb7b6dde4e
CRs-fixed: 450383
Signed-off-by: Liam Mark <lmark@codeaurora.org>
|
|
This change enables CONFIG_USB_CONFIGFS_F_GSI required for
USB GSI (RMNET, RNDIS and DPL) related functionality.
CRs-Fixed: 1001469
Change-Id: I91b2531a2ce739613181f2e13c692263d9e2454a
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
|
|
This change adds required .h files to resolve below seen
compilation errors.
In function ‘gsi_update_function_bind_params’:
error: implicit declaration of function ‘msm_ep_config’
warning: ‘enum ipa_usb_notify_event’ declared inside parameter list
CRs-Fixed: 1001469
Change-Id: Ic62b4dae798726055beb778509e6b65e69f4db34
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
|
|
f_gsi compilation is failing with below error:
fatal error: linux/usb/usb_ctrl_qti.h: No such file or directory
Hence add missing usb_ctrl_qti.h to resolve above error while
compiling f_gsi.c file.
This file's snapshot is taken from msm-3.18 kernel as
'commit 24b986908cc1 ("power: qpnp-fg: stop IMA transactions
during FG shutdown")'.
CRs-Fixed: 1001469
Change-Id: Ib7dce6b2ae1670554a29847e4381e71ba7b75edf
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
|