mmc: core: enhance card removal judgement for slow removal

Function _mmc_detect_card_removed will be called to know whether
the card is still present when host->bus_ops->detect is called.
In current code, the return value of this function generally only
depend on the result of sending cmd13 to card, which may not safe
for card with detection support like slot gpio detection.
Because the communication status between host and card may out of
sync with the detect status if remove the card slowly or hands shake
during the process. The direct reason is the async between card
detect switch and card/slot pad contaction in hardware, which is
defined by spec.

The spec define card insert/remove sequence as below (both standard size
SD card and MicroSD card have the same sequence):
"Part 1 Standard Size SD Card Mechanical Addendum Ver4.00 Final,
Appendix C: Card Detection Switch" (Take normally open type as example)
a)SD card insertion sequence:
  The card detection switch should be turned on after all SD card
  contact pads are connected to the host connector contact pads.
b)SD removal sequence:
  The card detection switch should be turned off when the SD card
  is just going to be removed and before any SD card contact pad is
  disconnected from the host connector contact pad.

Below is the sequence when this issue occur (Take slot gpio detection
as example and remove the card slowly during the process):
1. gpio level changed and card detect interrupt triggered.
2. mmc_rescan was launched.
3. the card pads were still contacted with the slot pads because of slow
   removal. So _mmc_detect_card_removed and mmc_rescan think card was
   still present (cmd13 succeed).
4. card pads were discontacted from the card slot pads.
So the card was actually removed finally but the card removal event
has been missed by system.
The interval length between step 1 and step 4 depends on the
card removal speed. If it's longer than the detect work schedule
delay which is 200ms, this issue will likely happen.

This patch add the card detect status check in function
_mmc_detect_card_removed if cmd13 check succeed and host->ops->get_cd
provided. If get_cd detect no card present then schedule another detect
work 200ms later.

CRs-fixed: 655754
Change-Id: I167309242c9937b023d14797177deb0e6be8838d
Signed-off-by: Kevin Liu <kliu5@marvell.com>
Git-commit: 1450734ec61cda7bbb77afc8cb412b9d64c62d9a
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
Tested-by: Johan Rudholm <johan.rudholm@stericsson.com>
Reviewed-by: Philip Rakity <prakity@nvidia.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
mmc: core: invoke low power mode if card is not present

If get_cd is defined and card is not present mmc_rescan
returns without invoking mmc_power_off. This would prevent
low-power modes.
Hence, invoke mmc_power_off if card is not present before
exiting mmc_rescan.

CRs-fixed: 655754
Change-Id: Id148fdf48e7f112da1251f8b60ac5d4c89a89e9f
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
block: row: Fix crash when adding a new field in bio struct

When adding new field to struct bio there is a crash in the removed
code lines. This issue was introduced by commit
80a8f0f87bee18283e9ca0a8966ec97ad9f084e5 "block: row-iosched idling
triggered by readahead pages"

(Partly) reverting this patch till root cause is fixed (on FS level).

Change-Id: Ie82bc806ea52a6370b57aa15455c85b2db10d0da
Signed-off-by: Tanya Brokhman <tlinder@codeaurora.org>
msm7x30: Allow to optionally enable the use of CMA for ION MM and PMEM ADSP heaps

Add two new config options to enable or disable the use of CMA in order
to dynamically or statically allocate the memory needed by ION MM and
PMEM ADSP heaps.
mogami/zeus: ifdef CMA changes

Allow disabling MM or ADSP CMA heaps
defconfigs: Update with latest changes

Enable the option to use CMA for ION MM heap and for PMEM ADSP heap.
mogami/zeus: Use a higher memory allocation if CMA is used for ION MM heap

When CMA is used for ION MM heap, it could be required that a higher amount of
memory is temporarly allocated while starting the playback of some HD videos
or while re-encoding a long video before sending/sharing it with an app
(for example WhatsApp).

Also bump the non-CMA MM size to 0x1C80000
mogami/zeus: Adjust ION SF heap size
msm: camera: Assign Null to unmapped addresses

Observed unhandled virtual addresses with all the camera drivers
while performing reads and writes to the ioremap addresses in different
scenarios, Hence assigining NULL to all the hardware remapped addresses
immediately after the iounmap calls

Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
(cherry picked from commit 72ee044121488cc9f4cde91c5e3a2b820d7a0fad)

Change-Id: Ia0a74ca35e8575b18da8350cb6de83752ee0b11b
Signed-off-by: Shruthi Krishna <skrish@codeaurora.org>
Signed-off-by: nobodyAtall <tsogkas@ceid.upatras.gr>

[mikeioannina]: Cherry-picked to Sony's msm_vpe_standalone
msm_serial_hs: Disable debugfs interface
defconfigs: Disable KSM

* It's incompatible with the recent CMA changes
* Some users are stupid
Revert "msm: mdp: Update sync pt. behaviour"

This reverts commit d21204235cb954f2a80da29ba4d4bd011d7d0e98.
akm8975/as3676/lm356x: Disable some info messages

These messages appear when the device wakes from deep sleep and spam the logs.
They are not critical, so disable them

Change-Id: I2f6582c89997986d0ff4bb48fe74be1a1af4b2ef
pmem: Do not use special case for DMA.

Change-Id: I5b46d595ab49a0976feb45c28fd94b54d287126a
qdsp5v2: Disable fluence code
msm: qdsp5v2: Convert all audio devices to ION.

Forward ported from qdsp5.

Change-Id: I1480b6dc2935b85ad0543ee5b3f7ff4912c12f34
msm: qdsp5v2: Minor code sync.

Change-Id: I1210c8210db8e549eed40891189d4b4f6b66cb98
msm: rpc: Do not allow new clients on reboot call.

RPC server closes all sockets at reboot call, however some drivers might try to
connect RPC again (such as pmapp). When this happens, RPC may hang.

Change-Id: I90e80d04197c680bde8abe3c200d2a1c421011f9
bcmdhd: Squashed update from AOSP kernel/common/android-3.4

Update up to: 'net: wireless: bcmdhd: support Hotspot 2.0 release 1.0'
bcmdhd: Fix build with CONFIG_DHD_USE_SCHED_SCAN disabled