Revert "add some things to msm_fb, turn on debugging"

This reverts commit 1eec8675719f3d7723f3e0d6986d267d907e6709.
Revert "update powersuspend to 1.6 & fix msm_fb define"

This reverts commit 9a9e90733998635e7d431c9090341900f6800038.
Revert "powersuspend/lcd_notify: moved hooking functions from mipi_lgit into msm_fb."

This reverts commit 72021559923cad94be3033983ca4cae4cc7f8b38.
update version to 90u-a6
mfd: pm8821-core: fix a potential NULL dereference

Null pointer of pmic may be dereferenced for pmic->irq_chip.

Change-Id: I2751038a7e8a54726078f2f09e4e91d162b74386
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
CPU BOOST: diactivate all sync/hotplug and others. it's going crazy.

*I have monitored with debug on. and it's setting input freq without
and screen touch, it's very fast, but actual freq is locked at min
freq to 1.7Ghz without any need. i have apen app, a clock....
so it's ticking... and min freq locked to 1.7Ghz non stop every
1~3sec. WHY do i need this??? battery sucked away...

when my kernel boot, it's will set the freq for input boost.
and it's working good, when i touch the screen freq is boosted
as expected. then released.

All i need right now from cpu boost driver.

Conflicts:
	drivers/cpufreq/cpu-boost.c
qpnp-rtc: clear alarm register when rtc irq is disabled

The rtc alarm register should be cleared when the rtc irq is
disabled

Signed-off-by: Xiaocheng Li <lix@codeaurora.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
netfilter: Fix Build Error with -ffast-math

Change-Id: I8ac8bea95b3247814be3395edf90d58cd705b6fd
credit: @Cl3Kener
ARM: 7858/1: mm: make UACCESS_WITH_MEMCPY huge page aware

The memory pinning code in uaccess_with_memcpy.c does not check
for HugeTLB or THP pmds, and will enter an infinite loop should
a __copy_to_user or __clear_user occur against a huge page.

This patch adds detection code for huge pages to pin_page_for_write.
As this code can be executed in a fast path it refers to the actual
pmds rather than the vma. If a HugeTLB or THP is found (they have
the same pmd representation on ARM), the page table spinlock is
taken to prevent modification whilst the page is pinned.

On ARM, huge pages are only represented as pmds, thus no huge pud
checks are performed. (For huge puds one would lock the page table
in a similar manner as in the pmd case).

Two helper functions are introduced; pmd_thp_or_huge will check
whether or not a page is huge or transparent huge (which have the
same pmd layout on ARM), and pmd_hugewillfault will detect whether
or not a page fault will occur on write to the page.

Running the following test (with the chunking from read_zero
removed):
 $ dd if=/dev/zero of=/dev/null bs=10M count=1024
Gave:  2.3 GB/s backed by normal pages,
       2.9 GB/s backed by huge pages,
       5.1 GB/s backed by huge pages, with page mask=HPAGE_MASK.

After some discussion, it was decided not to adopt the HPAGE_MASK,
as this would have a significant detrimental effect on the overall
system latency due to page_table_lock being held for too long.
This could be revisited if split huge page locks are adopted.

Signed-off-by: Steve Capper <steve.capper@linaro.org>
Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Conflicts:
	arch/arm/include/asm/pgtable-2level.h
	arch/arm/include/asm/pgtable-3level.h
ARM: 7666/1: decompressor: add -mno-single-pic-base for building the decompressor

Before jumping to (position independent) C-code from the decompressor's
assembler world we set-up the C environment. This setup currently does not
set r9, which for arm-none-uclinux-uclibceabi toolchains is by default
expected to be the PIC offset base register (IE should point to the
beginning of the GOT).

Currently, therefore, in order to build working kernels that use the
decompressor it is necessary to use an arm-linux-gnueabi toolchain, or
similar. uClinux toolchains cause a prefetch abort to occur at the beginning
of the decompress_kernel function.

This patch allows uClinux toolchains to build bootable zImages by forcing
the -mno-single-pic-base option, which ensures that the location of the GOT
is re-derived each time it is required, and r9 becomes free for use as a
general purpose register.

This has a small (4% in instruction terms) advantage over the alternative of
setting r9 to point to the GOT before calling into the C-world.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ARM: 8011/1: ARM hibernation / suspend-to-disk

Enable hibernation for ARM architectures and provide ARM
architecture specific calls used during hibernation.

The swsusp hibernation framework depends on the
platform first having functional suspend/resume.

Then, in order to enable hibernation on a given platform, a
platform_hibernation_ops structure may need to be registered with
the system in order to save/restore any SoC-specific / cpu specific
state needing (re)init over a suspend-to-disk/resume-from-disk cycle.

For example:

     - "secure" SoCs that have different sets of control registers
       and/or different CR reg access patterns.

     - SoCs with L2 caches as the activation sequence there is
       SoC-dependent; a full off-on cycle for L2 is not done
       by the hibernation support code.

     - SoCs requiring steps on wakeup _before_ the "generic" parts
       done by cpu_suspend / cpu_resume can work correctly.

     - SoCs having persistent state which is maintained during suspend
       and resume, but will be lost during the power off cycle after
       suspend-to-disk.

This is a rebase/rework of Frank Hofmann's v5 hibernation patchset.

Acked-by: Russ Dill <Russ.Dill@ti.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Signed-off-by: Sebastian Capella <sebastian.capella@linaro.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
[fixed duplicate virt_to_pfn() definition --rmk]
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Conflicts:
	arch/arm/kernel/Makefile
	include/linux/suspend.h
asm-generic: rwsem: ensure sem->cnt is only accessed via atomic_long_*

The asm-generic rwsem implementation directly acceses sem->cnt when
performing a __down_read_trylock operation. Whilst this is probably safe
on all architectures, we should stick to the atomic_long_* API and use
atomic_long_read instead.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
asm-generic: rwsem: de-PPCify rwsem.h

asm-generic/rwsem.h used to live under arch/powerpc. During its
liberation to common code, a few references to its former home where
preserved, in particular the definition of RWSEM_ACTIVE_MASK is
predicated on CONFIG_PPC64.

This patch updates the ifdefs and comments to architecturally neutral
versions.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
rwsem: add rwsem_is_contended

Btrfs needs a simple way to know if it needs to let go of it's read lock on a
rwsem.  Introduce rwsem_is_contended to check to see if there are any waiters on
this rwsem currently.  This is just a hueristic, it is meant to be light and not
100% accurate and called by somebody already holding on to the rwsem in either
read or write.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <clm@fb.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
ARM: proc: Add Krait proc info

Add processor info for the Qualcomm, Inc. Krait family of
processors, to use the generic ARMv7 initialisation
procedure but explicitly enable the IDIV hardware
capability flag.

Change-Id: I080f60189fada2e4f87c79c6b8ef522cdc070759
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
msm: sps: adapt to clock API change

With the change in clock driver, clk_get() can return -EPROBE_DEFER even
when the clock is actually present in HW. Thus, we need to return
-EPROBE_DEFER in SPS driver probe function if clk_get() fails.

Change-Id: Ia1b9f18425ca5432f4a56419adf142f2674ce64a
Signed-off-by: Yan He <yanhe@codeaurora.org>
msm: sps: improve BAM inactivity timer function

1> Add the support for BAM global inactivity timer which is a new feature
in B family.
2> There is an update that changes the time unit of the inactivity timer
counter from 0.1ms to 0.125ms. Thus, we adjust the parameter in SW driver
for this update.
3> Inactivity timer timeout interrupt will become a new type of BAM global
interrupts, and it is a normal interrupt different from other BAM global
error interrupts. Thus, change the log level for callback message from INFO
to DEBUG.
4> Change timer result argument of inactivity timer API to an optional one
for client drivers.

Change-Id: If223ef311f0393f2f2243f6b8a862fe760ff5214
Signed-off-by: Yan He <yanhe@codeaurora.org>
msm: sps: remove the address checking for descriptors

0x0 is a valid physical address for drivers to use. Thus, remove
the checking of physical address for descriptors.

Change-Id: I19b8e215a4538ec0a9b7def505f9577e204c7730
Signed-off-by: Yan He <yanhe@codeaurora.org>
msm: sps: enable BAM DMA client to control BAM DMA clock

For power saving reason, SPS driver will turn off the clock of
BAM DMA after the initial configuration. A new API is provided
to BAM DMA clients to vote for or relinquish BAM DMA clock when
they start/stop using BAM DMA.

Change-Id: I03f8a6cfa19c1722ca4e92e0785ca309fdd10ba2
Signed-off-by: Yan He <yanhe@codeaurora.org>
msm: sps: turn off BAM DMA clock after initial config

For power saving, SPS driver will turn off BAM DMA clock after the
initial configuration of BAM DMA. The clients of BAM DMA will vote
for the clock when BAM DMA is used.

Change-Id: I388a21cff3c619ef49705a064d7d5ef760fa9ef8
Signed-off-by: Yan He <yanhe@codeaurora.org>