msm: kgsl: Add dispatcher and server-side-sync support

Add dispatcher and server-side-sync support from the msm-3.10 branch
featuring these commits:

	msm: kgsl: Add a command dispatcher to manage the ringbuffer
	msm: kgsl: Implement KGSL fault tolerance policy in the dispatcher
	msm: kgsl: Don't process events if the timestamp hasn't changed
	msm: kgsl: Add a new command submission API
	msm: kgsl: add kgsl_sync_fence_waiter for server side sync
	msm: kgsl: Add support for KGSL_CMD_SYNCPOINT_TYPE_FENCE
	msm: kgsl: Add the event callback symbol to GPU event tracepoints
	msm: kgsl: Add a ftrace event for adreno context switches
	msm: kgsl: Try to run soft reset on all targets that support it
	msm: kgsl: Check for idle in the fault detection timer
	msm: kgsl: Improve the dispatcher issuecmds loop
	kref: Implement kref_get_unless_zero v3
	msm: kgsl: fix a race condition when calling kref_put
	msm: kgsl: Check the return value of _kgsl_context_get()
	msm: kgsl: Hold the plist spinlock to protect nodes
	msm: kgsl: Hold a reference to process private when creating context
	msm: kgsl: Do not delete command batch unless it's retired
	msm: kgsl: Check whether context is detached before updating timestamp
	msm: kgsl: Free the cmdbatch when it fails to be requeued
	msm: kgsl: Clear dispatcher fault bit if inflight commands are 0
	msm: kgsl: Do not register additional IOMMU faults
	msm: kgsl: Do not overwrite dispatcher fault
	msm: kgsl: Define new fault type for IOMMU fault
	msm: kgsl: On IOMMU fault force a hard reset
	msm: kgsl: Max the expired timestamp of invalidated context
	msm: kgsl: Do not allow events with bogus timestamp
	msm: kgsl: Immediately set the fault bit on a pagefault
	msm: kgsl: Set FSR to 0 on IOMMU pagefault
	msm: kgsl: Do not call dispatcher fault handler if already called
	msm: kgsl: Only skip IB for faulting context
	msm: kgsl: Retry hard reset more than once on failure
	msm: kgsl: Wake up threads after context detach
	msm: kgsl: Don't pause the dispatcher in adreno_dispatcher_stop
	msm: kgsl: Fix draw context fair scheduling in the dispatcher
	msm: kgsl: Return -EPROTO in certain functions if the GPU has faulted
	msm: kgsl: GPU pagefault policy change to not stall on pagefault
	msm: kgsl: A few quick cleanups to improve stability
	msm: kgsl: Return -ENOTTY for legacy waittimestamp calls
	msm: kgsl Check NULL return from kgsl_get_device_from_dev
	msm: kgsl: use kgsl_context_detached() in adreno_dispatcher_queue_cmd()
	msm: kgsl: remove KGSL_STATE_DUMP_AND_FT
	msm: kgsl: Re-add the irq_last functionality
	msm: kgsl: Allow sync points to be created on the submitter's context
	msm: kgsl: Don't repeatedly call adreno_stop during reset
	msm: kgsl:  Add an helper function to clear the GPU fault after reset

Change-Id: Ic0dedbad5ae48dddad1e5f76875b0a8604017cc3
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
32 files changed