msm_otg: Fix LPM issue on removing Host cable

Device is not entering into LPM on removing Host Cable.
msm_otg_suspend is aborted due to inputs bit is set with
A_BUS_REQ which is check before going ahead and preparing
device for clock OFF and LPM state.

A_BUS_REQ is being set from msm_otg_set_suspend() called
from ehci runtime resume when removing Micro A cable.
Fix side effect of commit 572092fed ("USB: msm_otg: Always
update state machine inputs during bus suspend/resume") by
clearing A_BUS_REQ bit with inputs when removing charger
work from OTG_STATE_B_IDLE.

CRs-Fixed: 444160
Change-Id: I5325d2965ecc754ff54b297047603acda5801aae
Signed-off-by: Mayank Rana <mrana@codeaurora.org>

Conflicts:
	drivers/usb/otg/msm_otg.c
msm: board-8930: Keep the GPU power rail on when display is on

Do not allow the GPU to go into SLUMBER while the display is still
on. This fixes issues seen on 8930 when this feature is enabled.

Change-Id: I8c76d1297c2215987bdd493cb9f04d45d9ec87dc
Signed-off-by: Lynus Vaz <lvaz@codeaurora.org>
msm: kgsl: Avoid NULL pointer in adreno setstate functions

Make sure the specified context_id returns a valid context
in adreno_gpummu_setstate and adreno_iommu_setstate and
silently return if it doesn't.

CRs-Fixed: 439367
Change-Id: Ic0dedbad1a91b53f19782b50380bd36842614351
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
trace: cpu_freq_switch: Add profiler for CPU frequency switch times

It is sometimes useful to profile how long CPU frequency switches
take, and traces have already been added for this purpose. Make
use of these and the trace_stat framework to generate statistical
histograms of frequency switch times in the following format:

 # cat /sys/kernel/debug/tracing/trace_stat/cpu_freq_switch
  CPU START_KHZ  END_KHZ COUNT AVG_US MIN_US MAX_US
    |         |        |     |      |      |      |
    0    384000  1512000     3   2787   1648   3418
    0    486000   384000     1   1129   1129   1129
    0   1458000   384000     1   3174   3174   3174
    0   1512000   384000     1   3265   3265   3265
    0   1512000   486000     1   3235   3235   3235
    0   1512000  1458000     1    213    213    213
    0   1512000  1512000     1      0      0      0

Profiling is disabled by default (since it does incur some
overhead). It can be enabled or re-disabled echoing 1 or 0
to /sys/kernel/debug/tracing/cpu_freq_switch_profile_enabled

Change-Id: I3ef7f9d681b7bd13bcaa031003b10312afe1aefe
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
(cherry picked from commit a629fb0b67b57cc6759da51b9c12750758736c80)
msm: power: Revert LGE power patches

Revert the following customer changes in order to clean up this
branch.

This reverts commit 33ddf5a9eaa031c00b00846458f2ba534e6807b8.
This reverts commit f17df2402b795faf2c03de6d8a5b12378674f3be.
This reverts commit 0a488464c03806e1f775c35d7b2c83650eaab4ef.
This reverts commit 23d2a7cd02b081e1cf2578c02b7ecd3a65319d4e.
This reverts commit 90e32fa7cb701d922825e40b82b566e4af843ea2.
This reverts commit 7346d0fbd3c338d55330766e0f1867f19b364fed.
This reverts commit eb59bf66db9f2ca6e79552f4f72aa56f8c6abd27.
This reverts commit 9c56de000bb2390191fa2ddaea738e6d3e8f5d4f.
This reverts commit 7a72ca62c3f64c7b914edd8d9dbb75933b3c845e.
This reverts commit 76048dac5085eca4459ee5ea5dd4876a1f518cfa.
This reverts commit bfafe7ec7cdeef5b44b32f9aa6ee03beba2020e0.
This reverts commit e346f7a7b8ead1bbb106f4eb1e766c49407bffde.
This reverts commit 1265899c012a463cb0521ed73f2abe057692a9db
This reverts commit 1ff608a341b87defa586ca4a24d0bd89abfdfbb3
This reverts commit 5f030effc8c1af159ad13e77d4c169f037d6c9e4.
This reverts commit 19c87ddde66fd6aad61a60e466a75af235fca7f9.
This reverts commit 905eac978c30c96c5d12a81c1f6968d8c57a645f.
This reverts commit 1bd7c8643cdd8fdc7cf649ec465cc454315a6753.
This reverts commit 69f1730e0d249bad3b4f0fc0f94d917c16c3df19.
This reverts commit 2073afb7ee8b3f80f1f3184bd7ac99ead581adee
This reverts commit 8126554cf049d13f4dd2d815d86ea289efdc6f3a.
This reverts commit 45ccbb53cfc227fd3811e71b0bd813432c96ee9e
This reverts commit 325995993eb806285a35381e803ed5432fe5a93a.
This reverts commit 84cf5a3959bcf412c4b48f8a29b8255c18602d1b.
This reverts commit 839d5a50c761787ded6b8558fa37696be81196fe.
This reverts commit d4b1fb57463d04aeca5ae9bfd2181faa016f97c2.
This reverts commit 2ab04b0deb912a5a52899a50ced73e36974a6a00.
This reverts commit 3a3de0ee621625c8767e0d3c7106c52fcf834499.
This reverts commit f278add027723a90b11c9a97f6d1b09c1aaec795.
This reverts commit 1a749b700752efcc8d832f7b83554df2771dce53.

Change-Id: I21863586360b6bc57dd6d631c34725bea963cffa
Signed-off-by: Xiaozhe Shi <xiaozhes@codeaurora.org>

Conflicts:
	arch/arm/mach-msm/lge/mako/board-mako-pmic.c
	drivers/power/Kconfig
	drivers/power/Makefile
	drivers/power/pm8921-bms.c
	drivers/power/pm8921-charger.c
	include/linux/mfd/pm8xxx/pm8921-bms.h
	include/linux/mfd/pm8xxx/pm8921-charger.h
	include/linux/power_supply.h
msm: power: update power drivers to msm-3.4 tip

This branch is currently very outdated. Cherry pick the following
changes in order to bring recent fixes to this branch.

Change-Ids
Ib99cd49623698d0295bc3c3cf880225495d530cb
Ifba2bd1248e8bb47a0700dec4d321d32db4f2066
I0fc1e116c0f5a5648f99df967bdbb41fe5a07cbc
I8e3e9068e7b9a3bfd24c07a00bb3953180ce0741
I2bf31a23199f942a9ac843b9940a0f7377256238
I96b47c8603a291c41c5769fab9483d83fefb6084
If3c5f00f4b75d03838ee556235697369fd2e47dd
I32d50caf7b7a84db2654b69baafb40a441f46bf0
Ibd1020113de05e8214d41ffb975d4c95d3bb1ccf
I67c2ac422b0ba1e5eca11ffccfe7e112c2e65a3d
I2c149e6edd7c194e7f31ece95e2003ffde935806
I1f4b65cba149480fb4a8f91667ce45a876dff2f0
I2605afc2d6f9f3569ec783b2d23881f31cc9038a
I77b40f9cb8295cff1d4a24dfc7d85b0e57262f6e
I8ec5a68cad573218a0b0bd0073277b76978417ff
I9eaf7f21c73dd1ceaf97589cbf82b722706c48c2
I089725e20ae20956530e570d918a87b72e59626e
Ifa70a4daf01414dfafed7830e3a6a682c42e9364
Iaace5bc1d0611619f11b760ea6986eadb7346da1
I415d7831f15c0d690fd118ff190cd710a31368c6
I1e55bbfe37c7cc6f62581af11280a565ed648c06
I11938c569a25b026ee6b7b5125cec930676ec01d
I07577d1aa57bfa4bee40b52c18b5bfcb1cdb7070
Icdb0a28b5f9456135c60badf726c367b02f6d762
I4f14b7419f7a90813650601638f6563422c13ae4
I016a33c358be2e7a2d26202f2e9b168dd54b6d34
I43e26a2932ab3e3d9d79bb5af7daf2364ca133b7
I333c810568cdc656d2e13f0eeb9511857335b834
I830bf2e679e76efe7ed9d8bb30a8d459d8b9a09a
I08d8d319d096c050ae53d90eeac293c9b1bab2bf
I445676d558e05a6c5e9dd1e76e80ba2f5e8cd6c1
I9f38515f35fcddfbdc34ae4f59ffcfc6682033d4
Ia32e581c11954163bc8ff20a7b32432a843a17b2
I07c346475fb4a294bc8eb8da8c2048cc23394e20
Ic3f2c4e5bafd3a1556412005564fc0b549e6813c
Ic68717f4410170814d3e3b141de77b35eca12f7b
Ifad79991298e9d779b38a33a270af5197d2fc060
I3060c5ba31b59666aedfafad430e21329c4479d4
I9c87282ba5819a76a6f6697a5e9de6c92d74a665
I8144e2b83748a96ab83ba14894bfa5bd59995895
I8cac84296ddb1e323f28e2476f78d0190f4a1b73
Icef2b7fa70f274f671bd1b9469eb6a333ab462f9
Idc4ceb7973d1a424834f8c2a4bc5916ef7b1e961
I1bc779e5890f6994442c562ee5abf37c06dc6d3d
Ib1161d3d8c4a9378eabf44f9de1eae9556d82643
I11a17fc105dea398140abc1a59e6355e9e55b322
I0aa523321f1eed4a0a5461b1a894452f77e6ff99
I827bd74e9892969bb4891b31af1515789fa76c1c
I1bb658339e5a6f0adb07fda3ee0bc6c03670cc09
I135261c851067a25b20b30482764b5a61145f186
I4971d605c3475949be64372dc6bd3355ed258527
I08f6a7830c4b9ad44fb96f6d304ce257a899e287
I96886f8d0f3f03905163d93c4f8f3e637d98127f
Idf2cf7f40780cf46ba95228764790b818bc72db5
Ib046fd7149d71fc62c8f2df7a9747d6b54e95138
I546ff57d76e50ad86eb5853782fdcc1f348c9f0e
I1293ecc2974bae4ad530ecb775cd19072e413c72
I8db5a202a2e63ca0a3e355a6083d426acb7342cb
I71482f9a4430a8bbcd02c954a415ff3fab2a0c8f
I0c5656798444764b52f4d9d8889f831d674a1610
I2ac4ccd967a7a47284573c9b645055ebeca4635c
I93b830d42e7d44435c790832c11d5d38861015e0
If24985f47cc9fcd6c2eb84a73165878559008120
I39b908451f4b678ed63b872ffc46590e2c728b2c
If7e5622067c77c4c8d64ee466d1c62e4dcb0e53f
If58279329f6c76978223369a2d08d47a7b1e3579
I3621a0a204360343ba684e2217a68a6ef51a7850
I358909c38b0771fe0283386841b6123ddb2931a6
I2e8fcb4a15af3a66331a921d378bfd5d2dfe4533
I0bbad22c5fed8c32dd7de387194e94c8d4b9ad75
I34f51c6202cbaa805c496360e8dbd391890decc6
Iaab82ea254444bba233cd9ebad93d38426154ca4
Ica2565031546a8281820c17edc95d258ad31ba65
Ic282fff7167a8224ec1a1e0f7c247a9c8d73f390
Icdc707a9438adae5c8bb2d9b97af95e65c4bc2a1
I26c4e1fb971f22ec721e1dddcce6b301f5db6608
I8882575084eefa6a23bd59b8d2a54a53d793298e
Ic1e7cf4da4d2bf73d889aee7bac6cf260b26d532
I472b9da10e9f45b3c254f8440526f3f9d5116931
I1560e0df1c89be1db1e1d1aeaaeef2e6da5f85c1
Ie2842b28648084d8970329d7c76fcf0d0666a847
I2dccaedb559fc5e9865b137f980024e068bdafa3
I61a3d44f81d829f1ef22fd3044c65e4b3518b92b
I0d657c2e0d47af32cc35cd66b902be72952e5438
I22d2dbdae5c9c859d4baca2bdb7bea71da09b85b
I8c99fcbbf2f7229728236ae1059f4c9cb8dbb065
I1bb841e463658c8db42eb15ecc1687262df86a2f

Change-Id: Ib04f801b0085e7d5da3d73594bbc41c281b06026
Signed-off-by: Xiaozhe Shi <xiaozhes@codeaurora.org>

Conflicts:
	drivers/power/pm8921-bms.c
	drivers/power/pm8921-charger.c
	drivers/power/pm8xxx-ccadc.c
	include/linux/mfd/pm8xxx/ccadc.h
	include/linux/mfd/pm8xxx/pm8921-bms.h
	include/linux/mfd/pm8xxx/pm8921-charger.h
msm_fb: display: release mdp clk in mdp4_overlay_writeback_on()

mdp clk is not released in mdp4_overlay_writeback_on()

CRs-fixed: 433986

Change-Id: Ida121e03b0f08ca312c60fb8d945fe2011df853f
Signed-off-by: Mayank Goyal <goyalm@codeaurora.org>
8930: Use MPP line for USB ID detection

0n 8930 with PMIC 8917, USB ID line is not connected
to PMIC instead it is routed using MPP line. This
change adds support to configure MPP01 as input pin
and uses IRQ line for MPP01 for USB ID detection.

By default, this feature is disable as it is required
to have rework (i.e. external 30k pullup on MPP01 line)
with used hardware.

To enable this feature:
set usb_host_mode_pm8917=1 as boot param

CRs-Fixed: 438131
Change-Id: I4a1530c4c0e18f530b89f2fc0bb5cc7462c144fd
Signed-off-by: Mayank Rana <mrana@codeaurora.org>

Conflicts:
	arch/arm/mach-msm/board-8930.c