crypto: engine - Introduce the block request crypto engine framework
authorBaolin Wang <baolin.wang@linaro.org>
Tue, 26 Jan 2016 12:25:39 +0000 (20:25 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 1 Feb 2016 14:27:02 +0000 (22:27 +0800)
commit735d37b5424b27aa685276b8b90b7e57c4705ac1
tree93fa6b3f48a144f4209d02c4b1c0a69677093a6b
parent9f93a8a0ba91fa3babe76a428e6c24f4c39f125e
crypto: engine - Introduce the block request crypto engine framework

Now block cipher engines need to implement and maintain their own queue/thread
for processing requests, moreover currently helpers provided for only the queue
itself (in crypto_enqueue_request() and crypto_dequeue_request()) but they
don't help with the mechanics of driving the hardware (things like running the
request immediately, DMA map it or providing a thread to process the queue in)
even though a lot of that code really shouldn't vary that much from device to
device.

Thus this patch provides a mechanism for pushing requests to the hardware
as it becomes free that drivers could use. And this framework is patterned
on the SPI code and has worked out well there.
(https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
 drivers/spi/spi.c?id=ffbbdd21329f3e15eeca6df2d4bc11c04d9d91c0)

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/Kconfig
crypto/Makefile
crypto/crypto_engine.c [new file with mode: 0644]
include/crypto/algapi.h