<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi">
    <title>gmane.linux.kernel.cryptoapi</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7078"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7077"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7076"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7075"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7074"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7073"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7072"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7071"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7070"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7069"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7068"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7067"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7066"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7065"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7064"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7063"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7062"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7061"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7060"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7058"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7078">
    <title>(unknown)</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7078</link>
    <description>&lt;pre&gt;
 i am robothroli, Purchase manager from roli Merchant Ltd. We are
Import/export Company based in taiwan. We are interested in purchasing
your product and I would like to make an inquiry. Please inform me on:

Sample availability and price
Minimum order quantity
FOB Prices

Sincerely
Purchase Manager
robothroli



&lt;/pre&gt;</description>
    <dc:creator>robothroli company</dc:creator>
    <dc:date>2012-05-25T13:45:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7077">
    <title>RFC: support for MV_CESA with TDMA</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7077</link>
    <description>&lt;pre&gt;Hi,

The following patch series adds support for the TDMA engine built into
Marvell's Kirkwood-based SoCs, and enhances mv_cesa.c in order to use it
for speeding up crypto operations. Kirkwood hardware contains a security
accelerator, which can control DMA as well as crypto engines. It allows
for operation with minimal software intervenience, which the following
patches implement: using a chain of DMA descriptors, data input,
configuration, engine startup and data output repeat fully automatically
until the whole input data has been handled.

The point for this being RFC is backwards-compatibility: earlier
hardware (Orion) ships a (slightly) different DMA engine (IDMA) along
with the same crypto engine, so in fact mv_cesa.c is in use on these
platforms, too. But since I don't possess hardware of this kind, I am
not able to make this code IDMA-compatible. Also, due to the quite
massive reorganisation of code flow, I don't really see how to make TDMA
support optional in mv_cesa.c.

Greetings, Phil
&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7076">
    <title>[PATCH 01/13] mv_cesa: do not use scatterlist iterators</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7076</link>
    <description>&lt;pre&gt;The big problem is they cannot be used to iterate over DMA mapped
scatterlists, so get rid of them in order to add DMA functionality to
mv_cesa.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   57 ++++++++++++++++++++++-----------------------
 1 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 3cc9237..c305350 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -43,8 +43,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; enum engine_status {
 
 /**
  * struct req_progress - used for every crypt request
- * &amp;lt; at &amp;gt;src_sg_it:sg iterator for src
- * &amp;lt; at &amp;gt;dst_sg_it:sg iterator for dst
+ * &amp;lt; at &amp;gt;src_sg:sg list for src
+ * &amp;lt; at &amp;gt;dst_sg:sg list for dst
  * &amp;lt; at &amp;gt;sg_src_left:bytes left in src to process (scatter list)
  * &amp;lt; at &amp;gt;src_start:offset to add to src start position (scatter list)
  * &amp;lt; at &amp;gt;crypt_len:length of current hw crypt/hash process
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -59,8 +59,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; enum engine_status {
  * track of progress within current scatterlist.
  */
 struct req_pr&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7075">
    <title>[PATCH 03/13] mv_cesa: prepare the full sram config in dram</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7075</link>
    <description>&lt;pre&gt;This way reconfiguring the cryptographic accelerator consists of a
single step (memcpy here), which in future can be done by the tdma
engine.

This patch introduces some ugly IV copying, necessary for input buffers
above 1920bytes. But this will go away later.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   83 ++++++++++++++++++++++++++++-----------------
 1 files changed, 52 insertions(+), 31 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 3862a93..68b83d8 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -76,6 +76,24 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct req_progress {
 int hw_processed_bytes;
 };
 
+struct sec_accel_sram {
+struct sec_accel_config op;
+union {
+struct {
+u32 key[8];
+u32 iv[4];
+} crypt;
+struct {
+u32 ivi[5];
+u32 ivo[5];
+} hash;
+} type;
+#define sa_keytype.crypt.key
+#define sa_ivtype.crypt.iv
+#define sa_ivitype.hash.ivi
+#define sa_ivotype.hash.ivo
+} __attribute__((packed));
+
 struc&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7074">
    <title>[PATCH 05/13] add a driver for the Marvell TDMA engine</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7074</link>
    <description>&lt;pre&gt;This is a DMA engine integrated into the Marvell Kirkwood SoC, designed
to offload data transfers from/to the CESA crypto engine.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 arch/arm/mach-kirkwood/common.c            |   33 +++
 arch/arm/mach-kirkwood/include/mach/irqs.h |    1 +
 drivers/crypto/Kconfig                     |    5 +
 drivers/crypto/Makefile                    |    3 +-
 drivers/crypto/mv_tdma.c                   |  377 ++++++++++++++++++++++++++++
 drivers/crypto/mv_tdma.h                   |   50 ++++
 6 files changed, 468 insertions(+), 1 deletions(-)
 create mode 100644 drivers/crypto/mv_tdma.c
 create mode 100644 drivers/crypto/mv_tdma.h

diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index 3ad0373..adc6eff 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -269,9 +269,42 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void __init kirkwood_uart1_init(void)
 /*****************************************************************************
  * Cryptographi&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7073">
    <title>[PATCH 09/13] mv_cesa: implementing packet chain mode, only aes for now</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7073</link>
    <description>&lt;pre&gt;This introduces a pool of four-byte DMA buffers for security
accelerator config updates.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |  134 ++++++++++++++++++++++++++++++++++++----------
 drivers/crypto/mv_cesa.h |    1 +
 2 files changed, 106 insertions(+), 29 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index bc2692e..8e66080 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -10,6 +10,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;crypto/algapi.h&amp;gt;
 #include &amp;lt;linux/crypto.h&amp;gt;
 #include &amp;lt;linux/dma-mapping.h&amp;gt;
+#include &amp;lt;linux/dmapool.h&amp;gt;
 #include &amp;lt;linux/interrupt.h&amp;gt;
 #include &amp;lt;linux/io.h&amp;gt;
 #include &amp;lt;linux/kthread.h&amp;gt;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -27,6 +28,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define MAX_HW_HASH_SIZE0xFFFF
 #define MV_CESA_EXPIRE500 /* msec */
 
+#define MV_DMA_INIT_POOLSIZE 16
+#define MV_DMA_ALIGN 16
+
 static int count_sgs(struct scatterlist *, unsigned int);
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -96,6 +100,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct sec_accel_sram {
 #define sa_ivotype.hash.ivo
 } __attribute__((packed));
 
+struct u32_m&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7072">
    <title>[PATCH 12/13] mv_cesa: drop the now unused process callback</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7072</link>
    <description>&lt;pre&gt;And while here, simplify dequeue_complete_req() a bit.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   21 ++++++---------------
 1 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 9afed2d..9a2f413 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -69,7 +69,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct req_progress {
 struct scatterlist *src_sg;
 struct scatterlist *dst_sg;
 void (*complete) (void);
-void (*process) (void);
 
 /* src mostly */
 int sg_src_left;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -648,25 +647,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_hash_algo_completion(void)
 static void dequeue_complete_req(void)
 {
 struct crypto_async_request *req = cpg-&amp;gt;cur_req;
-cpg-&amp;gt;p.hw_processed_bytes += cpg-&amp;gt;p.crypt_len;
-cpg-&amp;gt;p.crypt_len = 0;
 
 mv_tdma_clear();
 cpg-&amp;gt;u32_usage = 0;
 
 BUG_ON(cpg-&amp;gt;eng_st != ENGINE_W_DEQUEUE);
-if (cpg-&amp;gt;p.hw_processed_bytes &amp;lt; cpg-&amp;gt;p.hw_nbytes) {
-/* process next scatter list entry */
-cpg-&amp;gt;eng_st = ENGINE_BUSY;
-setup&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7071">
    <title>[PATCH 06/13] mv_cesa: use TDMA engine for data transfers</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7071</link>
    <description>&lt;pre&gt;Simply chose the same DMA mask value as for mvsdio and ehci.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 arch/arm/plat-orion/common.c |    6 +
 drivers/crypto/mv_cesa.c     |  214 +++++++++++++++++++++++++++++++++---------
 2 files changed, 175 insertions(+), 45 deletions(-)

diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
index 74daf5e..dd3a327 100644
--- a/arch/arm/plat-orion/common.c
+++ b/arch/arm/plat-orion/common.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -916,9 +916,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static struct resource orion_crypto_resources[] = {
 },
 };
 
+static u64 mv_crypto_dmamask = DMA_BIT_MASK(32);
+
 static struct platform_device orion_crypto = {
 .name           = "mv_crypto",
 .id             = -1,
+.dev= {
+.dma_mask = &amp;amp;mv_crypto_dmamask,
+.coherent_dma_mask = DMA_BIT_MASK(32),
+},
 };
 
 void __init orion_crypto_init(unsigned long mapbase,
diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 4a989ea..e10da2b 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -9&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7070">
    <title>[PATCH 13/13] mv_cesa, mv_tdma: outsource common dma-pool handling code</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7070</link>
    <description>&lt;pre&gt;
Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/dma_desclist.h |   79 +++++++++++++++++++++++++++++++++++
 drivers/crypto/mv_cesa.c      |   81 +++++++++----------------------------
 drivers/crypto/mv_tdma.c      |   91 ++++++++++++-----------------------------
 3 files changed, 125 insertions(+), 126 deletions(-)
 create mode 100644 drivers/crypto/dma_desclist.h

diff --git a/drivers/crypto/dma_desclist.h b/drivers/crypto/dma_desclist.h
new file mode 100644
index 0000000..c471ad6
--- /dev/null
+++ b/drivers/crypto/dma_desclist.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,79 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+#ifndef __DMA_DESCLIST__
+#define __DMA_DESCLIST__
+
+struct dma_desc {
+void *virt;
+dma_addr_t phys;
+};
+
+struct dma_desclist {
+struct dma_pool *itempool;
+struct dma_desc *desclist;
+unsigned long length;
+unsigned long usage;
+};
+
+#define DESCLIST_ITEM(dl, x)((dl).desclist[(x)].virt)
+#define DESCLIST_ITEM_DMA(dl, x)((dl).desclist[(x)].phys)
+#define DESCLIST_FULL(dl)((dl).length == (dl).usage)
+
+static inline int
+in&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7069">
    <title>[PATCH 02/13] mv_cesa: minor formatting cleanup, will all make sense soon</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7069</link>
    <description>&lt;pre&gt;This is just to keep formatting changes out of the following commit,
hopefully simplifying it a bit.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index c305350..3862a93 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -267,12 +267,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_process_current_q(int first_block)
 }
 if (req_ctx-&amp;gt;decrypt) {
 op.config |= CFG_DIR_DEC;
-memcpy(cpg-&amp;gt;sram + SRAM_DATA_KEY_P, ctx-&amp;gt;aes_dec_key,
-AES_KEY_LEN);
+memcpy(cpg-&amp;gt;sram + SRAM_DATA_KEY_P, ctx-&amp;gt;aes_dec_key, AES_KEY_LEN);
 } else {
 op.config |= CFG_DIR_ENC;
-memcpy(cpg-&amp;gt;sram + SRAM_DATA_KEY_P, ctx-&amp;gt;aes_enc_key,
-AES_KEY_LEN);
+memcpy(cpg-&amp;gt;sram + SRAM_DATA_KEY_P, ctx-&amp;gt;aes_enc_key, AES_KEY_LEN);
 }
 
 switch (ctx-&amp;gt;key_len) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -333,9 +331,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_process_hash_current(int first_block)
 }
 
 op.mac_src_p =
-MAC_SRC_DAT&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7068">
    <title>[PATCH 10/13] mv_cesa: reorganise mv_start_new_hash_req a bit</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7068</link>
    <description>&lt;pre&gt;Check and exit early for whether CESA can be used at all.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   61 +++++++++++++++++++++++++---------------------
 1 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 8e66080..5dba9df 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -804,35 +804,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_start_new_hash_req(struct ahash_request *req)
 else
 ctx-&amp;gt;extra_bytes = 0;
 
-p-&amp;gt;src_sg = req-&amp;gt;src;
-if (req-&amp;gt;nbytes) {
-BUG_ON(!req-&amp;gt;src);
-p-&amp;gt;sg_src_left = req-&amp;gt;src-&amp;gt;length;
-}
-
-if (hw_bytes) {
-p-&amp;gt;hw_nbytes = hw_bytes;
-p-&amp;gt;complete = mv_hash_algo_completion;
-p-&amp;gt;process = mv_update_hash_config;
-
-if (unlikely(old_extra_bytes)) {
-dma_sync_single_for_device(cpg-&amp;gt;dev, ctx-&amp;gt;buffer_dma,
-SHA1_BLOCK_SIZE, DMA_TO_DEVICE);
-mv_tdma_memcpy(cpg-&amp;gt;sram_phys + SRAM_DATA_IN_START,
-ctx-&amp;gt;buffer_dma, old_extra_bytes);
-p-&amp;gt;crypt_len = old_extra_&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7067">
    <title>[PATCH 07/13] mv_cesa: have TDMA copy back the digest result</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7067</link>
    <description>&lt;pre&gt;
Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   40 +++++++++++++++++++++++++++++-----------
 1 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index e10da2b..d099aa0 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -159,8 +159,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct mv_req_hash_ctx {
 int first_hash;/* marks that we don't have previous state */
 int last_chunk;/* marks that this is the 'final' request */
 int extra_bytes;/* unprocessed bytes in buffer */
+int digestsize;/* size of the digest */
 enum hash_op op;
 int count_add;
+dma_addr_t result_dma;
 };
 
 static void mv_completion_timer_callback(unsigned long unused)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -497,9 +499,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_init_hash_config(struct ahash_request *req)
 
 mv_tdma_separator();
 
-/* XXX: this fixes some ugly register fuckup bug in the tdma engine
- *      (no need to sync since the data is ignored anyway) */
-mv_tdma_memcpy(cpg-&amp;gt;sa_sram_dma, c&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7066">
    <title>[PATCH 08/13] mv_cesa: fetch extra_bytes via TDMA engine, too</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7066</link>
    <description>&lt;pre&gt;
Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index d099aa0..bc2692e 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -156,6 +156,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct mv_req_hash_ctx {
 u64 count;
 u32 state[SHA1_DIGEST_SIZE / 4];
 u8 buffer[SHA1_BLOCK_SIZE];
+dma_addr_t buffer_dma;
 int first_hash;/* marks that we don't have previous state */
 int last_chunk;/* marks that this is the 'final' request */
 int extra_bytes;/* unprocessed bytes in buffer */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -636,6 +637,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_hash_algo_completion(void)
 dma_unmap_single(cpg-&amp;gt;dev, ctx-&amp;gt;result_dma,
 ctx-&amp;gt;digestsize, DMA_FROM_DEVICE);
 
+dma_unmap_single(cpg-&amp;gt;dev, ctx-&amp;gt;buffer_dma,
+SHA1_BLOCK_SIZE, DMA_TO_DEVICE);
+
 if (unlikely(ctx-&amp;gt;count &amp;gt; MAX_HW_HASH_SIZE)) {
 mv_save_digest_state(ctx);
 mv_hash_final_fallback(req);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -755,8 +759,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7065">
    <title>[PATCH 04/13] mv_cesa: split up processing callbacks</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7065</link>
    <description>&lt;pre&gt;Have a dedicated function initialising the full SRAM config, then use a
minimal callback for changing only relevant parts of it.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   87 +++++++++++++++++++++++++++++++++------------
 1 files changed, 64 insertions(+), 23 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 68b83d8..4a989ea 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -62,7 +62,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct req_progress {
 struct scatterlist *src_sg;
 struct scatterlist *dst_sg;
 void (*complete) (void);
-void (*process) (int is_first);
+void (*process) (void);
 
 /* src mostly */
 int sg_src_left;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -265,9 +265,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void setup_data_in(void)
 p-&amp;gt;crypt_len = data_in_sram;
 }
 
-static void mv_process_current_q(int first_block)
+static void mv_init_crypt_config(struct ablkcipher_request *req)
 {
-struct ablkcipher_request *req = ablkcipher_request_cast(cpg-&amp;gt;cur_req);
 struct mv_ctx *ctx = crypto_tfm_ctx&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7064">
    <title>[PATCH 11/13] mv_cesa: implement descriptor chaining for hashes, too</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7064</link>
    <description>&lt;pre&gt;
Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   89 ++++++++++++++++++----------------------------
 1 files changed, 35 insertions(+), 54 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 5dba9df..9afed2d 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -536,34 +536,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_init_hash_config(struct ahash_request *req)
 sizeof(struct sec_accel_sram), DMA_TO_DEVICE);
 mv_tdma_memcpy(cpg-&amp;gt;sram_phys + SRAM_CONFIG, cpg-&amp;gt;sa_sram_dma,
 sizeof(struct sec_accel_sram));
-
-mv_tdma_separator();
-
-if (req-&amp;gt;result) {
-req_ctx-&amp;gt;result_dma = dma_map_single(cpg-&amp;gt;dev, req-&amp;gt;result,
-req_ctx-&amp;gt;digestsize, DMA_FROM_DEVICE);
-mv_tdma_memcpy(req_ctx-&amp;gt;result_dma,
-cpg-&amp;gt;sram_phys + SRAM_DIGEST_BUF, req_ctx-&amp;gt;digestsize);
-} else {
-/* XXX: this fixes some ugly register fuckup bug in the tdma engine
- *      (no need to sync since the data is ignored anyway) */
-mv_tdma_memcpy(cpg-&amp;gt;sa_sram_dma,
-&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T16:08:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7063">
    <title>[PATCH 1/4] mv_cesa: add an expiry timer in case anything goes wrong</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7063</link>
    <description>&lt;pre&gt;The timer triggers when 500ms have gone by after triggering the engine
and no completion interrupt was received. The callback then tries to
sanitise things as well as possible.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   41 +++++++++++++++++++++++++++++++----------
 1 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index e6ecc5f..8327bed 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -23,6 +23,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 #define MV_CESA"MV-CESA:"
 #define MAX_HW_HASH_SIZE0xFFFF
+#define MV_CESA_EXPIRE500 /* msec */
 
 /*
  * STM:
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -85,6 +86,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct crypto_priv {
 spinlock_t lock;
 struct crypto_queue queue;
 enum engine_status eng_st;
+struct timer_list completion_timer;
 struct crypto_async_request *cur_req;
 struct req_progress p;
 int max_req_size;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -136,6 +138,29 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct mv_req_hash_ctx {
 int count_add;
 };
 
+static void mv_completion_timer_callback(unsigned long un&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T13:54:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7062">
    <title>[PATCH 4/4] mv_cesa: fix for hash finalisation with data</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7062</link>
    <description>&lt;pre&gt;Since mv_hash_final_fallback() uses ctx-&amp;gt;state, read out the digest
state register before calling it.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index d4763fb..3cc9237 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -421,6 +421,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; out:
 return rc;
 }
 
+static void mv_save_digest_state(struct mv_req_hash_ctx *ctx)
+{
+ctx-&amp;gt;state[0] = readl(cpg-&amp;gt;reg + DIGEST_INITIAL_VAL_A);
+ctx-&amp;gt;state[1] = readl(cpg-&amp;gt;reg + DIGEST_INITIAL_VAL_B);
+ctx-&amp;gt;state[2] = readl(cpg-&amp;gt;reg + DIGEST_INITIAL_VAL_C);
+ctx-&amp;gt;state[3] = readl(cpg-&amp;gt;reg + DIGEST_INITIAL_VAL_D);
+ctx-&amp;gt;state[4] = readl(cpg-&amp;gt;reg + DIGEST_INITIAL_VAL_E);
+}
+
 static void mv_hash_algo_completion(void)
 {
 struct ahash_request *req = ahash_request_cast(cpg-&amp;gt;cur_req);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -435,14 +444,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void mv_hash_algo_completion(void)
 memcpy(req-&amp;gt;resul&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T13:54:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7061">
    <title>[PATCH 2/4] mv_cesa: no need to write to that FPGA_INT_STATUS field</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7061</link>
    <description>&lt;pre&gt;Also drop the whole definition, since it's unused otherwise.

Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |    1 -
 drivers/crypto/mv_cesa.h |    7 -------
 2 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 8327bed..4a1f872 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -908,7 +908,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; irqreturn_t crypto_int(int irq, void *priv)
        "got an interrupt but no pending timer?\n");
 }
 val &amp;amp;= ~SEC_INT_ACCEL0_DONE;
-writel(val, cpg-&amp;gt;reg + FPGA_INT_STATUS);
 writel(val, cpg-&amp;gt;reg + SEC_ACCEL_INT_STATUS);
 BUG_ON(cpg-&amp;gt;eng_st != ENGINE_BUSY);
 cpg-&amp;gt;eng_st = ENGINE_W_DEQUEUE;
diff --git a/drivers/crypto/mv_cesa.h b/drivers/crypto/mv_cesa.h
index 08fcb11..81ce109 100644
--- a/drivers/crypto/mv_cesa.h
+++ b/drivers/crypto/mv_cesa.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -29,13 +29,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define SEC_ST_ACT_0(1 &amp;lt;&amp;lt; 0)
 #define SEC_ST_ACT_1(1 &amp;lt;&amp;lt; 1)
 
-/*
- * FPGA_INT_STATUS looks like a FPGA leftover and is do&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T13:54:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7060">
    <title>[PATCH 3/4] mv_cesa: initialise the interrupt status field to zero</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7060</link>
    <description>&lt;pre&gt;
Signed-off-by: Phil Sutter &amp;lt;phil.sutter&amp;lt; at &amp;gt;viprinet.com&amp;gt;
---
 drivers/crypto/mv_cesa.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 4a1f872..d4763fb 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1073,6 +1073,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int mv_probe(struct platform_device *pdev)
 if (ret)
 goto err_thread;
 
+writel(0, cpg-&amp;gt;reg + SEC_ACCEL_INT_STATUS);
 writel(SEC_INT_ACCEL0_DONE, cpg-&amp;gt;reg + SEC_ACCEL_INT_MASK);
 writel(SEC_CFG_STOP_DIG_ERR, cpg-&amp;gt;reg + SEC_ACCEL_CFG);
 writel(SRAM_CONFIG, cpg-&amp;gt;reg + SEC_ACCEL_DESC_P0);
&lt;/pre&gt;</description>
    <dc:creator>Phil Sutter</dc:creator>
    <dc:date>2012-05-25T13:54:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7058">
    <title>[PATCH 2/2] crypto: bfin_crc: CRC hardware accelerator driver for BF60x family processors.</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7058</link>
    <description>&lt;pre&gt;From: Sonic Zhang &amp;lt;sonic.zhang&amp;lt; at &amp;gt;analog.com&amp;gt;

The CRC peripheral is a hardware block used to compute the CRC of the block
of data. This is based on a CRC32 engine which computes the CRC value of 32b
data words presented to it. For data words of &amp;lt; 32b in size, this driver
pack 0 automatically into 32b data units. This driver implements the async
hash crypto framework API.

Signed-off-by: Sonic Zhang &amp;lt;sonic.zhang&amp;lt; at &amp;gt;analog.com&amp;gt;
---
 drivers/crypto/Kconfig    |    7 +
 drivers/crypto/Makefile   |    3 +-
 drivers/crypto/bfin_crc.c |  789 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 798 insertions(+), 1 deletions(-)
 create mode 100644 drivers/crypto/bfin_crc.c

diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 69fdf18..a520b93 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -306,4 +306,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; if CRYPTO_DEV_UX500
 source "drivers/crypto/ux500/Kconfig"
 endif # if CRYPTO_DEV_UX500
 
+config CRYPTO_DEV_BFIN_CRC
+tristate "Support for Blackfin CRC hareware acceler&lt;/pre&gt;</description>
    <dc:creator>Sonic Zhang</dc:creator>
    <dc:date>2012-05-25T09:54:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7057">
    <title>[PATCH] crypto: sha1 - use Kbuild supplied flags for AVX test</title>
    <link>http://permalink.gmane.org/gmane.linux.kernel.cryptoapi/7057</link>
    <description>&lt;pre&gt;Commit ea4d26ae ("raid5: add AVX optimized RAID5 checksumming")
introduced x86/ arch wide defines for AFLAGS and CFLAGS indicating AVX
support in binutils based on the same test we have in x86/crypto/ right
now. To minimize duplication drop our implementation in favour to the
one in x86/.

Signed-off-by: Mathias Krause &amp;lt;minipli&amp;lt; at &amp;gt;googlemail.com&amp;gt;
---

This should be applied to cryptodev-2.6.git after it contains the above
mentioned commit, e.g. after cryptodev-2.6.git rebased to/merged v3.5-rc1.

 arch/x86/crypto/Makefile          |    7 -------
 arch/x86/crypto/sha1_ssse3_asm.S  |    2 +-
 arch/x86/crypto/sha1_ssse3_glue.c |    6 +++---
 3 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile
index e191ac0..479f95a 100644
--- a/arch/x86/crypto/Makefile
+++ b/arch/x86/crypto/Makefile
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -34,12 +34,5 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; salsa20-x86_64-y := salsa20-x86_64-asm_64.o salsa20_glue.o
 serpent-sse2-x86_64-y := serpent-sse2-x86_64-asm_64.o serpent_sse2_glue.o
 
 aesni-intel-y :&lt;/pre&gt;</description>
    <dc:creator>Mathias Krause</dc:creator>
    <dc:date>2012-05-24T09:13:42</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.kernel.cryptoapi">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.kernel.cryptoapi</link>
  </textinput>
</rdf:RDF>

