mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption.

commit 3550ccdb9d8d350e526b809bf3dd92b550a74fe1 upstream.

For several MoviNAND eMMC parts, there are known issues with secure
erase and secure trim.  For these specific MoviNAND devices, we skip
these operations.

Specifically, there is a bug in the eMMC firmware that causes
unrecoverable corruption when the MMC is erased with MMC_CAP_ERASE
enabled.

References:

http://forum.xda-developers.com/showthread.php?t=1644364
https://plus.google.com/111398485184813224730/posts/21pTYfTsCkB#111398485184813224730/posts/21pTYfTsCkB

Signed-off-by: Ian Chen <ian.cy.chen@samsung.com>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[steven@steven676.net: make apply to 3.0]
Patch the firmware of certain Samsung emmc parts to fix a bug

Patch the firmware in certain Samsung emmc chips after every power-on
to workaround a bug in the wear leveling code.  Patch provided by Samsung
Semiconductor, and the code to apply the patch was originally written
by Jeonghwan Min of Samsung.

Change-Id: Id40cfb8f68842fc4a47f60ae032f1b49c0fcb65e
Signed-off-by: Ken Sumrall <ksumrall@android.com>
Patch P17 corruption bug on Samsung M8G2FA fwrev 0x11 eMMC parts

This firmware patch, for a bug of unknown impact, comes via the Nook
Color 1.4.3 kernel source:

https://github.com/steven676/nook_kernel/commit/4b51e605cb5deff9dad6ed89fc7c021489f29bf1#L3R323

As the patching method is very similar, we reuse the infrastructure for
patching the Samsung wear-leveling bug.  As with that bug, the patch is
stored in SRAM and is reapplied every time the chip is powered on.

Change-Id: I27b0092fa8f8cd533ffdc9a5866ed5cff6efb676
Merge remote-tracking branch 'origin/encore-omap3-3' into xda

Conflicts:
	include/linux/mmc/card.h