msm: display: add more checking to ensure display is idle

Before execute operation on display, make sure it is complete idle
Because non-blocking display update has been introduced, need make sure
display update has finished in all entrances except the ones for
initialization.

Change-Id: I0660080262b7e5895f5f558c0a9f71aa84b9aa99
Signed-off-by: Ken Zhang <kenz@codeaurora.org>
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
msm: display: display idle checking update

msm_fb_blank_sub might be called for UNBLANK from
display update work queue, which is at commit state.
Idle detection is invalid in this situation
Add detection for external snd earlyuspend/resume interface.

Signed-off-by: Ken Zhang <kenz@codeaurora.org>
kgsl: Update kgsl upto

commit 815d4a7038cde3d81c8288cc85032dc94803590a
Author: Vinay Roy <vroy@codeaurora.org>
Date:   Tue Apr 16 16:11:20 2013 +0530

    msm: kgsl: Properly record the size of the sglist in the memdesc

    It was possible to fail out of kgsl_sharedmem_alloc after a sglist was
    allocated but before we saved the size of the allocation which caused
    problems when the sglist was freed during cleanup.

    CRs-fixed: 464289
    Change-Id: I597c671b7a69d2b7930d426884cdfb6799714763
    Signed-off-by: Vinay Roy <vroy@codeaurora.org>
msm: kgsl: Check for valid pointer before dereferencing

Check to make sure that there is a valid context pointer before
dereferencing it when adding commands to the ringbuffer.

Change-Id: Icf9824de8f62a28cdeeef4378246d9fb334d39fa
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
msm: kgsl: Add GFP_NORETRY to the page_alloc flags and handle
 errors

The most important thing for the memory allocator is to not crash
or otherwise behave badly during low memory situations. Adding
GFP_NORETRY keeps the OOM killer from being invoked.

Change-Id: Ic0dedbad00de1fc840bbfe91002d2fcb2730ebfc
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
msm: kgsl: Add support for Android's sync point framework

The Android sync point framework will replace the synchronization
previously implemented by genlock. This change implements the KGSL
component of the sync point framework by creating a fence that is
automatically signaled by KGSL when it's timestamp expires. The
fence FD is returned to the user driver so that another process
can wait for the sync point.

Change-Id: Ifee38dfde00e551f3524f7a37833938dcdb64905
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
msm: kgsl: implement sync compare callback

The compare callback is required to test the order that
sync pts will signal. Failing to implement the compare
callback results in kernel panics for some use cases.

Change-Id: Ibea1497c12fd8cc66087ff52d3709a07793f215f
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
msm: kgsl: remove unnecessary definitions for dup and has_signaled

The dup and has_signaled functions are not called outside kgsl_sync.c

Change-Id: I69d746f4e4acae9b4f5a3a2cac79ac812e5eff5c
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
msm: kgsl: initialize kgsl_sync_timeline_ops properly

Signed-off-by: Iliyan Malchev <malchev@google.com>
msm: display: Increase timeout value for fence waiting

In some benchmark use case, graphic engine is extremely
busy, need increase the fence waiting timeout value.

Signed-off-by: Ken Zhang <kenz@codeaurora.org>
msm: display: check get_unused_fd_flags return val

Not checking the error code, which might be negative, will cause us to wrongly
reference fdt[fd] by using the error code, causing kernel panic in fd_install.

Change-Id: I1f8e68e74bdbdd5b81bc3450f7d93b5cd96c9439
Signed-off-by: Iliyan Malchev <malchev@google.com>

Conflicts:

	drivers/video/msm/msm_fb.c
Revert "msm: kgsl: remove unnecessary definitions for dup and has_signaled"

This reverts commit 4ebbfb9fc78f3bbe7802cf9239081af2af5dae1e.
msm_fb: display: consolidate overlay_commit and
 display_commit

This patch consolidate overlay_commit into display_commit to
support iommu buffer be used as frame buffer

Change-Id: Idc33a340b7cf199c8e2f5e7f09b901d1502fac9e
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
msm_fb: display: Consolidate commit ioctls

Overlay commit and display commit were two separate
ioctls doing similar things. This change consolidates
the two into one display commit ioctl. With this, we
can use the RGB0 pipe with an IOMMU framebuffer.

Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>

Conflicts:

	drivers/video/msm/mdp4.h
	drivers/video/msm/mdp4_overlay.c
	drivers/video/msm/msm_fb.c
	include/linux/msm_mdp.h
msm_fb: display: update var in display commit

Need the value of var in display commit to update the double buffers.
If not, double buffering doesn't work in minui (eg. recovery and off-charger
mode)

Change-Id: I1fba52243cc781f18742131759245911d32c9b18