Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / crypto / Kconfig
index 00b5906..87bbc9c 100644 (file)
@@ -158,6 +158,20 @@ config CRYPTO_CRYPTD
          converts an arbitrary synchronous software crypto algorithm
          into an asynchronous algorithm that executes in a kernel thread.
 
+config CRYPTO_MCRYPTD
+       tristate "Software async multi-buffer crypto daemon"
+       select CRYPTO_BLKCIPHER
+       select CRYPTO_HASH
+       select CRYPTO_MANAGER
+       select CRYPTO_WORKQUEUE
+       help
+         This is a generic software asynchronous crypto daemon that
+         provides the kernel thread to assist multi-buffer crypto
+         algorithms for submitting jobs and flushing jobs in multi-buffer
+         crypto algorithms.  Multi-buffer crypto algorithms are executed
+         in the context of this kernel thread and drivers can post
+         their crypto request asynchronously to be processed by this daemon.
+
 config CRYPTO_AUTHENC
        tristate "Authenc support"
        select CRYPTO_AEAD
@@ -543,7 +557,7 @@ config CRYPTO_SHA1_ARM
 
 config CRYPTO_SHA1_ARM_NEON
        tristate "SHA1 digest algorithm (ARM NEON)"
-       depends on ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
+       depends on ARM && KERNEL_MODE_NEON
        select CRYPTO_SHA1_ARM
        select CRYPTO_SHA1
        select CRYPTO_HASH
@@ -559,6 +573,22 @@ config CRYPTO_SHA1_PPC
          This is the powerpc hardware accelerated implementation of the
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
+config CRYPTO_SHA1_MB
+       tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
+       depends on X86 && 64BIT
+       select CRYPTO_SHA1
+       select CRYPTO_HASH
+       select CRYPTO_MCRYPTD
+       help
+         SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
+         using multi-buffer technique.  This algorithm computes on
+         multiple data lanes concurrently with SIMD instructions for
+         better throughput.  It should not be enabled by default but
+         used when there is significant amount of work to keep the keep
+         the data lanes filled to get performance benefit.  If the data
+         lanes remain unfilled, a flush operation will be initiated to
+         process the crypto jobs, adding a slight latency.
+
 config CRYPTO_SHA256
        tristate "SHA224 and SHA256 digest algorithm"
        select CRYPTO_HASH
@@ -603,7 +633,7 @@ config CRYPTO_SHA512_SPARC64
 
 config CRYPTO_SHA512_ARM_NEON
        tristate "SHA384 and SHA512 digest algorithm (ARM NEON)"
-       depends on ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
+       depends on ARM && KERNEL_MODE_NEON
        select CRYPTO_SHA512
        select CRYPTO_HASH
        help