msm: mdp: Disable early suspend only for the MDP driver

Early suspend is deprecated in the framework but disabling it
completely can affect other subsystems. Disabling only for the
MDP driver.

Change-Id: Ieb7eec19f0635b19b9a53287f6ea8c383b0d1280
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
msm: mdp: Disable early suspend locally

undefing at the header level could mess with other components.

Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
msm: scm-pas: Provide a strongly ordered buffer to the secure world

The secure world requires that the metadata-containing buffer
be strongly ordered. Use the dma_alloc_attrs API to obtain a
strongly ordered region for this purpose.

Bug: 10750953
Change-Id: I98e3efb2ca34f897d50b624524d74b34e263ff84
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Signed-off-by: Mekala Natarajan <mekalan@codeaurora.org>
msm: scm: Add scm_call_atomic3

Some drivers need to pass three arguments atomically. Add support
for it.

Change-Id: Id0f962400c5c4f721eef44069fc3db1779248ae3
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
msm: mdp: Revert changes for delaying commit for tiled video

This reverts commits 3ec662e7079cad581e1b6f13a386059b40fa237a and.
bb3d5cf6e59c86dc619332fad568430c737e7a45.
These commits cause corruption with dynamic resolution changes

Bug: 10192531
Change-Id: Id4cac438393e7f496de37d7649f7c61d55086c7c
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
msm: rotator: signal timeline when rotator prepare fails.

When rotator prepare fails, timeline is not signalled causing fence
timeout on the rotator release fence. This patch fixes the issue.

Change-Id: I6023393d768dbb1a0a9095bb1822ac504632ed64
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
kref: Implement kref_get_unless_zero v3

This function is intended to simplify locking around refcounting for
objects that can be looked up from a lookup structure, and which are
removed from that lookup structure in the object destructor.
Operations on such objects require at least a read lock around
lookup + kref_get, and a write lock around kref_put + remove from lookup
structure. Furthermore, RCU implementations become extremely tricky.
With a lookup followed by a kref_get_unless_zero *with return value check*
locking in the kref_put path can be deferred to the actual removal from
the lookup structure and RCU lookups become trivial.

v2: Formatting fixes.
v3: Invert the return value.

Change-Id: Ibcb524294c2cebe1d832e77714895822adc1c89a
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Git-commit: 4b20db3de8dab005b07c74161cb041db8c5ff3a7
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[shrenujb@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Shrenuj Bansal <shrenujb@codeaurora.org>
gpu: msm: Add new Adreno driver

* Temporary place for this.

Change-Id: I83b5d75fbd201c352d011ed43f21ebe3576e058c
msm: kgsl: Add separate GPU shader memory mapping

Add separate kernel memory mapping for GPU shader memory.
Previously, both the register and the shader memory were mapped
as one entity, with the mapping length being equal to combined
size of register memory and shader memory. Now, we separate the
shader memory mapping to help in cases of GPU devices where the
shader and register memory may not be adjacent. This helps to
dump the shader memory in the postmortem snapshot. By having a
separate mapping for shader memory, the snapshot dump routine
simply reads in the shader memory range specified and dumps.

Change-Id: I30e59dffe849fefcfbbaf0e5245cc1024ccedcb1
Signed-off-by: Harsh Vardhan Dwivedi <hdwivedi@codeaurora.org>
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>

msm: Fix mem leak when using per-process pages

When GPU is using per process page tables the code creates
a new page table (domain) for every process. There is also
some associated structures allocated to keep track of each
domain. However, when cleaning up the memory used for a page
table only the domain is freed and not the associated structures.

Add a function to allow a client to properly unregister a domain
which will free all the memory associated with a domain.
Call the unregister function from kgsl driver code.

CRs-fixed: 480801
Change-Id: I9704c12c66a95ce66cea63b619bbdbafa0f1eac8
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>

Conflicts:
	arch/arm/mach-msm/iommu_domains.c

msm: kgsl: Remove nap_allowed variable and functionality

Allow NAP on all targets.  The splitting of the clock enable
and disable calls into enable/prepare and disable/unprepare
allows us to safely make this change for all targets.

Change-Id: I03d909b86aef33631a887d159cf0a807a6d0ae75
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
iommu/core: pass a user-provided token to fault handlers

Sometimes a single IOMMU user may have to deal with several
different IOMMU devices (e.g. remoteproc).

When an IOMMU fault happens, such users have to regain their
context in order to deal with the fault.

Users can't use the private fields of neither the iommu_domain nor
the IOMMU device, because those are already used by the IOMMU core
and low level driver (respectively).

This patch just simply allows users to pass a private token (most
notably their own context pointer) to iommu_set_fault_handler(),
and then makes sure it is provided back to the users whenever
an IOMMU fault happens.

The patch also adopts remoteproc to the new fault handling
interface, but the real functionality using this (recovery of
remote processors) will only be added later in a subsequent patch
set.

Change-Id: Ic04659686e72838a0db518e9303dd037191e3879
Cc: Fernando Guzman Lugo <fernando.lugo@ti.com>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
[ohaugan@codeaurora.org: Resolved compilation and merge issues]
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>

Conflicts:
	drivers/video/msm/mdss/mdss_mdp.c
ARM: Add support for 64 bit register reads/writes

Add macros to read and write to 64 bit registers.

Change-Id: Id45d4086aa148ba96df3987c3341c133f1c56541
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>

Conflicts:
	arch/arm/include/asm/io.h
gpu: msm: remove adreno_coresight

* We have no support for this.

Change-Id: Iad1b694f87f765c3389f2278cdec434be436271f
m7: build BCMDHD into kernel

Change-Id: Ia293caacf6bbaca97828ca8353f4003fa5c021fb
m7: disable module loading

Change-Id: I4a77f9100d57fef5446e56b2407fa7236856a6ef
dlx: Increase MM heap size for smooth streaming

Our version of:

commit b177b0d25f882df8d88ca511f7e083d6348f5c9d
Author: Steve Kondik <shade@chemlab.org>
Date:   Tue Nov 26 15:01:32 2013 -0800

    m7: Increase MM heap side for smooth streaming

    Change-Id: If3d846a4b28a0b990e40269ce38fc4b5022766ed

Change-Id: I610b08e764fd37c9fa3d03971d0a9137970399aa
dlx: Update based on the HTC One GE commit

Mirror a subset of the board changes done for the M7 in

commit d9085c6f03c5885bf5d63ceccdf69b3070b0c386
Author: Ethan Chen <intervigil@gmail.com>
Date:   Mon Nov 25 16:52:27 2013 -0800

    misc: update from HTC One Google Edition source

    HTC kernel version: m7-kk-3.4.10-17db3b4

    Change-Id: Id63c6e0a94dff90d0a50daab33a745a8e2069a00

Change-Id: I6f25032e7e10e28ed3adea176b8ae7577a7fa9e8
dlx: Add separate GPU shader memory mapping

Add the dlx board changes for:

commit f62ab60b86be961e62186963a99cf1967153c186
Author: Carter Cooper <ccooper@codeaurora.org>
Date:   Wed Jun 26 15:19:30 2013 -0600

    msm: kgsl: Add separate GPU shader memory mapping

Change-Id: I2e00b1860720a5bf12b0c8e746c6cafac899d0fd
dlx: Regenerate defconfig

Change-Id: I858f882ac3278b807d3bac4d6b1e8f0d583c4b55
dlx: Mirror changes made to the M7 defconfig post HTC One merge

Change-Id: If2c383a1d3fddf82c5fb3ee5629536213b8f344b
dlx: Build BCMDHD into kernel

Change-Id: Ide7955970e26366e1f78ebedf9d049539e70c4f4