Squashed update of kernel from 3.0.79 to 3.0.80
mmc: msm_sdcc: fix a type mismatch in msmsdccc_config_dma()

msmsdcc_prep_xfer() function returns a signed integer value but
caller function msmsdcc_config_dma() is storing this value in an unsigned
integer variable which is obviously not the correct thing to do.

CRs-Fixed: 476578
Change-Id: I39159e2f4f73c7f54de359cbe4faba5e902915ff
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
msm: kgsl: Don't consider active count if not in active state

Don't consider active_cnt variable if not already in ACTIVE state.
The active count variable does not necessarily exactly indicate the
number of open handles to GPU for switching power state. Hence,
only wait for active count to reach zero before switching to SUSPEND
state if, the current state is ACTIVE.

CRs-fixed: 483154
Change-Id: Ie025a1873cfb9237bdfba89204f4c2116549eba4
Signed-off-by: Harsh Vardhan Dwivedi <hdwivedi@codeaurora.org>
s6e63m0: new driver for the display!

ported from official kernel source of SGSII (SGH-T989)
ariesve: Restore original lcdc_gipo code
ariesve: less warning in board file!
Updated light sensor driver and display driver
light sensor changes:
updated driver from SGSII (SGH-T989)
added fix for zero value problem

display changes:
changed bl-gamma level conversion now is much better (taken from a more recent driver source of Note2, also to make it easier to adjust brightness sensor lux)
fixed max brightness problem
added one missing lowest brightness level (gamma20)
re-added acl cutoff from stock driver
ariesve: Some changes to gp4 voltage regulators to fix touchscreen voltage

These changes allow to prevent these errors when setting touchscreen voltage:
<3>[    0.063964] ldo10: requested voltage range [1800000, 1800000] does not fit within previously voted range: [2600000, 2600000]
<3>[    0.064086] oliver_tsp_ldo_on: vreg LDO2 set level failed (-22)

The touchscreen after getting this error uses the wrong voltage of
2600000 uV instead of 18000000 uV.

The regulator's core has been changed and the voltage range that doesn't
fit the previously set voltage range is not allowed, so we need to correct
the other occurrences where gp4 regulator has been registered.
ariesve: Some changes to the touchscreen power-on routine
ariesve: Moved the config_gpio_table method outside of the CONFIG_MSM_CAMERA block

This method is used by other drivers init methods
ariesve: Fixed some warnings reported during board compilation
ariesve: Initialize TV Encoder only if TV Out config option has been enabled
ariesve: Fixed display regulators init
ariesve: updated lcd regulator
video: Power management support on S6E63M0 display driver
ariesve: fixed double activation of the regulators of the display
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: Ic0dedbadd57ec4d9422b5e3a873243d0ffed51f7
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
msm: kgsl: Turn off the CP_DEBUG dynamic clock

The CP dynamic clock seems to be glitchy when the CP clocks are turned
back on after a power event. Turn off said dynamic clock control at
init time. The impact of leaving the dynamic clock control off is
negligible since the CP clock is only on when the CP is actually in
use.

CRs-fixed: 402119
CRs-fixed: 409253
CRs-fixed: 413224
Change-Id: Ic0dedbad783f8b911d9b57d1602d9b3976af1b3b
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
(cherry picked from commit c46218b49449c0b5518a07ac8e69205f6723ea0f)

Signed-off-by: Satish Kamuju <skamuj@codeaurora.org>
msm: kgsl: Add CP_WAIT_FOR_IDLE packet before updating timestamp

HW workaround to resolve MMU pagefault caused by memory
freeing early before GPU completes it.

This is race condition where timestamp is getting updated
and the event handler runs before the GPU actually got done
with the timestamp, hence freeing the buffer early while GPU
still not completed with it.

Signed-off-by: Anshuman Dani <adani@codeaurora.org>

Conflicts:

	drivers/gpu/msm/adreno_ringbuffer.c
Change-Id: I6d338d7dca680f57f2c39ed5a14381b261bf8bce

Signed-off-by: Vikram Orre <vorre@codeaurora.org>
(cherry picked from commit b72223c1830272e5d9bdcc10975ed8c4d90f9018)

Conflicts:

	drivers/gpu/msm/adreno_ringbuffer.c

Signed-off-by: Satish Kamuju <skamuj@codeaurora.org>
msm: kgsl: Add cache flush for A20x

Adding extra cache flush command to make sure that CP block
gets event from RB all the time to avoid race conditions because of
clock switches. this is to improve stability on 8x25 target.

Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>

Conflicts:

	drivers/gpu/msm/adreno_ringbuffer.c
Change-Id: Ie411be46fa166864073d35c50085a8f2506d0eb8

Signed-off-by: Vikram Orre <vorre@codeaurora.org>
(cherry picked from commit 4ab5849a194b31b58a397a28cd1a38751a06b360)

Signed-off-by: Satish Kamuju <skamuj@codeaurora.org>