Revert "IKHSS7-22812: MFD clock on block VDD min in suspend"

This reverts commit 13b332b0306a7e07ce3dcbe792ea61ed86327543.
Revert "IKHSS7-26230 - Memory leak in mdp driver"

This reverts commit 7cf67040d261d03f3ac1a2077468af335e4fd59c.
msm_fb: display: vsync driven screen update

This patch will queue multiply surfaces and commit those
surfaces into mdp at same instance so that surfaces will
be blended and displayed at same time. Hardware vsync event
is deliver to frame work at user space via uevent. Both
queue and commit are controlled by frame work and
synchonized with vsync event. Therefore frame rate will
match with vsync rate.

Change-Id: If630a6d94fd38483ee313f575b1a71ed8bd65a52
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>

Conflicts:
	drivers/video/msm/mdp4.h
	drivers/video/msm/mdp4_overlay.c
	drivers/video/msm/mdp4_overlay_dsi_cmd.c
	drivers/video/msm/mdp4_overlay_dsi_video.c
	drivers/video/msm/mdp4_overlay_dtv.c
	drivers/video/msm/mdp4_util.c
	drivers/video/msm/mipi_dsi.c
	drivers/video/msm/mipi_dsi_host.c
	include/linux/msm_mdp.h
msm_fb: display: add out of range check for display sizes

MDP pipe or mixer size registers have 12-bit number, so boundary
checks are needed for those parameters. If not, input req sizes could
be very large 32 bit unsigned numbers, e.g. 0xffffffff, unsigned
operations may have overflow to pass all later checks, causing MDP
underruns or hang issues.

CRs-fixed: 380469
Change-Id: I096d7022ede21d54266b46a140782ab0348dd54b
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Signed-off-by: Siddhartha <agrawals@codeaurora.org>
msm_fb: display: vsync driven screen update II

Fix whitespace issues from the patch titled
msm_fb: display: vsync driven screen update

Change-Id: I96bf0210c20667486e48f5e20b7525cade098020
Signed-off-by: Siddhartha <agrawals@codeaurora.org>

Conflicts:
	drivers/video/msm/mipi_dsi.c
msm_fb: display:  free writeback buffer at correct time

When mdp pipe is freed at end of video play back, Writeback
buffer is freed while mdp still fetchs data from it. This cause
system crashed and blue screen shows on screen. This patch
will free writeback buffer at correct time.

Change-Id: I46a5031c13d86f943d6604713e1841b482dffe96
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
msm_fb: display: enable MDP interrupts base on panel interface

Enable necessary MDP interrupts base on panel to avoid
triggering dma_s isr handler.

Crs-fixed: 331668
Change-Id: I139a6193338a1b0a7c9cc7869e3ea1b3f9a65c4d
Signed-off-by: kuogee hsieh <khsieh@codeaurora.org>
Signed-off-by: Siddhartha <agrawals@codeaurora.org>
video: msm: Add user-defined backlight scaling

Add method for scaling backlight based off of a user provided ratio and
minimum level for the scaling to be applied.

Change-Id: I494bdd4545e9e02602faa01bed820120cd96298f
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
(cherry picked from commit f0fd8e7323ea0f60539918528a4cfa1edb39b828)
cy8c_ts: Set input property bit to indicate a direct input device

Prop bit is checked in userspace and must be set in
driver in order to be recognized correctly, since it defaults
to mouse pointer.

Change-Id: Ifbd7ffe6633860ab3858cf2b3465d593724c5c64
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
msm: compilation fixes for gcc 4.6

These changes are required to compile successfully with
gcc version 4.6

Change-Id: Iedfde0c9d45c973588c17773508758773e5d4fab
Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
video: msm: wfd: Add turbo mode support

Add support for userspace to push the video core clock to maximum
supported by hardware.

Change-Id: I47295d0fc67d32302312600a90359be23e3fc2c2
CRs-Fixed: 361108
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
video: msm: wfd: Send signal HDMI observer to mirror on  FB2.

 - Send KOBJ_ONLINE, KOBJ_OFFLINE events to HDMI observer
   to mirror on  FB2.

This reverts commit 4102d704243cf0ff297cdbe8d5b731da4c0bb9d5.

Change-Id: Ie5f0c4528ee43edf5ff8145520723a8095c0f542
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
video: msm: wfd: Delay fill_buffer until START_DONE

VCD requires we do not give any output buffers to be given until
START_DONE is received. In the case that buffers are given, it
introduces race conditions in the vidc with respect to the SPS/PPS
buffer, which vidc assumes to be present on the first fill_buffer but
actually isn't present until START_DONE.

Change-Id: Ie4dec3ed41e0f248175fb7d9719b458d3b699539
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
mach: increase camera heap size to 66 MB

In order to support full size ZSL feature on 8960, we need a
total of 120 MB. This change increases the camera EBI heap size
to 66 MB, which combined with 54MB from SMI gives us
120MB of carved out memory.

Change-Id: Id0e3adb7cae4f209d061328526ecc7143371fcfe
Signed-off-by: Ankit Premrajka <ankitp@codeaurora.org>
Signed-off-by: Roja Rani Yarubandi <rojay@codeaurora.org>
msm: compile v4l2 files for 8x60.

Change-Id: I9484318bdca498186ebcccb34be222c42f7a947b
Signed-off-by: Ankit Premrajka <ankitp@codeaurora.org>
(cherry picked from commit 872130ed749c3109d15d32b31c7b11b85c97cb31)

Signed-off-by: Roja Rani Yarubandi <rojay@codeaurora.org>
Signed-off-by: Suresh Vankadara <svankada@codeaurora.org>
msm: Use immediate operations instead of PC-relative loads

Use immediate operations for creating constants in
__enable_mmu to avoid a situation where the constant area
may not have been fully mapped by the initial identity
mapping.

CRs-Fixed: 375963
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
(cherry picked from commit c00dfe2cd0edb8d891261e7c3f24a50ccd233d17)

Change-Id: Ia607d5580f5ad9b26aff40ad4ff6f3a8f821283c
Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
Bluetooth : Ignore incomming events when the hci device is down

In error conditions Adapter state machine via Bluez tries to reset
the hci device, during that in some rare scenario if some pending event
comes from riva, the command complete apis tries to access some already
freed memory in reset sequence.

CRs-fixed: 369658
Signed-off-by: Bhasker Neti <bneti@codeaurora.org>
(cherry picked from commit 6f4ceb1f8588aec11b4d9380cd328d0008c8d167)

Signed-off-by: Ramakrishna Prasad N <crpn@codeaurora.org>
(cherry picked from commit d686446400fd0a5645ff2d1e1b9f0249748ce5f8)

Signed-off-by: Ramakrishna Prasad N <crpn@codeaurora.org>
(cherry picked from commit 69c592dd2a4b3ea95fe82970737bbbd2da8588b7)

Change-Id: Ic4cb65d405a4928b5a45aaad9c1d8ad1f6e67907
Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
cpufreq: Fix sysfs deadlock with concurrent hotplug/frequency switch

Running one program that continuously hotplugs and replugs a cpu
concurrently with another program that continuously writes to the
scaling_set_speed node eventually deadlocks with:

=============================================
[ INFO: possible recursive locking detected ]
3.4.0 #37 Tainted: G        W
---------------------------------------------
filemonkey/122 is trying to acquire lock:
 (s_active#13){++++.+}, at: [<c01a3d28>] sysfs_remove_dir+0x9c/0xb4

but task is already holding lock:
 (s_active#13){++++.+}, at: [<c01a22f0>] sysfs_write_file+0xe8/0x140

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(s_active#13);
  lock(s_active#13);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

2 locks held by filemonkey/122:
 #0:  (&buffer->mutex){+.+.+.}, at: [<c01a2230>] sysfs_write_file+0x28/0x140
 #1:  (s_active#13){++++.+}, at: [<c01a22f0>] sysfs_write_file+0xe8/0x140

stack backtrace:
[<c0014fcc>] (unwind_backtrace+0x0/0x120) from [<c00ca600>] (validate_chain+0x6f8/0x1054)
[<c00ca600>] (validate_chain+0x6f8/0x1054) from [<c00cb778>] (__lock_acquire+0x81c/0x8d8)
[<c00cb778>] (__lock_acquire+0x81c/0x8d8) from [<c00cb9c0>] (lock_acquire+0x18c/0x1e8)
[<c00cb9c0>] (lock_acquire+0x18c/0x1e8) from [<c01a3ba8>] (sysfs_addrm_finish+0xd0/0x180)
[<c01a3ba8>] (sysfs_addrm_finish+0xd0/0x180) from [<c01a3d28>] (sysfs_remove_dir+0x9c/0xb4)
[<c01a3d28>] (sysfs_remove_dir+0x9c/0xb4) from [<c02d0e5c>] (kobject_del+0x10/0x38)
[<c02d0e5c>] (kobject_del+0x10/0x38) from [<c02d0f74>] (kobject_release+0xf0/0x194)
[<c02d0f74>] (kobject_release+0xf0/0x194) from [<c0565a98>] (cpufreq_cpu_put+0xc/0x24)
[<c0565a98>] (cpufreq_cpu_put+0xc/0x24) from [<c05683f0>] (store+0x6c/0x74)
[<c05683f0>] (store+0x6c/0x74) from [<c01a2314>] (sysfs_write_file+0x10c/0x140)
[<c01a2314>] (sysfs_write_file+0x10c/0x140) from [<c014af44>] (vfs_write+0xb0/0x128)
[<c014af44>] (vfs_write+0xb0/0x128) from [<c014b06c>] (sys_write+0x3c/0x68)
[<c014b06c>] (sys_write+0x3c/0x68) from [<c000e0e0>] (ret_fast_syscall+0x0/0x3c)

This is because store() in cpufreq.c indirectly grabs a kobject
with kobject_get() and is the last one to call kobject_put()
indirectly via cpufreq_cpu_put().

Fix this deadlock by introducing two new functions,
cpufreq_cpu_get_sysfs() and cpufreq_cpu_put_sysfs() which do the
same thing as cpufreq_cpu_{get,put}() but don't grab the kobject.

CRs-fixed: 366560

Signed-off-by: Ramakrishna Prasad N <crpn@codeaurora.org>
(cherry picked from commit ddda0cf21dc6cb487aacd81fdb1a7343d2746d94)

Change-Id: I6ac89789e89099cff315d7a02de216423376b7f7
Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
diag: Add missing SSID range

OEMs use SSID in a specific range. Recently DIAG changed the mask
update algorithm and this range was missed as its not used internally.
This change adds it back.

CRs-Fixed: 359379
Signed-off-by: Shalabh Jain <shalabhj@codeaurora.org>
(cherry picked from commit 44b79b7bb5aeeaa2c956ce0fd1e605d840c55a73)

Conflicts:

	include/linux/diagchar.h

Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
(cherry picked from commit 2bfe8e5272130f99fe2f1a8c625baea557bca883)

Change-Id: I62d9c7b0a78d3c76e826ab7724e922ea524acd7b
Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
msm: bam_dmux: Add locking around platform device calls

The channel state is used to determine if a platform device has been
registered on a particular channel.  In the case of a subsystem restart
while a channel is being opened, the subsystem restart can occur between
the channel state being set to opened and the platform device being
added.  This will result in the subsystem restart code seeing that the
channel is open and attempting to remove a platform device that has been
added.

This change adds mutex protection around the channel state updates and
the platform device add/remove calls to handle any race conditions.

CRs-Fixed: 378060
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
(cherry picked from commit a623da8bda62e95acf5991905af2847e8e326e09)

Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
(cherry picked from commit 18111f0391832697ed0aaa1212169319328e6a0e)

Change-Id: Id113a056c7955956215a4e8d10355b16e358d9df
Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>