msm: kgsl: Skip the entire command during fault recovery
During fault recovery the algorithm may choose to skip the faulting
command. To skip just one indirect buffer we have to rely on
CP_IB1_BASE but depending on where the fault happened the base could
already be pointing to the next buffer. This causes the code to skip
over the wrong buffer. There is no advantage to skipping just one
buffer vs the entire submission.

Change-Id: I28dc999b2156d05f7b5084df6bdd95c5b9308579
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
msm: kgsl: Policy change to skip entire command during fault recovery

During fault recovery change default policy to skip entire command instead
of skipping faulting indirect buffer.

Change-Id: I3c2d159dbb3f2523a05f4bcbf65195673e26c020
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
msm: kgsl: Cleanup the memory free list

Tighten up the memory free list code and remove the memory unused
debugfs file.  Outside of the cleanup the functional changes are
a) move the mutex to a spinlock for speed, and b) only return the
last entry in the list for given pid/gpu address combination.

Conflicts:
	drivers/gpu/msm/kgsl.c
	drivers/gpu/msm/kgsl.h
	drivers/gpu/msm/kgsl_debugfs.c

Change-Id: Ic0dedbad9595302e2b42de2807fa82c425d1717f
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
msm: ocmem: Add macro and region size information to ocmem region

Some targets support half sized macros in the last region. Previously,
for these regions, only half the macros were turned on, and the clients
could not access memory. Read the hardware register to check if the
target supports half sized macros and update the calculation to switch
memory power states.

Change-Id: Idb6e6b8c11b42d3e0a72fa27bd8c63e48282af97
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
msm: ocmem: Do not return error when debugfs is disabled

The ocmem driver probe fails, when debugfs is disabled,
as it cannot create a debugfs root node. Do not return
and error, so that ocmem driver can function even when
debugfs is disabled

CRs-Fixed: 548301
Change-Id: I9dca715e9317d481b0dee1c7275c86a10e3cdce1
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
msm: ocmem: Do not use data mover for clearing ocmem memory

In the non secure environment the data mover is used to clear
the ocmem memory. The ocmem driver no longer uses the data
mover for this operation.

Change-Id: I2dc4f421b1a1a81d3205bd57fe66092512e287aa
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
msm: ocmem: Serialize allocation requests only when necessary

Certain clients of ocmem always have exclusive regions set aside in
the OCMEM memory map. Allocation requests for such clients do not
have to wait for any pending evictions in progress to be completed
nor will trigger any new evictions and can be safely scheduled right
away.

CRs-Fixed: 599002
Change-Id: I54369bca9d26378a9aa70db83d35ab94866a3ff1
Signed-off-by: Naveen Ramaraj <nramaraj@codeaurora.org>
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
msm: ocmem: Call restore_sec_config() after every power collapse

As the QRIB is enabled, after every power collapse of ocmem, the
QRIB is reset to the maximum security state. Due to this the apps
processor cannot access the ocmem register space.

The restore_sec_config() scm call needs to be called before any
register is accessed after a power collapse to ensure that the
security configuration is restored. The clocks need to be turned
on before every call that is made into TZ to ensure that there
is no power collapse.

CRs-Fixed: 651324, 660089
Change-Id: Ieb6b635142057e219de29e811c93749f6500cec5
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
msm: subsystem_restart: Change the error ready log message

The error services interrupt log message appears as if it is
reporting an error. So, change it so that it does not appear so.

Change-Id: I84049af9d369d1c87547225813ec6cf1c4a66db5
Signed-off-by: Seemanta Dutta <seemanta@codeaurora.org>
msm: subsystem_restart: Correct state transition even in absence of PIL

In case the subsystem does not use the PIL framework, make sure
that when subsystem_get() is called, the state of the subsystem
is transitioned to SUBSYSTEM_ONLINE before returning success from
that API. Otherwise, the state would remain initialized to
SUBSYSTEM_OFFLINE even though the subsystem is up and running.

Change-Id: I4e608a2d9f9463c1b7d173080e1fcb4b98dc7083
Signed-off-by: Seemanta Dutta <seemanta@codeaurora.org>
Revert "msm_serial_hs: Fix race condition with BAM rx pipe"

This reverts commit 1de358d395cf2a832802dbdb4eb4906aa101ca18.
Revert "msm_serial_hs: vote for clocks in tty functions"

This reverts commit 2ac18d39efb4b962634691b6098b1290c39114bc.
Revert "msm_serial_hs: check the returned value of clock vote"

This reverts commit de5927bc5047a1c34cd6073c2c4b7a79059ec105.
Revert "msm_serial_hs: Fix the unbalanced clk_count"

This reverts commit fb6873449db8876ebd6c6f7002e67a1c38cdab4e.
Revert "msm_serial_hs: fix unbalanced clock vote during shutdown"

This reverts commit 15119e0d07aa2e60e92a60bcd65bd1ea08b8a1f4.
Revert "msm_serial_hs: fix unbalanced clock vote"

This reverts commit fb016c38b9791f154c2876248917762ca07486d3.
Revert "msm_serial_hs: check clk_state in set_mctrl() and fix unbalanced unvote"

This reverts commit 6184a120e2e5f633e8ff27a40e2a14628a89dc0e.
Revert "msm_serial_hs: Vote for clocks during tty close"

This reverts commit 38eff67fd01b47615913c814de7b6c20ec62fcc3.
msm_serial_hs: Configure UART RX gpio line as wakeup irq line

UART wakeup can be triggered by RX activity using a wakeup GPIO on the
UART RX pin. This change adds support for configuring the UART RX gpio
line as wakeup irq line.

CRs-Fixed: 482104
Change-Id: I775c17d4d36b08225b32063131473567c2d16f9c
Signed-off-by: Saket Saurabh <ssaurabh@codeaurora.org>
Signed-off-by: Ram Mohan Korukonda <rkorukon@codeaurora.org>
msm_serial_hs: Vote for clocks during tty close

While BT operation is in progress, it's possible for
client functions to explicitly turn off the
UART clocks without notifying TTY layer.  Then when
TTY layer try to access UART, L2 error happened because
of un-clocked registers.  Since there is no clear way
to notify clients to turn on clocks before TTY access
UART driver will implicilty turn on the clocks.

CRs-Fixed: 505225
Change-Id: Ia9958658465a6c0e5af66cd932e8e694cc12b78c
Signed-off-by: Naveen Kaje <nkaje@codeaurora.org>