ARM: 7626/1: arm/crypto: Make asm SHA-1 and AES code Thumb-2 compatible

This patch fixes aes-armv4.S and sha1-armv4-large.S to work
natively in Thumb.  This allows ARM/Thumb interworking workarounds
to be removed.

I also take the opportunity to convert some explicit assembler
directives for exported functions to the standard
ENTRY()/ENDPROC().

For the code itself:

  * In sha1_block_data_order, use of TEQ with sp is deprecated in
    ARMv7 and not supported in Thumb.  For the branches back to
    .L_00_15 and .L_40_59, the TEQ is converted to a CMP, under the
    assumption that clobbering the C flag here will not cause
    incorrect behaviour.

    For the first branch back to .L_20_39_or_60_79 the C flag is
    important, so sp is moved temporarily into another register so
    that TEQ can be used for the comparison.

  * In the AES code, most forms of register-indexed addressing with
    shifts and rotates are not permitted for loads and stores in
    Thumb, so the address calculation is done using a separate
    instruction for the Thumb case.

The resulting code is unlikely to be optimally scheduled, but it
should not have a large impact given the overall size of the code.
I haven't run any benchmarks.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Tested-by: David McCullough <ucdevel@gmail.com> (ARM only)
Acked-by: David McCullough <ucdevel@gmail.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Change-Id: I819f921198fd6cabfe0ae422607a5392d49040f4
ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling

Make the SHA1 asm code ABI conformant by making sure all stack
accesses occur above the stack pointer.

Origin:
http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=1a9d60d2

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Change-Id: Ia7fbf87db0cba99cb22cb432748a0e7f84192177
defconfig: Do not build exFAT as module

Change-Id: I331b54c198fbb9dc3d969c0027d5203733986017

Conflicts:
	arch/arm/configs/cyanogen_serrano_defconfig
defconfig: Update melius_defconfig after ML2 updates

Change-Id: I7e06d6dc346f90038b2ca964e0618707d999621f
defconfig: Enable ARM optimized crypto routines

Change-Id: Ie40d214253071026307b893028e6ebc12c3d9f1b
Signed-off-by: Willi Ye <williye97@gmail.com>

Conflicts:
	arch/arm/configs/cyanogen_serrano_defconfig
Revert "defconfig: Enable VMALLOC saving"

 * Not sure if this is causing the issues people are having
   lately, so revert it for now.

This reverts commit c226d72f608ed552a7709eaf4fc4050d18cddfb0.

Signed-off-by: Willi Ye <williye97@gmail.com>

Conflicts:
	arch/arm/configs/cyanogen_serrano_defconfig