Update the diag headers and msg mask tables to account
for a new ssid group.
CRs-Fixed: 2055789
Change-Id: I3abd816d5e99bff263b753fb1070a2672ecea46c
Signed-off-by: Chris Lew <clew@codeaurora.org>
Since most of the heavy lifting for managing submits lives in the
msm_gpu domain it makes sense to move the memptrs so that they are
globally visible and we can use them without relying on function
pointers.
Additionally, instead of having a single struct full of per-ring
arrays, reorganize the structure and assign a sub-allocation
to each ring. This simplifies all of the various macros and other
bits and allows us to make the size of the allocation dependent
on the acutal number of rings for the implementation.
Change-Id: Ic0dedbadc18ba1dc786c82b082c5030e13ff8012
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Currently the normal and secure MMUs are allocated when the
address space is created in msm_gpu_init() but not attached
until the end of adreno_gpu_init(). Since we can't map buffer
objects in the IOMMU without attaching it first this restricts
when we can allocate buffer objects in the sequence.
For arm-smmu based targets there isn't any reason why we can't
immediately attach the MMU after creating the address space -
this makes the whole system immediately available to map memory
and will facilitate moving around global allocations.
Change-Id: Ic0dedbad161396e9d095f3f3d1e4fca2d240a084
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Nearly all of the buffer allocations for kernel allocate an buffer object,
virtual address and GPU iova at the same time. Make a helper function to
handle the details.
Change-Id: Ic0dedbad0ecd85d360895cc0d1e418277ba44c62
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Cleanup and consolidate sanity checking on the ringbuffer
cleanup code.
Change-Id: Ic0dedbad551d36ca8ed3db56a4366a5008768791
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
There are plenty of log messages when a hang check and/or fault
occurs there isn't any need to add one more - recovery is
pretty much a given at this point.
Change-Id: Ic0dedbad392807591b726eb9d09af3ad29d7bc30
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Allow priviliged (CAP_SYS_ADMIN) processes to disable the
hangcheck / quality of service timer to allow individual
submits to run for as long as they need.
Change-Id: Ic0dedbad1399ebe7c6db74ba374bfa3a6f72917a
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Add the capability to query information from a submit queue.
The first available parameter is to query the number of GPU
faults that have been caused by the queue. The driver can
periodically query this value to see if it has caused a fault
and take action accordingly.
Change-Id: Ic0dedbadc68d5782c0b8b71d89722742aa6aaf1a
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Adding vidc support for VIDIOC_QUERY_EXT_CTRL ioctl. This ioctl will
return the details for the V4L2 control identified by the ID provided
by the user or the next supported control based upon the flags
provided by the user.
Change-Id: I68161ceb000a46a8e54333ab39c0229f8fbdbf72
Signed-off-by: Akshay Chandrashekhar Kalghatgi <akalghat@codeaurora.org>
gsi_ctrl_dev_write() and gsi_ctrl_dev_read() API is directly using user
space provided buffer when qti_packet_debug is enabled. This can result
into using untrusted buffer pointer. Hence use cpkt->buf i.e. kernel
space buffer pointer instead of directly using user space provided buffer.
CRs-Fixed: 2061391
Change-Id: Iba6f2845dae2755446b4b8e9f3041686877d7bc4
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
These config options are specific to arm64 so should not be universally
required.
Bug: 62523096
Change-Id: I52bcad68f32d5314032c6aa3f37402b2ffba79be
Signed-off-by: Steve Muckle <smuckle@google.com>
In glink_open function, channel context initialization with transport
pointer is done quite after after its creation. This create race condition,
if parallel thread try to use transport pointer of ctx.
Ctx is initialized with transport pointer right at the time of its
creation.
CRs-Fixed: 2061645
Change-Id: Idcddf1ab10b8673a20bc1f23d8702bf870f79dbd
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
Use cond_resched_lock to avoid holding the vmap_area_lock for a
potentially long time and thus creating bad latencies for various
workloads.
Change-Id: I36eb4d8dbd6604f52e5c463373a9754847a44bc2
[hch: split from a larger patch by Joel, wrote the crappy changelog]
Link: http://lkml.kernel.org/r/1479474236-4139-11-git-send-email-hch@lst.de
Signed-off-by: Joel Fernandes <joelaf@google.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 763b218ddfaf56761c19923beb7e16656f66ec62
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
The purge_lock spinlock causes high latencies with non RT kernel. This
has been reported multiple times on lkml [1] [2] and affects
applications like audio.
This patch replaces it with a mutex to allow preemption while holding
the lock.
Thanks to Joel Fernandes for the detailed report and analysis as well as
an earlier attempt at fixing this issue.
[1] http://lists.openwall.net/linux-kernel/2016/03/23/29
[2] https://lkml.org/lkml/2016/10/9/59
Change-Id: I57d4e9c7ce5aeb3273574026da2a8b737ef0b809
Link: http://lkml.kernel.org/r/1479474236-4139-10-git-send-email-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: f9e09977671b618aeb25ddc0d4c9a84d5b5cde9d
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
We will take a sleeping lock in later in this series, so this adds the
proper safeguards.
Change-Id: Iba7efcb690ad584a30ac31cfb7937889bab44e2e
Link: http://lkml.kernel.org/r/1479474236-4139-9-git-send-email-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 5803ed292e63a1bf00722d6655d0229794607183
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
We are going to use sleeping lock for freeing vmap. However some
vfree() users want to free memory from atomic (but not from interrupt)
context. For this we add vfree_atomic() - deferred variation of vfree()
which can be used in any atomic context (except NMIs).
[akpm@linux-foundation.org: tweak comment grammar]
[aryabinin@virtuozzo.com: use raw_cpu_ptr() instead of this_cpu_ptr()]
Link: http://lkml.kernel.org/r/1481553981-3856-1-git-send-email-aryabinin@virtuozzo.com
Link: http://lkml.kernel.org/r/1479474236-4139-5-git-send-email-hch@lst.de
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Jisheng Zhang <jszhang@marvell.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: bf22e37a641327e34681b7b6959d9646e3886770
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I5f67e939774da6e811f3a5180a6b0f5d31fbe32b
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Move the purge_lock synchronization to the callers, move the call to
purge_fragmented_blocks_allcpus at the beginning of the function to the
callers that need it, move the force_flush behavior to the caller that
needs it, and pass start and end by value instead of by reference.
No change in behavior.
Change-Id: I6344f3c1de50e6fe939e886edeca610d6b539365
Link: http://lkml.kernel.org/r/1479474236-4139-4-git-send-email-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 0574ecd141df28d573d4364adec59766ddf5f38d
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Just inline it into the only caller.
Change-Id: I5691805a6cec3e9e160b653551a99c6c998ff087
Link: http://lkml.kernel.org/r/1479474236-4139-3-git-send-email-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 9c3acf6043ac437ae0a45de4657ee700c3dc8850
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Patch series "reduce latency in __purge_vmap_area_lazy", v2.
This patch (of 10):
Sort out the long lock hold times in __purge_vmap_area_lazy. It is
based on a patch from Joel.
Inline free_unmap_vmap_area_noflush() it into the only caller.
Change-Id: I1cb90a5f4e14bae7b513da9cc672f2f8d06bfcfd
Link: http://lkml.kernel.org/r/1479474236-4139-2-git-send-email-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Dias <joaodias@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: c8eef01e2f98e09a6733f2acdc675b4cf87a22a1
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
When mixing lots of vmallocs and set_memory_*() (which calls
vm_unmap_aliases()) I encountered situations where the performance
degraded severely due to the walking of the entire vmap_area list each
invocation.
One simple improvement is to add the lazily freed vmap_area to a
separate lockless free list, such that we then avoid having to walk the
full list on each purge.
Change-Id: I489700962fc86d539a68b5af489dfa9da04dfaad
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Roman Pen <r.peniaev@gmail.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Roman Pen <r.peniaev@gmail.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Toshi Kani <toshi.kani@hp.com>
Cc: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 80c4bd7a5e4368b680e0aeb57050a1b06eb573d8
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
New changes to vfree makes it a sleepable function
which makes it an offense to call vfree from the
binder_deferred_func (via binder_deferred_release).
binder_deferred_func disables preemption for reducing
lock latencies, so to avoid the problem enable preemption
for the duration of vfree execution. vfree_atomic can't be
used as binder unmaps the buffer before doing free, and
vfree_atomic dereferences the to-be-freed address.
Change-Id: I093b37a6d049c7cbb599aeb05012b189b45b587b
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Currently PA to VA mapping is not working with existing
sequence. Correct the sequence as below:
- set DOMAIN_ATTR_EARLY_MAP attr to 1
- attach iommu
- perform mapping
- set DOMAIN_ATTR_EARLY_MAP to 0
Change-Id: Id9c430efde05eb6a683a41f10cbf216102d4fa23
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
There could be instances where the RCG configuration update or readback
could fail. Notify the caller of the failure. Add support to change
scope of mux_div_get_src_div() in order to use it globally.
Change-Id: Ica07c28cede695785db81697effcb40ab6b717d4
Signed-off-by: Amit Nischal <anischal@codeaurora.org>
Added mutex lock to query rt table function also to sync
with other ioctl calls in both ipa v2/v3.
Change-Id: I65d46c0ef28b5e6260c92473fd15e9763de20146
Acked-by: Ashok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
Pick proper app type for compressed input data port in
transcode loopback driver to support compressed input in
DSP loopback.
CRs-Fixed: 2061759
Change-Id: Ib2f66b467456787e08265a0da2bd85bb881a5d61
Signed-off-by: Siddartha Shaik <sshaik@codeaurora.org>
DSP loopback uses QUAT MI2S TX as source interface
so mixer control is updated for QUAT MI2S TX Format
to support compressed and pcm input data formats.
CRs-Fixed: 2061759
Change-Id: I8c283de767f938ae8f4e1180a9dffc79a1da7ff0
Signed-off-by: Siddartha Shaik <sshaik@codeaurora.org>
Maxim20010 buck regulator is used to provide the supply for
graphics rail. The programmable output voltage range is from
0.5V to 1.27V in 10mV steps.
CRs-Fixed: 2062515
Change-Id: I50d3fe4c89f412cda2b58b3f1f19086edcf10553
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
Enable Maxim20010 external buck regulator driver to provide the supply
for graphics rail on msm8996-auto boards.
CRs-Fixed: 2062515
Change-Id: I1e70f16c660de6d3d2a8c138a34157538c19f0f1
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>