msm_fb: display: Use spinlock instead of mutex in vsync timer handler

Use spinlock instead of mutex in vsync timer handler to avoid sleeping
from timer context through mutex locks

Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>
msm_fb: display: add spinlock to synchronize mdp irq enable/disable

To improve performance, UI push thread release mutex before blocked at
waiting for vsync to allow Video thread to be updated at same vsycn.
This also cause contention to enable/disable mdp irq.
Add spinlock to synchronize both threads and irq context.

Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
msm_fb: display: set flush bit at overlay_unset

set flush bit at overlay_unset to notify mdp blending engine to
pick up new configuration changes.

Signed-off-by: KUogee Hiseh <khsieh@codeaurora.org>
msm_fb: display: Fix writeback offset with correct fbnum

Fix writeback offset with correct fbnum value to avoid any
memory corruption with image buffers in use

CRs-Fixed: 290324
Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>

Conflicts:

	.gitignore

Change-Id: I6a401b4689060606d0b5b17fea4005ebca1bfab4
msm_fb: display: disable fill screen with blank on early suspend

Disable logic to fill framebuffer with black screen before early
suspend, this is causing slugish wipe off from top to bottom
animation on screen.
This logic is still needed for MDP3 because of hardware limitation.

CRs-Fixed: 298050
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
msm_fb: display: use spin_lock_irqsave before call disable_irq

disable_irq() will wait for irq handle to complete before disable
the specified irq. Therefore use spin_lock_irqsave() instead of
spin_lock() before call disable_irq() to avoid deadlock on same
spin lock.

CRs-fixed: 299938
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
msm_fb: display: Fix vsync GPIO for DSI command mode

Fix vsync GPIO 0 condition check for DSI command mode
to enable Tear check logic

CRs-Fixed: 298596
Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>
msm_fb: display: use mutex instead of spin lock to avoid deadlock

There has deadlock between mdp4_isr() and disable_irq() called by
LCDC thread. Disable_irq() will wait for mdp4_isr() to complete
before return. Meanwhile mdp4_isr() will try to acquire mdp_spin_lock
which had been acquired by lcdc thread before call disable_irq().
This patch replace spin lock with mutex to avoid deadlock from happening.

CRs-fixed: 301276
Signed-off-by: kuogee hsieh <khsieh@codeaurora.org>
msm_fb: display: Fix division by zero error in MDP downscale check

Fix division by zero error in MDP downscale validation by rejecting
destination rectangle width and height params with 0

Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>
msm_fb: display: Fix display driver init calls for auto-detection

Fix display driver init calls for auto-detection logic to
avoid initialization of panel drivers that are not selected for
loading through fastboot
msm-fb: display: ion framework support

Add support for the ION memory manager
to the framebuffer driver

Change-Id: If012dcdbbc71eb0f7d4d429ad4789b3276d34a58
Signed-off-by: Nagamalleswararao Ganji <nganji@codeaurora.org>
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>