linux/drivers/crypto/atmel-tdes.c
<<
val" v/spa3.1 " v/form.1 " va val" href="../linux+vv3ue/drivers/crypto/atmel-tdes.c"> val" vimg src="../.static/gfx/right.png" alt=">>"> vv/spa3.1 vvspa3 class="lxr_search"> val val" vinput typop.hidden" namop.navtarget" .2 val" vinput typop.text" namop.search" idp.search"> val" vbutt.18typop.submit">Search val" Prefs1 " v/a> vv/spa3.1al" v/div.1al" vform ac5"v3="ajax+*" method="post" onsubmit="return false;"> vvinput typop.hidden" namop.ajax_lookup" idp.ajax_lookup" .2 al" v/form.1 al" vdiv class="headingbott.m">1 vdiv idp.file_contents".
   1v/a>vspa3 class="comment">/*v/spa3.1   2v/a>vspa3 class="comment"> * Cryptographic API.v/spa3.1   3v/a>vspa3 class="comment"> *v/spa3.1   4v/a>vspa3 class="comment"> * Support for ATMEL DES/TDES HW accelera5"v3.v/spa3.1   5v/a>vspa3 class="comment"> *v/spa3.1   6v/a>vspa3 class="comment"> * Copyright (c) 2012 Eukr\xC3\xA9a Electroma5"que - ATMELv/spa3.1   7v/a>vspa3 class="comment"> * Author: Nicolas Royer <nicolas@eukrea.com>v/spa3.1   8v/a>vspa3 class="comment"> *v/spa3.1   9v/a>vspa3 class="comment"> * This program is free software; you ca3 redistribute it and/or modifyv/spa3.1   
  a>vspa3 class="comment"> * it under the terms of the GNU General Public License vers5.182 as publishedv/spa3.1  11v/a>vspa3 class="comment"> * by the Free Software Founda5"v3.v/spa3.1  12v/a>vspa3 class="comment"> *v/spa3.1  13v/a>vspa3 class="comment"> * Some ideas are from omap-aes.c drivers.v/spa3.1  14v/a>vspa3 class="comment"> */v/spa3.1  15v/a>1  16v/a>1  17v/a>#include <linux/kernel.hv/a>>1  18v/a>#include <linux/module.hv/a>>1  19v/a>#include <linux/slab.hv/a>>1  20v/a>#include <linux/err.hv/a>>1  21v/a>#include <linux/clk.hv/a>>1  22v/a>#include <linux/io.hv/a>>1  23v/a>#include <linux/hw_random.hv/a>>1  24v/a>#include <linux/platform_device.hv/a>>1  25v/a>1  26v/a>#include <linux/device.hv/a>>1  27v/a>#include <linux/init.hv/a>>1  28v/a>#include <linux/errno.hv/a>>1  29v/a>#include <linux/interrupt.hv/a>>1  30v/a>#include <linux/irq.hv/a>>1  31v/a>#include <linux/scatterlist.hv/a>>1  32v/a>#include <linux/dma-mapping.hv/a>>1  33v/a>#include <linux/of_device.hv/a>>1  34v/a>#include <linux/delay.hv/a>>1  35v/a>#include <linux/crypto.hv/a>>1  36v/a>#include <linux/cryptohash.hv/a>>1  37v/a>#include <crypto/scatterwalk.hv/a>>1  38v/a>#include <crypto/algapi.hv/a>>1  39v/a>#include <crypto/des.hv/a>>1  40v/a>#include <crypto/hash.hv/a>>1  41v/a>#include <crypto/internal/hash.hv/a>>1  42v/a>#include <linux/platform_data/crypto-atmel.hv/a>>1  43v/a>#include "atmel-tdes-regs.hv/a>"1  44v/a>1  45v/a>vspa3 class="comment">/* TDES flags  */v/spa3.1  46v/a>#define va href="+code=TDES_FLAGS_MODE_MASK" class="sref">TDES_FLAGS_MODE_MASKv/a>            0x00ff1  47v/a>#define va href="+code=TDES_FLAGS_ENCRYPT" class="sref">TDES_FLAGS_ENCRYPTv/a>      va href="+code=BIT" class="sref">BITv/a>(0)1  48v/a>#define va href="+code=TDES_FLAGS_CBC" class="sref">TDES_FLAGS_CBCv/a>          va href="+code=BIT" class="sref">BITv/a>(1)1  49v/a>#define va href="+code=TDES_FLAGS_CFB" class="sref">TDES_FLAGS_CFBv/a>          va href="+code=BIT" class="sref">BITv/a>(2)1  50v/a>#define va href="+code=TDES_FLAGS_CFB8" class="sref">TDES_FLAGS_CFB8v/a>         va href="+code=BIT" class="sref">BITv/a>(3)1  51v/a>#define va href="+code=TDES_FLAGS_CFB16" class="sref">TDES_FLAGS_CFB16v/a>        va href="+code=BIT" class="sref">BITv/a>(4)1  52v/a>#define va href="+code=TDES_FLAGS_CFB32" class="sref">TDES_FLAGS_CFB32v/a>        va href="+code=BIT" class="sref">BITv/a>(5)1  53v/a>#define va href="+code=TDES_FLAGS_CFB64" class="sref">TDES_FLAGS_CFB64v/a>        va href="+code=BIT" class="sref">BITv/a>(6)1  54v/a>#define va href="+code=TDES_FLAGS_OFB" class="sref">TDES_FLAGS_OFBv/a>          va href="+code=BIT" class="sref">BITv/a>(7)1  55v/a>1  56v/a>#define va href="+code=TDES_FLAGS_INIT" class="sref">TDES_FLAGS_INITv/a>         va href="+code=BIT" class="sref">BITv/a>(16)1  57v/a>#define va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>         va href="+code=BIT" class="sref">BITv/a>(17)1  58v/a>#define va href="+code=TDES_FLAGS_BUSY" class="sref">TDES_FLAGS_BUSYv/a>         va href="+code=BIT" class="sref">BITv/a>(18)1  59v/a>#define va href="+code=TDES_FLAGS_DMA" class="sref">TDES_FLAGS_DMAv/a>          va href="+code=BIT" class="sref">BITv/a>(19)1  60v/a>1  61v/a>#define va href="+code=ATMEL_TDES_QUEUE_LENGTH" class="sref">ATMEL_TDES_QUEUE_LENGTHv/a> 501  62v/a>1  63v/a>#define va href="+code=CFB8_BLOCK_SIZE" class="sref">CFB8_BLOCK_SIZEv/a>         11  64v/a>#define va href="+code=CFB16_BLOCK_SIZE" class="sref">CFB16_BLOCK_SIZEv/a>        21  65v/a>#define va href="+code=CFB32_BLOCK_SIZE" class="sref">CFB32_BLOCK_SIZEv/a>        41  66v/a>1  67v/a>struct va href="+code=atmel_tdes_caps" class="sref">atmel_tdes_capsv/a> {1  68v/a>        va href="+code=bool" class="sref">boolv/a>    va href="+code=has_dma" class="sref">has_dmav/a>;1  69v/a>        va href="+code=u32" class="sref">u32v/a>             va href="+code=has_cfb_3keys" class="sref">has_cfb_3keysv/a>;1  70v/a>};1  71v/a>1  72v/a>struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a>;1  73v/a>1  74v/a>struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> {1  75v/a>        struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>;1  76v/a>1  77v/a>        int             va href="+code=keylen" class="sref">keylenv/a>;1  78v/a>        va href="+code=u32" class="sref">u32v/a>             va href="+code=key" class="sref">keyv/a>[3*va href="+code=DES_KEY_SIZE" class="sref">DES_KEY_SIZEv/a> / sizeof(va href="+code=u32" class="sref">u32v/a>)];1  79v/a>        unsigned long   va href="+code=flags" class="sref">flagsv/a>;1  80v/a>1  81v/a>        va href="+code=u16" class="sref">u16v/a>             va href="+code=block_size" class="sref">block_sizev/a>;1  82v/a>};1  83v/a>1  84v/a>struct va href="+code=atmel_tdes_reqctx" class="sref">atmel_tdes_reqctxv/a> {1  85v/a>        unsigned long va href="+code=mode" class="sref">modev/a>;1  86v/a>};1  87v/a>1  88v/a>struct va href="+code=atmel_tdes_dma" class="sref">atmel_tdes_dmav/a> {1  89v/a>        struct va href="+code=dma_chan" class="sref">dma_chanv/a>                 *va href="+code=chan" class="sref">chanv/a>;1  90v/a>        struct va href="+code=dma_slave_config" class="sref">dma_slave_configv/a> va href="+code=dma_conf" class="sref">dma_confv/a>;1  91v/a>};1  92v/a>1  93v/a>struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> {1  94v/a>        struct va href="+code=list_head" class="sref">list_headv/a>        va href="+code=list" class="sref">listv/a>;1  95v/a>        unsigned long           va href="+code=phys_base" class="sref">phys_basev/a>;1  96v/a>        void va href="+code=__iomem" class="sref">__iomemv/a>            *va href="+code=io_base" class="sref">io_basev/a>;1  97v/a>1  98v/a>        struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a>   *va href="+code=ctx" class="sref">ctxv/a>;1  99v/a>        struct va href="+code=device" class="sref">devicev/a>           *va href="+code=dev" class="sref">devv/a>;1 100v/a>        struct va href="+code=clk" class="sref">clkv/a>                      *va href="+code=iclk" class="sref">iclkv/a>;1 101v/a>        int                                     va href="+code=irq" class="sref">irqv/a>;1 102v/a>1 103v/a>        unsigned long           va href="+code=flags" class="sref">flagsv/a>;1 104v/a>        int                     va href="+code=err" class="sref">errv/a>;1 105v/a>1 106v/a>        va href="+code=spinlock_t" class="sref">spinlock_tv/a>              va href="+code=lock" class="sref">lockv/a>;1 107v/a>        struct va href="+code=crypto_queue" class="sref">crypto_queuev/a>     va href="+code=queue" class="sref">queuev/a>;1 108v/a>1 109v/a>        struct va href="+code=tasklet_struct" class="sref">tasklet_structv/a>   va href="+code=done_task" class="sref">done_taskv/a>;1 110v/a>        struct va href="+code=tasklet_struct" class="sref">tasklet_structv/a>   va href="+code=queue_task" class="sref">queue_taskv/a>;1 111v/a>1 112v/a>        struct va href="+code=ablkcipher_request" class="sref">ablkcipher_requestv/a>       *va href="+code=req" class="sref">reqv/a>;1 113v/a>        va href="+code=size_t" class="sref">size_tv/a>                          va href="+code=total" class="sref">totalv/a>;1 114v/a>1 115v/a>        struct va href="+code=scatterlist" class="sref">scatterlistv/a>      *va href="+code=in_sg" class="sref">in_sgv/a>;1 116v/a>        unsigned int            va href="+code=nb_in_sg" class="sref">nb_in_sgv/a>;1 117v/a>        va href="+code=size_t" class="sref">size_tv/a>                          va href="+code=in_offset" class="sref">in_offsetv/a>;1 118v/a>        struct va href="+code=scatterlist" class="sref">scatterlistv/a>      *va href="+code=out_sg" class="sref">out_sgv/a>;1 119v/a>        unsigned int            va href="+code=nb_out_sg" class="sref">nb_out_sgv/a>;1 120v/a>        va href="+code=size_t" class="sref">size_tv/a>                          va href="+code=out_offset" class="sref">out_offsetv/a>;1 121v/a>1 122v/a>        va href="+code=size_t" class="sref">size_tv/a>  va href="+code=buflen" class="sref">buflenv/a>;1 123v/a>        va href="+code=size_t" class="sref">size_tv/a>  va href="+code=dma_size" class="sref">dma_sizev/a>;1 124v/a>1 125v/a>        void    *va href="+code=buf_in" class="sref">buf_inv/a>;1 126v/a>        int             va href="+code=dma_in" class="sref">dma_inv/a>;1 127v/a>        va href="+code=dma_addr_t" class="sref">dma_addr_tv/a>      va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>;1 128v/a>        struct va href="+code=atmel_tdes_dma" class="sref">atmel_tdes_dmav/a>   va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>;1 129v/a>1 130v/a>        void    *va href="+code=buf_out" class="sref">buf_outv/a>;1 131v/a>        int             va href="+code=dma_out" class="sref">dma_outv/a>;1 132v/a>        va href="+code=dma_addr_t" class="sref">dma_addr_tv/a>      va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>;1 133v/a>        struct va href="+code=atmel_tdes_dma" class="sref">atmel_tdes_dmav/a>   va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>;1 134v/a>1 135v/a>        struct va href="+code=atmel_tdes_caps" class="sref">atmel_tdes_capsv/a>  va href="+code=caps" class="sref">capsv/a>;1 136v/a>1 137v/a>        va href="+code=u32" class="sref">u32v/a>     va href="+code=hw_version" class="sref">hw_versionv/a>;1 138v/a>};1 139v/a>1 140v/a>struct va href="+code=atmel_tdes_drv" class="sref">atmel_tdes_drvv/a> {1 141v/a>        struct va href="+code=list_head" class="sref">list_headv/a>        va href="+code=dev_list" class="sref">dev_listv/a>;1 142v/a>        va href="+code=spinlock_t" class="sref">spinlock_tv/a>              va href="+code=lock" class="sref">lockv/a>;1 143v/a>};1 144v/a>1 145v/a>static struct va href="+code=atmel_tdes_drv" class="sref">atmel_tdes_drvv/a> va href="+code=atmel_tdes" class="sref">atmel_tdesv/a> = {1 146v/a>        .va href="+code=dev_list" class="sref">dev_listv/a> = va href="+code=LIST_HEAD_INIT" class="sref">LIST_HEAD_INITv/a>(va href="+code=atmel_tdes" class="sref">atmel_tdesv/a>.va href="+code=dev_list" class="sref">dev_listv/a>),1 147v/a>        .va href="+code=lock" class="sref">lockv/a> = va href="+code=__SPIN_LOCK_UNLOCKED" class="sref">__SPIN_LOCK_UNLOCKEDv/a>(va href="+code=atmel_tdes" class="sref">atmel_tdesv/a>.va href="+code=lock" class="sref">lockv/a>),1 148v/a>};1 149v/a>1 150v/a>static int va href="+code=atmel_tdes_sg_copy" class="sref">atmel_tdes_sg_copyv/a>(struct va href="+code=scatterlist" class="sref">scatterlistv/a> **va href="+code=sg" class="sref">sgv/a>, va href="+code=size_t" class="sref">size_tv/a> *va href="+code=offset" class="sref">offsetv/a>,1 151v/a>                        void *va href="+code=buf" class="sref">bufv/a>, va href="+code=size_t" class="sref">size_tv/a> va href="+code=buflen" class="sref">buflenv/a>, va href="+code=size_t" class="sref">size_tv/a> va href="+code=total" class="sref">totalv/a>, int va href="+code=out" class="sref">outv/a>)1 152v/a>{1 153v/a>        unsigned int va href="+code=count" class="sref">countv/a>, va href="+code=off" class="sref">offv/a> = 0;1 154v/a>1 155v/a>        while (va href="+code=buflen" class="sref">buflenv/a> && va href="+code=total" class="sref">totalv/a>) {1 156v/a>                va href="+code=count" class="sref">countv/a> = va href="+code=min" class="sref">minv/a>((*va href="+code=sg" class="sref">sgv/a>)->va href="+code=length" class="sref">lengthv/a> - *va href="+code=offset" class="sref">offsetv/a>, va href="+code=total" class="sref">totalv/a>);1 157v/a>                va href="+code=count" class="sref">countv/a> = va href="+code=min" class="sref">minv/a>(va href="+code=count" class="sref">countv/a>, va href="+code=buflen" class="sref">buflenv/a>);1 158v/a>1 159v/a>                if (!va href="+code=count" class="sref">countv/a>)1 160v/a>                        return va href="+code=off" class="sref">offv/a>;1 161v/a>1 162v/a>                va href="+code=scatterwalk_map_and_copy" class="sref">scatterwalk_map_and_copyv/a>(va href="+code=buf" class="sref">bufv/a> + va href="+code=off" class="sref">offv/a>, *va href="+code=sg" class="sref">sgv/a>, *va href="+code=offset" class="sref">offsetv/a>, va href="+code=count" class="sref">countv/a>, va href="+code=out" class="sref">outv/a>);1 163v/a>1 164v/a>                va href="+code=off" class="sref">offv/a> += va href="+code=count" class="sref">countv/a>;1 165v/a>                va href="+code=buflen" class="sref">buflenv/a> -= va href="+code=count" class="sref">countv/a>;1 166v/a>                *va href="+code=offset" class="sref">offsetv/a> += va href="+code=count" class="sref">countv/a>;1 167v/a>                va href="+code=total" class="sref">totalv/a> -= va href="+code=count" class="sref">countv/a>;1 168v/a>1 169v/a>                if (*va href="+code=offset" class="sref">offsetv/a> == (*va href="+code=sg" class="sref">sgv/a>)->va href="+code=length" class="sref">lengthv/a>) {1 170v/a>                        *va href="+code=sg" class="sref">sgv/a> = va href="+code=sg_next" class="sref">sg_nextv/a>(*va href="+code=sg" class="sref">sgv/a>);1 171v/a>                        if (*va href="+code=sg" class="sref">sgv/a>)1 172v/a>                                *va href="+code=offset" class="sref">offsetv/a> = 0;1 173v/a>                        else1 174v/a>                                va href="+code=total" class="sref">totalv/a> = 0;1 175v/a>                }1 176v/a>        }1 177v/a>1 178v/a>        return va href="+code=off" class="sref">offv/a>;1 179v/a>}1 180v/a>1 181v/a>static va href="+code=inline" class="sref">inlinev/a> va href="+code=u32" class="sref">u32v/a> va href="+code=atmel_tdes_read" class="sref">atmel_tdes_readv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>, va href="+code=u32" class="sref">u32v/a> va href="+code=offset" class="sref">offsetv/a>)1 182v/a>{1 183v/a>        return va href="+code=readl_relaxed" class="sref">readl_relaxedv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=io_base" class="sref">io_basev/a> + va href="+code=offset" class="sref">offsetv/a>);1 184v/a>}1 185v/a>1 186v/a>static va href="+code=inline" class="sref">inlinev/a> void va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>,1 187v/a>                                        va href="+code=u32" class="sref">u32v/a> va href="+code=offset" class="sref">offsetv/a>, va href="+code=u32" class="sref">u32v/a> va href="+code=.2.2)1 188v/a>{1 189v/a>        va href="+code=writel_relaxed" class="sref">writel_relaxedv/a>(va href="+code=.2.2, va href="+code=dd" class="sref">ddv/a>->va href="+code=io_base" class="sref">io_basev/a> + va href="+code=offset" class="sref">offsetv/a>);1 190v/a>}1 191v/a>1 192v/a>static void va href="+code=atmel_tdes_write_n" class="sref">atmel_tdes_write_nv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>, va href="+code=u32" class="sref">u32v/a> va href="+code=offset" class="sref">offsetv/a>,1 193v/a>                                        va href="+code=u32" class="sref">u32v/a> *va href="+code=.2.2, int va href="+code=count" class="sref">countv/a>)1 194v/a>{1 195v/a>        for (; va href="+code=count" class="sref">countv/a>--; va href="+code=.2.2++, va href="+code=offset" class="sref">offsetv/a> += 4)1 196v/a>                va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=offset" class="sref">offsetv/a>, *va href="+code=.2.2);1 197v/a>}1 198v/a>1 199v/a>static struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=atmel_tdes_find_dev" class="sref">atmel_tdes_find_devv/a>(struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a>)1 200v/a>{1 201v/a>        struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=tdes_dd" class="sref">tdes_ddv/a> = va href="+code=NULL" class="sref">NULLv/a>;1 202v/a>        struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=tmp" class="sref">tmpv/a>;1 203v/a>1 204v/a>        va href="+code=spin_lock_bh" class="sref">spin_lock_bhv/a>(&va href="+code=atmel_tdes" class="sref">atmel_tdesv/a>.va href="+code=lock" class="sref">lockv/a>);1 205v/a>        if (!va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a>) {1 206v/a>                va href="+code=list_for_each_entry" class="sref">list_for_each_entryv/a>(va href="+code=tmp" class="sref">tmpv/a>, &va href="+code=atmel_tdes" class="sref">atmel_tdesv/a>.va href="+code=dev_list" class="sref">dev_listv/a>, va href="+code=list" class="sref">listv/a>) {1 207v/a>                        va href="+code=tdes_dd" class="sref">tdes_ddv/a> = va href="+code=tmp" class="sref">tmpv/a>;1 208v/a>                        break;1 209v/a>                }1 210v/a>                va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a> = va href="+code=tdes_dd" class="sref">tdes_ddv/a>;1 211v/a>        } else {1 212v/a>                va href="+code=tdes_dd" class="sref">tdes_ddv/a> = va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a>;1 213v/a>        }1 214v/a>        va href="+code=spin_unlock_bh" class="sref">spin_unlock_bhv/a>(&va href="+code=atmel_tdes" class="sref">atmel_tdesv/a>.va href="+code=lock" class="sref">lockv/a>);1 215v/a>1 216v/a>        return va href="+code=tdes_dd" class="sref">tdes_ddv/a>;1 217v/a>}1 218v/a>1 219v/a>static int va href="+code=atmel_tdes_hw_init" class="sref">atmel_tdes_hw_initv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 220v/a>{1 221v/a>        int va href="+code=err" class="sref">errv/a>;1 222v/a>1 223v/a>        va href="+code=err" class="sref">errv/a> = va href="+code=clk_prepare_enablo" class="sref">clk_prepare_enablov/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=iclk" class="sref">iclkv/a>);1 224v/a>        if (va href="+code=err" class="sref">errv/a>)1 225v/a>                return va href="+code=err" class="sref">errv/a>;1 226v/a>1 227v/a>        if (!(va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_INIT" class="sref">TDES_FLAGS_INITv/a>)) {1 228v/a>                va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_CR" class="sref">TDES_CRv/a>, va href="+code=TDES_CR_SWRST" class="sref">TDES_CR_SWRSTv/a>);1 229v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> |= va href="+code=TDES_FLAGS_INIT" class="sref">TDES_FLAGS_INITv/a>;1 230v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=err" class="sref">errv/a> = 0;1 231v/a>        }1 232v/a>1 233v/a>        return 0;1 234v/a>}1 235v/a>1 236v/a>static va href="+code=inline" class="sref">inlinev/a> unsigned int va href="+code=atmel_tdes_get_version" class="sref">atmel_tdes_get_versionv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 237v/a>{1 238v/a>        return va href="+code=atmel_tdes_read" class="sref">atmel_tdes_readv/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_HW_VERSION" class="sref">TDES_HW_VERSIONv/a>) & 0x00000fff;1 239v/a>}1 240v/a>1 241v/a>static void va href="+code=atmel_tdes_hw_version_init" class="sref">atmel_tdes_hw_version_initv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 242v/a>{1 243v/a>        va href="+code=atmel_tdes_hw_init" class="sref">atmel_tdes_hw_initv/a>(va href="+code=dd" class="sref">ddv/a>);1 244v/a>1 245v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=hw_version" class="sref">hw_versionv/a> = va href="+code=atmel_tdes_get_version" class="sref">atmel_tdes_get_versionv/a>(va href="+code=dd" class="sref">ddv/a>);1 246v/a>1 247v/a>        va href="+code=dev_info" class="sref">dev_infov/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>,1 248v/a>                        "version: 0x%x\n", va href="+code=dd" class="sref">ddv/a>->va href="+code=hw_version" class="sref">hw_versionv/a>);1 249v/a>1 250v/a>        va href="+code=clk_disablo_unprepare" class="sref">clk_disablo_unpreparev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=iclk" class="sref">iclkv/a>);1 251v/a>}1 252v/a>1 253v/a>static void va href="+code=atmel_tdes_dma_callback" class="sref">atmel_tdes_dma_callbackv/a>(void *va href="+code=data" class="sref">datav/a>)1 254v/a>{1 255v/a>        struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a> = va href="+code=data" class="sref">datav/a>;1 256v/a>1 257v/a>        /* dma_lch_out - completed */1 258v/a>        va href="+code=tasklet_schedulo" class="sref">tasklet_schedulov/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=done_task" class="sref">done_taskv/a>);1 259v/a>}1 260v/a>1 261v/a>static int va href="+code=atmel_tdes_write_ctrl" class="sref">atmel_tdes_write_ctrlv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 262v/a>{1 263v/a>        int va href="+code=err" class="sref">errv/a>;1 264v/a>        va href="+code=u32" class="sref">u32v/a> va href="+code=.2.2 = 0, va href="+code=.2.2 = va href="+code=TDES_MR_SMOD_PDC" class="sref">TDES_MR_SMOD_PDCv/a>;1 265v/a>1 266v/a>        va href="+code=err" class="sref">errv/a> = va href="+code=atmel_tdes_hw_init" class="sref">atmel_tdes_hw_initv/a>(va href="+code=dd" class="sref">ddv/a>);1 267v/a>1 268v/a>        if (va href="+code=err" class="sref">errv/a>)1 269v/a>                return va href="+code=err" class="sref">errv/a>;1 270v/a>1 271v/a>        if (!va href="+code=dd" class="sref">ddv/a>->va href="+code=caps" class="sref">capsv/a>.va href="+code=has_dma" class="sref">has_dmav/a>)1 272v/a>                va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_PTCR" class="sref">TDES_PTCRv/a>,1 273v/a>                        va href="+code=TDES_PTCR_TXTDIS" class="sref">TDES_PTCR_TXTDISv/a> | va href="+code=TDES_PTCR_RXTDIS" class="sref">TDES_PTCR_RXTDISv/a>);1 274v/a>1 275v/a>        /* MR register must be set before IV registers */1 276v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a>->va href="+code=keylen" class="sref">keylenv/a> > (va href="+code=DES_KEY_SIZE" class="sref">DES_KEY_SIZEv/a> << 1)) {1 277v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_KEYMOD_3KEY" class="sref">TDES_MR_KEYMOD_3KEYv/a>;1 278v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_TDESMOD_TDES" class="sref">TDES_MR_TDESMOD_TDESv/a>;1 279v/a>        } else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a>->va href="+code=keylen" class="sref">keylenv/a> > va href="+code=DES_KEY_SIZE" class="sref">DES_KEY_SIZEv/a>) {1 280v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_KEYMOD_2KEY" class="sref">TDES_MR_KEYMOD_2KEYv/a>;1 281v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_TDESMOD_TDES" class="sref">TDES_MR_TDESMOD_TDESv/a>;1 282v/a>        } else {1 283v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_TDESMOD_DES" class="sref">TDES_MR_TDESMOD_DESv/a>;1 284v/a>        }1 285v/a>1 286v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CBC" class="sref">TDES_FLAGS_CBCv/a>) {1 287v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_OPMOD_CBC" class="sref">TDES_MR_OPMOD_CBCv/a>;1 288v/a>        } else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB" class="sref">TDES_FLAGS_CFBv/a>) {1 289v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_OPMOD_CFB" class="sref">TDES_MR_OPMOD_CFBv/a>;1 290v/a>1 291v/a>                if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB8" class="sref">TDES_FLAGS_CFB8v/a>)1 292v/a>                        va href="+code=.2.2 |= va href="+code=TDES_MR_CFBS_8b" class="sref">TDES_MR_CFBS_8bv/a>;1 293v/a>                else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB16" class="sref">TDES_FLAGS_CFB16v/a>)1 294v/a>                        va href="+code=.2.2 |= va href="+code=TDES_MR_CFBS_16b" class="sref">TDES_MR_CFBS_16bv/a>;1 295v/a>                else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB32" class="sref">TDES_FLAGS_CFB32v/a>)1 296v/a>                        va href="+code=.2.2 |= va href="+code=TDES_MR_CFBS_32b" class="sref">TDES_MR_CFBS_32bv/a>;1 297v/a>                else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB64" class="sref">TDES_FLAGS_CFB64v/a>)1 298v/a>                        .2 |= va href="+code=TDES_MR_CFBS_64b" class="sref">TDES_MR_CFBS_64bv/a>;1 299v/a>        } else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_OFB" class="sref">TDES_FLAGS_OFBv/a>) {1 300v/a>                va href="+code=.2.2 |= va href="+code=TDES_MR_OPMOD_OFB" class="sref">TDES_MR_OPMOD_OFBv/a>;1 301v/a>        }1 302v/a>1 303v/a>        if ((va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_ENCRYPT" class="sref">TDES_FLAGS_ENCRYPTv/a>) || (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_OFB" class="sref">TDES_FLAGS_OFBv/a>))1 304v/a>                .2 |= va href="+code=TDES_MR_CYPHER_ENC" class="sref">TDES_MR_CYPHER_ENCv/a>;1 305v/a>1 306v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_CR" class="sref">TDES_CRv/a>, va href="+code=.2.2);1 307v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_MR" class="sref">TDES_MRv/a>, va href="+code=.2.2);1 308v/a>1 309v/a>        va href="+code=atmel_tdes_write_n" class="sref">atmel_tdes_write_nv/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_KEY1W1R" class="sref">TDES_KEY1W1Rv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a>->va href="+code=key" class="sref">keyv/a>,1 310v/a>                                                va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a>->va href="+code=keylen" class="sref">keylenv/a> >> 2);1 311v/a>1 312v/a>        if (((va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CBC" class="sref">TDES_FLAGS_CBCv/a>) || (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB" class="sref">TDES_FLAGS_CFBv/a>) ||1 313v/a>                (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_OFB" class="sref">TDES_FLAGS_OFBv/a>)) && va href="+code=dd" class="sref">ddv/a>->va href="+code=req" class="sref">reqv/a>->va href="+code=info" class="sref">infov/a>) {1 314v/a>                atmel_tdes_write_nv/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_IV1R" class="sref">TDES_IV1Rv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=req" class="sref">reqv/a>->va href="+code=info" class="sref">infov/a>, 2);1 315v/a>        }1 316v/a>1 317v/a>        return 0;1 318v/a>}1 319v/a>1 320v/a>static int va href="+code=atmel_tdes_crypt_pdc_stop" class="sref">atmel_tdes_crypt_pdc_stopv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 321v/a>{1 322v/a>        int va href="+code=err" class="sref">errv/a> = 0;1 323v/a>        va href="+code=size_t" class="sref">size_tv/a> va href="+code=count" class="sref">countv/a>;1 324v/a>1 325v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_PTCR" class="sref">TDES_PTCRv/a>, va href="+code=TDES_PTCR_TXTDIS" class="sref">TDES_PTCR_TXTDISv/a>|va href="+code=TDES_PTCR_RXTDIS" class="sref">TDES_PTCR_RXTDISv/a>);1 326v/a>1 327v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>) {1 328v/a>                va href="+code=dma_unmap_sg" class="sref">dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>, 1, va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 329v/a>                va href="+code=dma_unmap_sg" class="sref">dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>, 1, va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 330v/a>        } else {1 331v/a>                va href="+code=dma_sync_single_for_device" class="sref">dma_sync_single_for_devicev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>,1 332v/a>                                           va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a>, va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 333v/a>1 334v/a>                /* copy data */1 335v/a>                va href="+code=count" class="sref">countv/a> = va href="+code=atmel_tdes_sg_copy" class="sref">atmel_tdes_sg_copyv/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>, &va href="+code=dd" class="sref">ddv/a>->va href="+code=out_offset" class="sref">out_offsetv/a>,1 336v/a>                                va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a>, 1);1 337v/a>                if (va href="+code=count" class="sref">countv/a> != va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a>) {1 338v/a>                        errv/a> = -EINVALv/a>;1 339v/a>                        pr_errv/a>(vspan class="string">"not all data converted: %u\n", va href="+code=count" class="sref">countv/a>);1 340v/a>                }1 341v/a>        }1 342v/a>1 343v/a>        return va href="+code=err" class="sref">errv/a>;1 344v/a>}1 345v/a>1 346v/a>static int va href="+code=atmel_tdes_buff_init" class="sref">atmel_tdes_buff_initv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 347v/a>{1 348v/a>        int va href="+code=err" class="sref">errv/a> = -ENOMEMv/a>;1 349v/a>1 350v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_in" class="sref">buf_inv/a> = (void *)va href="+code=__get_free_pages" class="sref">__get_free_pagesv/a>(va href="+code=GFP_KERNEL" class="sref">GFP_KERNELv/a>, 0);1 351v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a> = (void *)va href="+code=__get_free_pages" class="sref">__get_free_pagesv/a>(va href="+code=GFP_KERNEL" class="sref">GFP_KERNELv/a>, 0);1 352v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a> = va href="+code=PAGE_SIZE" class="sref">PAGE_SIZEv/a>;1 353v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a> &= ~(va href="+code=DES_BLOCK_SIZE" class="sref">DES_BLOCK_SIZEv/a> - 1);1 354v/a>1 355v/a>        if (!va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_in" class="sref">buf_inv/a> || !va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a>) {1 356v/a>                va href="+code=dev_err" class="sref">dev_errv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"unablo to alloc pages.\n");1 357v/a>                goto va href="+code=err_alloc" class="sref">err_allocv/a>;1 358v/a>        }1 359v/a>1 360v/a>        vspan class="comment">/* MAP here */1 361v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_in" class="sref">dma_addr_inv/a> = va href="+code=dma_map_single" class="sref">dma_map_singlev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_in" class="sref">buf_inv/a>,1 362v/a>                                        va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>, va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 363v/a>        if (va href="+code=dma_mapping_error" class="sref">dma_mapping_errorv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>)) {1 364v/a>                dev_errv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"dma %d bytes error\n", va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>);1 365v/a>                va href="+code=err" class="sref">errv/a> = -EINVALv/a>;1 366v/a>                goto va href="+code=err_map_in" class="sref">err_map_inv/a>;1 367v/a>        }1 368v/a>1 369v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_out" class="sref">dma_addr_outv/a> = va href="+code=dma_map_single" class="sref">dma_map_singlev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a>,1 370v/a>                                        va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>, va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 371v/a>        if (va href="+code=dma_mapping_error" class="sref">dma_mapping_errorv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>)) {1 372v/a>                va href="+code=dev_err" class="sref">dev_errv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"dma %d bytes error\n", va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>);1 373v/a>                va href="+code=err" class="sref">errv/a> = -EINVALv/a>;1 374v/a>                goto va href="+code=err_map_out" class="sref">err_map_outv/a>;1 375v/a>        }1 376v/a>1 377v/a>        return 0;1 378v/a>1 379v/a>va href="+code=err_map_out" class="sref">err_map_outv/a>:1 380v/a>        va href="+code=dma_unmap_single" class="sref">dma_unmap_singlev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>,1 381v/a>                va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 382v/a>va href="+code=err_map_in" class="sref">err_map_inv/a>:1 383v/a>va href="+code=err_alloc" class="sref">err_allocv/a>:1 384v/a>        va href="+code=free_page" class="sref">free_pagev/a>((unsigned long)va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a>);1 385v/a>        va href="+code=free_page" class="sref">free_pagev/a>((unsigned long)va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_in" class="sref">buf_inv/a>);1 386v/a>        if (va href="+code=err" class="sref">errv/a>)1 387v/a>                va href="+code=pr_err" class="sref">pr_errv/a>(vspan class="string">"error: %d\n", va href="+code=err" class="sref">errv/a>);1 388v/a>        return va href="+code=err" class="sref">errv/a>;1 389v/a>}1 390v/a>1 391v/a>static void va href="+code=atmel_tdes_buff_cleanup" class="sref">atmel_tdes_buff_cleanupv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 392v/a>{1 393v/a>        va href="+code=dma_unmap_single" class="sref">dma_unmap_singlev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>,1 394v/a>                         va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 395v/a>        va href="+code=dma_unmap_single" class="sref">dma_unmap_singlev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>,1 396v/a>                va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 397v/a>        va href="+code=free_page" class="sref">free_pagev/a>((unsigned long)va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a>);1 398v/a>        va href="+code=free_page" class="sref">free_pagev/a>((unsigned long)va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_in" class="sref">buf_inv/a>);1 399v/a>}1 400v/a>1 401v/a>static int va href="+code=atmel_tdes_crypt_pdc" class="sref">atmel_tdes_crypt_pdcv/a>(struct va href="+code=crypto_tfm" class="sref">crypto_tfmv/a> *va href="+code=tfm" class="sref">tfmv/a>, va href="+code=dma_addr_t" class="sref">dma_addr_tv/a> va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>,1 402v/a>                               va href="+code=dma_addr_t" class="sref">dma_addr_tv/a> va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>, int va href="+code=length" class="sref">lengthv/a>)1 403v/a>{1 404v/a>        struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_tfm_ctx" class="sref">crypto_tfm_ctxv/a>(va href="+code=tfm" class="sref">tfmv/a>);1 405v/a>        struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a> = va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a>;1 406v/a>        int va href="+code=len32" class="sref">len32v/a>;1 407v/a>1 408v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a> = va href="+code=length" class="sref">lengthv/a>;1 409v/a>1 410v/a>        if (!(va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>)) {1 411v/a>                va href="+code=dma_sync_single_for_device" class="sref">dma_sync_single_for_devicev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>, va href="+code=length" class="sref">lengthv/a>,1 412v/a>                                           va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 413v/a>        }1 414v/a>1 415v/a>        if ((va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB" class="sref">TDES_FLAGS_CFBv/a>) && (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB8" class="sref">TDES_FLAGS_CFB8v/a>))1 416v/a>                va href="+code=len32" class="sref">len32v/a> = va href="+code=DIV_ROUND_UP" class="sref">DIV_ROUND_UPv/a>(va href="+code=length" class="sref">lengthv/a>, sizeof(va href="+code=u8" class="sref">u8v/a>));1 417v/a>        else if ((va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB" class="sref">TDES_FLAGS_CFBv/a>) && (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB16" class="sref">TDES_FLAGS_CFB16v/a>))1 418v/a>                va href="+code=len32" class="sref">len32v/a> = va href="+code=DIV_ROUND_UP" class="sref">DIV_ROUND_UPv/a>(va href="+code=length" class="sref">lengthv/a>, sizeof(va href="+code=u16" class="sref">u16v/a>));1 419v/a>        else1 420v/a>                va href="+code=len32" class="sref">len32v/a> = va href="+code=DIV_ROUND_UP" class="sref">DIV_ROUND_UPv/a>(va href="+code=length" class="sref">lengthv/a>, sizeof(va href="+code=u32" class="sref">u32v/a>));1 421v/a>1 422v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_PTCR" class="sref">TDES_PTCRv/a>, va href="+code=TDES_PTCR_TXTDIS" class="sref">TDES_PTCR_TXTDISv/a>|va href="+code=TDES_PTCR_RXTDIS" class="sref">TDES_PTCR_RXTDISv/a>);1 423v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_TPR" class="sref">TDES_TPRv/a>, va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>);1 424v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_TCR" class="sref">TDES_TCRv/a>, va href="+code=len32" class="sref">len32v/a>);1 425v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_RPR" class="sref">TDES_RPRv/a>, va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>);1 426v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_RCR" class="sref">TDES_RCRv/a>, va href="+code=len32" class="sref">len32v/a>);1 427v/a>1 428v/a>        vspan class="comment">/* Enablo Interrupt */1 429v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_IER" class="sref">TDES_IERv/a>, va href="+code=TDES_INT_ENDRX" class="sref">TDES_INT_ENDRXv/a>);1 430v/a>1 431v/a>        vspan class="comment">/* Start DMA transfer */1 432v/a>        va href="+code=atmel_tdes_write" class="sref">atmel_tdes_writev/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=TDES_PTCR" class="sref">TDES_PTCRv/a>, va href="+code=TDES_PTCR_TXTEN" class="sref">TDES_PTCR_TXTENv/a> | va href="+code=TDES_PTCR_RXTEN" class="sref">TDES_PTCR_RXTENv/a>);1 433v/a>1 434v/a>        return 0;1 435v/a>}1 436v/a>1 437v/a>static int va href="+code=atmel_tdes_crypt_dma" class="sref">atmel_tdes_crypt_dmav/a>(struct va href="+code=crypto_tfm" class="sref">crypto_tfmv/a> *va href="+code=tfm" class="sref">tfmv/a>, va href="+code=dma_addr_t" class="sref">dma_addr_tv/a> va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>,1 438v/a>                               va href="+code=dma_addr_t" class="sref">dma_addr_tv/a> va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>, int va href="+code=length" class="sref">lengthv/a>)1 439v/a>{1 440v/a>        struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_tfm_ctx" class="sref">crypto_tfm_ctxv/a>(va href="+code=tfm" class="sref">tfmv/a>);1 441v/a>        struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a> = va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a>;1 442v/a>        struct va href="+code=scatterlist" class="sref">scatterlistv/a> va href="+code=sg" class="sref">sgv/a>[2];1 443v/a>        struct va href="+code=dma_async_tx_descriptor" class="sref">dma_async_tx_descriptorv/a>  *va href="+code=in_desc" class="sref">in_descv/a>, *va href="+code=out_desc" class="sref">out_descv/a>;1 444v/a>1 445v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a> = va href="+code=length" class="sref">lengthv/a>;1 446v/a>1 447v/a>        if (!(va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>)) {1 448v/a>                va href="+code=dma_sync_single_for_device" class="sref">dma_sync_single_for_devicev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>, va href="+code=length" class="sref">lengthv/a>,1 449v/a>                                           va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 450v/a>        }1 451v/a>1 452v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB8" class="sref">TDES_FLAGS_CFB8v/a>) {1 453v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_addr_width" class="sref">dst_addr_widthv/a> =1 454v/a>                        va href="+code=DMA_SLAVE_BUSWIDTH_1_BYTE" class="sref">DMA_SLAVE_BUSWIDTH_1_BYTEv/a>;1 455v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_addr_width" class="sref">src_addr_widthv/a> =1 456v/a>                        va href="+code=DMA_SLAVE_BUSWIDTH_1_BYTE" class="sref">DMA_SLAVE_BUSWIDTH_1_BYTEv/a>;1 457v/a>        } else if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_CFB16" class="sref">TDES_FLAGS_CFB16v/a>) {1 458v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_addr_width" class="sref">dst_addr_widthv/a> =1 459v/a>                        DMA_SLAVE_BUSWIDTH_2_BYTESv/a>;1 460v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_addr_width" class="sref">src_addr_widthv/a> =1 461v/a>                        DMA_SLAVE_BUSWIDTH_2_BYTESv/a>;1 462v/a>        } else {1 463v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_addr_width" class="sref">dst_addr_widthv/a> =1 464v/a>                        DMA_SLAVE_BUSWIDTH_4_BYTESv/a>;1 465v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_addr_width" class="sref">src_addr_widthv/a> =1 466v/a>                        DMA_SLAVE_BUSWIDTH_4_BYTESv/a>;1 467v/a>        }1 468v/a>1 469v/a>        va href="+code=dmaengine_slave_config" class="sref">dmaengine_slave_configv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a>, &va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>);1 470v/a>        va href="+code=dmaengine_slave_config" class="sref">dmaengine_slave_configv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=chan" class="sref">chanv/a>, &va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>);1 471v/a>1 472v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> |= va href="+code=TDES_FLAGS_DMA" class="sref">TDES_FLAGS_DMAv/a>;1 473v/a>1 474v/a>        va href="+code=sg_init_tablo" class="sref">sg_init_tablov/a>(&va href="+code=sg" class="sref">sgv/a>[0], 1);1 475v/a>        va href="+code=sg_dma_address" class="sref">sg_dma_addressv/a>(&va href="+code=sg" class="sref">sgv/a>[0]) = va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>;1 476v/a>        va href="+code=sg_dma_len" class="sref">sg_dma_lenv/a>(&va href="+code=sg" class="sref">sgv/a>[0]) = va href="+code=length" class="sref">lengthv/a>;1 477v/a>1 478v/a>        va href="+code=sg_init_tablo" class="sref">sg_init_tablov/a>(&va href="+code=sg" class="sref">sgv/a>[1], 1);1 479v/a>        va href="+code=sg_dma_address" class="sref">sg_dma_addressv/a>(&va href="+code=sg" class="sref">sgv/a>[1]) = va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>;1 480v/a>        va href="+code=sg_dma_len" class="sref">sg_dma_lenv/a>(&va href="+code=sg" class="sref">sgv/a>[1]) = va href="+code=length" class="sref">lengthv/a>;1 481v/a>1 482v/a>        va href="+code=in_desc" class="sref">in_descv/a> = va href="+code=dmaengine_prep_slave_sg" class="sref">dmaengine_prep_slave_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a>, &va href="+code=sg" class="sref">sgv/a>[0],1 483v/a>                                1, va href="+code=DMA_MEM_TO_DEV" class="sref">DMA_MEM_TO_DEVv/a>,1 484v/a>                                DMA_PREP_INTERRUPTv/a>  |  DMA_CTRL_ACKv/a>);1 485v/a>        if (!va href="+code=in_desc" class="sref">in_descv/a>)1 486v/a>                return -EINVALv/a>;1 487v/a>1 488v/a>        va href="+code=out_desc" class="sref">out_descv/a> = va href="+code=dmaengine_prep_slave_sg" class="sref">dmaengine_prep_slave_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=chan" class="sref">chanv/a>, &va href="+code=sg" class="sref">sgv/a>[1],1 489v/a>                                1, va href="+code=DMA_DEV_TO_MEM" class="sref">DMA_DEV_TO_MEMv/a>,1 490v/a>                                DMA_PREP_INTERRUPTv/a> | va href="+code=DMA_CTRL_ACK" class="sref">DMA_CTRL_ACKv/a>);1 491v/a>        if (!va href="+code=out_desc" class="sref">out_descv/a>)1 492v/a>                return -EINVALv/a>;1 493v/a>1 494v/a>        va href="+code=out_desc" class="sref">out_descv/a>->va href="+code=callback" class="sref">callbackv/a> = va href="+code=atmel_tdes_dma_callback" class="sref">atmel_tdes_dma_callbackv/a>;1 495v/a>        va href="+code=out_desc" class="sref">out_descv/a>->va href="+code=callback_param" class="sref">callback_paramv/a> = va href="+code=dd" class="sref">ddv/a>;1 496v/a>1 497v/a>        va href="+code=dmaengine_submit" class="sref">dmaengine_submitv/a>(va href="+code=out_desc" class="sref">out_descv/a>);1 498v/a>        va href="+code=dma_async_issue_pending" class="sref">dma_async_issue_pendingv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=chan" class="sref">chanv/a>);1 499v/a>1 500v/a>        va href="+code=dmaengine_submit" class="sref">dmaengine_submitv/a>(va href="+code=in_desc" class="sref">in_descv/a>);1 501v/a>        va href="+code=dma_async_issue_pending" class="sref">dma_async_issue_pendingv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a>);1 502v/a>1 503v/a>        return 0;1 504v/a>}1 505v/a>1 506v/a>static int va href="+code=atmel_tdes_crypt_start" class="sref">atmel_tdes_crypt_startv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 507v/a>{1 508v/a>        struct va href="+code=crypto_tfm" class="sref">crypto_tfmv/a> *va href="+code=tfm" class="sref">tfmv/a> = va href="+code=crypto_ablkcipher_tfm" class="sref">crypto_ablkcipher_tfmv/a>(1 509v/a>                                        va href="+code=crypto_ablkcipher_reqtfm" class="sref">crypto_ablkcipher_reqtfmv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=req" class="sref">reqv/a>));1 510v/a>        int va href="+code=err" class="sref">errv/a>, va href="+code=fast" class="sref">fastv/a> = 0, va href="+code=in" class="sref">inv/a>, va href="+code=out" class="sref">outv/a>;1 511v/a>        va href="+code=size_t" class="sref">size_tv/a> va href="+code=count" class="sref">countv/a>;1 512v/a>        va href="+code=dma_addr_t" class="sref">dma_addr_tv/a> va href="+code=addr_in" class="sref">addr_inv/a>, va href="+code=addr_out" class="sref">addr_outv/a>;1 513v/a>1 514v/a>        if ((!va href="+code=dd" class="sref">ddv/a>->va href="+code=in_offset" class="sref">in_offsetv/a>) && (!va href="+code=dd" class="sref">ddv/a>->va href="+code=out_offset" class="sref">out_offsetv/a>)) {1 515v/a>                vspan class="comment">/* check for alignment */1 516v/a>                va href="+code=in" class="sref">inv/a> = va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>((va href="+code=u32" class="sref">u32v/a>)va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>->va href="+code=offset" class="sref">offsetv/a>, sizeof(va href="+code=u32" class="sref">u32v/a>)) &&1 517v/a>                        va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>->va href="+code=length" class="sref">lengthv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a>->va href="+code=block_size" class="sref">block_sizev/a>);1 518v/a>                va href="+code=out" class="sref">outv/a> = va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>((va href="+code=u32" class="sref">u32v/a>)va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>->va href="+code=offset" class="sref">offsetv/a>, sizeof(va href="+code=u32" class="sref">u32v/a>)) &&1 519v/a>                        IS_ALIGNEDv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>->va href="+code=length" class="sref">lengthv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a>->va href="+code=block_size" class="sref">block_sizev/a>);1 520v/a>                va href="+code=fast" class="sref">fastv/a> = va href="+code=in" class="sref">inv/a> && va href="+code=out" class="sref">outv/a>;1 521v/a>1 522v/a>                if (va href="+code=sg_dma_len" class="sref">sg_dma_lenv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>) != va href="+code=sg_dma_len" class="sref">sg_dma_lenv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>))1 523v/a>                        va href="+code=fast" class="sref">fastv/a> = 0;1 524v/a>        }1 525v/a>1 526v/a>1 527v/a>        if (va href="+code=fast" class="sref">fastv/a>)  {1 528v/a>                va href="+code=count" class="sref">countv/a> = va href="+code=min" class="sref">minv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=total" class="sref">totalv/a>, va href="+code=sg_dma_len" class="sref">sg_dma_lenv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>));1 529v/a>                va href="+code=count" class="sref">countv/a> = va href="+code=min" class="sref">minv/a>(va href="+code=count" class="sref">countv/a>, va href="+code=sg_dma_len" class="sref">sg_dma_lenv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>));1 530v/a>1 531v/a>                va href="+code=err" class="sref">errv/a> = va href="+code=dma_map_sg" class="sref">dma_map_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>, 1, va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 532v/a>                if (!va href="+code=err" class="sref">errv/a>) {1 533v/a>                        va href="+code=dev_err" class="sref">dev_errv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"dma_map_sg() error\n");1 534v/a>                        return -EINVALv/a>;1 535v/a>                }1 536v/a>1 537v/a>                va href="+code=err" class="sref">errv/a> = va href="+code=dma_map_sg" class="sref">dma_map_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>, 1,1 538v/a>                                va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 539v/a>                if (!va href="+code=err" class="sref">errv/a>) {1 540v/a>                        va href="+code=dev_err" class="sref">dev_errv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"dma_map_sg() error\n");1 541v/a>                        dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>, 1,1 542v/a>                                va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 543v/a>                        return -EINVALv/a>;1 544v/a>                }1 545v/a>1 546v/a>                va href="+code=addr_in" class="sref">addr_inv/a> = va href="+code=sg_dma_address" class="sref">sg_dma_addressv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>);1 547v/a>                va href="+code=addr_out" class="sref">addr_outv/a> = va href="+code=sg_dma_address" class="sref">sg_dma_addressv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>);1 548v/a>1 549v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> |= va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>;1 550v/a>1 551v/a>        } else {1 552v/a>                vspan class="comment">/* use cache buffers */1 553v/a>                va href="+code=count" class="sref">countv/a> = va href="+code=atmel_tdes_sg_copy" class="sref">atmel_tdes_sg_copyv/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>, &va href="+code=dd" class="sref">ddv/a>->va href="+code=in_offset" class="sref">in_offsetv/a>,1 554v/a>                                va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_in" class="sref">buf_inv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=total" class="sref">totalv/a>, 0);1 555v/a>1 556v/a>                va href="+code=addr_in" class="sref">addr_inv/a> = va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_in" class="sref">dma_addr_inv/a>;1 557v/a>                va href="+code=addr_out" class="sref">addr_outv/a> = va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>;1 558v/a>1 559v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> &= ~va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>;1 560v/a>        }1 561v/a>1 562v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=total" class="sref">totalv/a> -= va href="+code=count" class="sref">countv/a>;1 563v/a>1 564v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=caps" class="sref">capsv/a>.va href="+code=has_dma" class="sref">has_dmav/a>)1 565v/a>                va href="+code=err" class="sref">errv/a> = va href="+code=atmel_tdes_crypt_dma" class="sref">atmel_tdes_crypt_dmav/a>(va href="+code=tfm" class="sref">tfmv/a>, va href="+code=addr_in" class="sref">addr_inv/a>, va href="+code=addr_out" class="sref">addr_outv/a>, va href="+code=count" class="sref">countv/a>);1 566v/a>        else1 567v/a>                va href="+code=err" class="sref">errv/a> = va href="+code=atmel_tdes_crypt_pdc" class="sref">atmel_tdes_crypt_pdcv/a>(va href="+code=tfm" class="sref">tfmv/a>, va href="+code=addr_in" class="sref">addr_inv/a>, va href="+code=addr_out" class="sref">addr_outv/a>, va href="+code=count" class="sref">countv/a>);1 568v/a>1 569v/a>        if (va href="+code=err" class="sref">errv/a> && (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>)) {1 570v/a>                va href="+code=dma_unmap_sg" class="sref">dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>, 1, va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 571v/a>                va href="+code=dma_unmap_sg" class="sref">dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>, 1, va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 572v/a>        }1 573v/a>1 574v/a>        return va href="+code=err" class="sref">errv/a>;1 575v/a>}1 576v/a>1 577v/a>static void va href="+code=atmel_tdes_finish_req" class="sref">atmel_tdes_finish_reqv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>, int va href="+code=err" class="sref">errv/a>)1 578v/a>{1 579v/a>        struct va href="+code=ablkcipher_request" class="sref">ablkcipher_requestv/a> *va href="+code=req" class="sref">reqv/a> = va href="+code=dd" class="sref">ddv/a>->va href="+code=req" class="sref">reqv/a>;1 580v/a>1 581v/a>        va href="+code=clk_disablo_unprepare" class="sref">clk_disablo_unpreparev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=iclk" class="sref">iclkv/a>);1 582v/a>1 583v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> &= ~va href="+code=TDES_FLAGS_BUSY" class="sref">TDES_FLAGS_BUSYv/a>;1 584v/a>1 585v/a>        va href="+code=req" class="sref">reqv/a>->va href="+code=base" class="sref">basev/a>.va href="+code=complete" class="sref">completev/a>(&va href="+code=req" class="sref">reqv/a>->va href="+code=base" class="sref">basev/a>, va href="+code=err" class="sref">errv/a>);1 586v/a>}1 587v/a>1 588v/a>static int va href="+code=atmel_tdes_handlo_queue" class="sref">atmel_tdes_handlo_queuev/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>,1 589v/a>                               struct va href="+code=ablkcipher_request" class="sref">ablkcipher_requestv/a> *va href="+code=req" class="sref">reqv/a>)1 590v/a>{1 591v/a>        struct va href="+code=crypto_async_request" class="sref">crypto_async_requestv/a> *va href="+code=async_req" class="sref">async_reqv/a>, *va href="+code=backlog" class="sref">backlogv/a>;1 592v/a>        struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a>;1 593v/a>        struct va href="+code=atmel_tdes_reqctx" class="sref">atmel_tdes_reqctxv/a> *va href="+code=rctx" class="sref">rctxv/a>;1 594v/a>        unsigned long va href="+code=flags" class="sref">flagsv/a>;1 595v/a>        int va href="+code=err" class="sref">errv/a>, va href="+code=ret" class="sref">retv/a> = 0;1 596v/a>1 597v/a>        va href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsavev/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=lock" class="sref">lockv/a>, va href="+code=flags" class="sref">flagsv/a>);1 598v/a>        if (va href="+code=req" class="sref">reqv/a>)1 599v/a>                va href="+code=ret" class="sref">retv/a> = va href="+code=ablkcipher_enqueue_request" class="sref">ablkcipher_enqueue_requestv/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=queue" class="sref">queuev/a>, va href="+code=req" class="sref">reqv/a>);1 600v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_BUSY" class="sref">TDES_FLAGS_BUSYv/a>) {1 601v/a>                va href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestorev/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=lock" class="sref">lockv/a>, va href="+code=flags" class="sref">flagsv/a>);1 602v/a>                return va href="+code=ret" class="sref">retv/a>;1 603v/a>        }1 604v/a>        va href="+code=backlog" class="sref">backlogv/a> = va href="+code=crypto_get_backlog" class="sref">crypto_get_backlogv/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=queue" class="sref">queuev/a>);1 605v/a>        va href="+code=async_req" class="sref">async_reqv/a> = va href="+code=crypto_dequeue_request" class="sref">crypto_dequeue_requestv/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=queue" class="sref">queuev/a>);1 606v/a>        if (va href="+code=async_req" class="sref">async_reqv/a>)1 607v/a>                va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> |= va href="+code=TDES_FLAGS_BUSY" class="sref">TDES_FLAGS_BUSYv/a>;1 608v/a>        va href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestorev/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=lock" class="sref">lockv/a>, va href="+code=flags" class="sref">flagsv/a>);1 609v/a>1 610v/a>        if (!va href="+code=async_req" class="sref">async_reqv/a>)1 611v/a>                return va href="+code=ret" class="sref">retv/a>;1 612v/a>1 613v/a>        if (va href="+code=backlog" class="sref">backlogv/a>)1 614v/a>                va href="+code=backlog" class="sref">backlogv/a>->va href="+code=complete" class="sref">completev/a>(va href="+code=backlog" class="sref">backlogv/a>, -EINPROGRESSv/a>);1 615v/a>1 616v/a>        va href="+code=req" class="sref">reqv/a> = va href="+code=ablkcipher_request_cast" class="sref">ablkcipher_request_castv/a>(va href="+code=async_req" class="sref">async_reqv/a>);1 617v/a>1 618v/a>        vspan class="comment">/* assign new request to device */1 619v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=req" class="sref">reqv/a> = va href="+code=req" class="sref">reqv/a>;1 620v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=total" class="sref">totalv/a> = va href="+code=req" class="sref">reqv/a>->va href="+code=nbytes" class="sref">nbytesv/a>;1 621v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=in_offset" class="sref">in_offsetv/a> = 0;1 622v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a> = va href="+code=req" class="sref">reqv/a>->va href="+code=src" class="sref">srcv/a>;1 623v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=out_offset" class="sref">out_offsetv/a> = 0;1 624v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a> = va href="+code=req" class="sref">reqv/a>->va href="+code=dst" class="sref">dstv/a>;1 625v/a>1 626v/a>        va href="+code=rctx" class="sref">rctxv/a> = va href="+code=ablkcipher_request_ctx" class="sref">ablkcipher_request_ctxv/a>(va href="+code=req" class="sref">reqv/a>);1 627v/a>        va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_ablkcipher_ctx" class="sref">crypto_ablkcipher_ctxv/a>(va href="+code=crypto_ablkcipher_reqtfm" class="sref">crypto_ablkcipher_reqtfmv/a>(va href="+code=req" class="sref">reqv/a>));1 628v/a>        va href="+code=rctx" class="sref">rctxv/a>->va href="+code=mode" class="sref">modev/a> &= va href="+code=TDES_FLAGS_MODE_MASK" class="sref">TDES_FLAGS_MODE_MASKv/a>;1 629v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> = (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & ~va href="+code=TDES_FLAGS_MODE_MASK" class="sref">TDES_FLAGS_MODE_MASKv/a>) | va href="+code=rctx" class="sref">rctxv/a>->va href="+code=mode" class="sref">modev/a>;1 630v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=ctx" class="sref">ctxv/a> = va href="+code=ctx" class="sref">ctxv/a>;1 631v/a>        va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a> = va href="+code=dd" class="sref">ddv/a>;1 632v/a>1 633v/a>        va href="+code=err" class="sref">errv/a> = va href="+code=atmel_tdes_write_ctrl" class="sref">atmel_tdes_write_ctrlv/a>(va href="+code=dd" class="sref">ddv/a>);1 634v/a>        if (!va href="+code=err" class="sref">errv/a>)1 635v/a>                va href="+code=err" class="sref">errv/a> = va href="+code=atmel_tdes_crypt_start" class="sref">atmel_tdes_crypt_startv/a>(va href="+code=dd" class="sref">ddv/a>);1 636v/a>        if (va href="+code=err" class="sref">errv/a>) {1 637v/a>                vspan class="comment">/* des_task will not finish it, so do it here */1 638v/a>                va href="+code=atmel_tdes_finish_req" class="sref">atmel_tdes_finish_reqv/a>(va href="+code=dd" class="sref">ddv/a>, va href="+code=err" class="sref">errv/a>);1 639v/a>                va href="+code=tasklet_schedule" class="sref">tasklet_schedulev/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=queue_task" class="sref">queue_taskv/a>);1 640v/a>        }1 641v/a>1 642v/a>        return va href="+code=ret" class="sref">retv/a>;1 643v/a>}1 644v/a>1 645v/a>static int va href="+code=atmel_tdes_crypt_dma_stop" class="sref">atmel_tdes_crypt_dma_stopv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 646v/a>{1 647v/a>        int va href="+code=err" class="sref">errv/a> = -EINVALv/a>;1 648v/a>        va href="+code=size_t" class="sref">size_tv/a> va href="+code=count" class="sref">countv/a>;1 649v/a>1 650v/a>        if (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_DMA" class="sref">TDES_FLAGS_DMAv/a>) {1 651v/a>                va href="+code=err" class="sref">errv/a> = 0;1 652v/a>                if  (va href="+code=dd" class="sref">ddv/a>->va href="+code=flags" class="sref">flagsv/a> & va href="+code=TDES_FLAGS_FAST" class="sref">TDES_FLAGS_FASTv/a>) {1 653v/a>                        va href="+code=dma_unmap_sg" class="sref">dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>, 1, va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 654v/a>                        va href="+code=dma_unmap_sg" class="sref">dma_unmap_sgv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=in_sg" class="sref">in_sgv/a>, 1, va href="+code=DMA_TO_DEVICE" class="sref">DMA_TO_DEVICEv/a>);1 655v/a>                } else {1 656v/a>                        va href="+code=dma_sync_single_for_device" class="sref">dma_sync_single_for_devicev/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_addr_out" class="sref">dma_addr_outv/a>,1 657v/a>                                va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a>, va href="+code=DMA_FROM_DEVICE" class="sref">DMA_FROM_DEVICEv/a>);1 658v/a>1 659v/a>                        vspan class="comment">/* copy data */1 660v/a>                        va href="+code=count" class="sref">countv/a> = va href="+code=atmel_tdes_sg_copy" class="sref">atmel_tdes_sg_copyv/a>(&va href="+code=dd" class="sref">ddv/a>->va href="+code=out_sg" class="sref">out_sgv/a>, &va href="+code=dd" class="sref">ddv/a>->va href="+code=out_offset" class="sref">out_offsetv/a>,1 661v/a>                                va href="+code=dd" class="sref">ddv/a>->va href="+code=buf_out" class="sref">buf_outv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=buflen" class="sref">buflenv/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a>, 1);1 662v/a>                        if (va href="+code=count" class="sref">countv/a> != va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_size" class="sref">dma_sizev/a>) {1 663v/a>                                va href="+code=err" class="sref">errv/a> = -EINVALv/a>;1 664v/a>                                va href="+code=pr_err" class="sref">pr_errv/a>(vspan class="string">"not all data converted: %u\n", va href="+code=count" class="sref">countv/a>);1 665v/a>                        }1 666v/a>                }1 667v/a>        }1 668v/a>        return va href="+code=err" class="sref">errv/a>;1 669v/a>}1 670v/a>1 671v/a>static int va href="+code=atmel_tdes_crypt" class="sref">atmel_tdes_cryptv/a>(struct va href="+code=ablkcipher_request" class="sref">ablkcipher_requestv/a> *va href="+code=req" class="sref">reqv/a>, unsigned long va href="+code=mode" class="sref">modev/a>)1 672v/a>{1 673v/a>        struct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_ablkcipher_ctx" class="sref">crypto_ablkcipher_ctxv/a>(1 674v/a>                        va href="+code=crypto_ablkcipher_reqtfm" class="sref">crypto_ablkcipher_reqtfmv/a>(va href="+code=req" class="sref">reqv/a>));1 675v/a>        struct va href="+code=atmel_tdes_reqctx" class="sref">atmel_tdes_reqctxv/a> *va href="+code=rctx" class="sref">rctxv/a> = va href="+code=ablkcipher_request_ctx" class="sref">ablkcipher_request_ctxv/a>(va href="+code=req" class="sref">reqv/a>);1 676v/a>1 677v/a>        if (va href="+code=mode" class="sref">modev/a> & va href="+code=TDES_FLAGS_CFB8" class="sref">TDES_FLAGS_CFB8v/a>) {1 678v/a>                if (!va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>(va href="+code=req" class="sref">reqv/a>->va href="+code=nbytes" class="sref">nbytesv/a>, va href="+code=CFB8_BLOCK_SIZE" class="sref">CFB8_BLOCK_SIZEv/a>)) {1 679v/a>                        va href="+code=pr_err" class="sref">pr_errv/a>(vspan class="string">"request size is not exact amount of CFB8 blocks\n");1 680v/a>                        return -EINVALv/a>;1 681v/a>                }1 682v/a>                va href="+code=ctx" class="sref">ctxv/a>->va href="+code=block_size" class="sref">block_sizev/a> = va href="+code=CFB8_BLOCK_SIZE" class="sref">CFB8_BLOCK_SIZEv/a>;1 683v/a>        } else if (va href="+code=mode" class="sref">modev/a> & va href="+code=TDES_FLAGS_CFB16" class="sref">TDES_FLAGS_CFB16v/a>) {1 684v/a>                if (!va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>(va href="+code=req" class="sref">reqv/a>->va href="+code=nbytes" class="sref">nbytesv/a>, va href="+code=CFB16_BLOCK_SIZE" class="sref">CFB16_BLOCK_SIZEv/a>)) {1 685v/a>                        va href="+code=pr_err" class="sref">pr_errv/a>(vspan class="string">"request size is not exact amount of CFB16 blocks\n");1 686v/a>                        return -EINVALv/a>;1 687v/a>                }1 688v/a>                va href="+code=ctx" class="sref">ctxv/a>->va href="+code=block_size" class="sref">block_sizev/a> = va href="+code=CFB16_BLOCK_SIZE" class="sref">CFB16_BLOCK_SIZEv/a>;1 689v/a>        } else if (va href="+code=mode" class="sref">modev/a> & va href="+code=TDES_FLAGS_CFB32" class="sref">TDES_FLAGS_CFB32v/a>) {1 690v/a>                if (!va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>(va href="+code=req" class="sref">reqv/a>->va href="+code=nbytes" class="sref">nbytesv/a>, va href="+code=CFB32_BLOCK_SIZE" class="sref">CFB32_BLOCK_SIZEv/a>)) {1 691v/a>                        va href="+code=pr_err" class="sref">pr_errv/a>(vspan class="string">"request size is not exact amount of CFB32 blocks\n");1 692v/a>                        return -EINVALv/a>;1 693v/a>                }1 694v/a>                va href="+code=ctx" class="sref">ctxv/a>->va href="+code=block_size" class="sref">block_sizev/a> = va href="+code=CFB32_BLOCK_SIZE" class="sref">CFB32_BLOCK_SIZEv/a>;1 695v/a>        } else {1 696v/a>                if (!va href="+code=IS_ALIGNED" class="sref">IS_ALIGNEDv/a>(va href="+code=req" class="sref">reqv/a>->va href="+code=nbytes" class="sref">nbytesv/a>, va href="+code=DES_BLOCK_SIZE" class="sref">DES_BLOCK_SIZEv/a>)) {1 697v/a>                        va href="+code=pr_err" class="sref">pr_errv/a>(vspan class="string">"request size is not exact amount of DES blocks\n");1 698v/a>                        return -EINVALv/a>;1 699v/a>                }1 700v/a>                va href="+code=ctx" class="sref">ctxv/a>->va href="+code=block_size" class="sref">block_sizev/a> = va href="+code=DES_BLOCK_SIZE" class="sref">DES_BLOCK_SIZEv/a>;1 701v/a>        }1 702v/a>1 703v/a>        va href="+code=rctx" class="sref">rctxv/a>->va href="+code=mode" class="sref">modev/a> = va href="+code=mode" class="sref">modev/a>;1 704v/a>1 705v/a>        return va href="+code=atmel_tdes_handlo_queue" class="sref">atmel_tdes_handlo_queuev/a>(va href="+code=ctx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a>, va href="+code=req" class="sref">reqv/a>);1 706v/a>}1 707v/a>1 708v/a>static va href="+code=bool" class="sref">boolv/a> va href="+code=atmel_tdes_filter" class="sref">atmel_tdes_filterv/a>(struct va href="+code=dma_chan" class="sref">dma_chanv/a> *va href="+code=chan" class="sref">chanv/a>, void *va href="+code=slave" class="sref">slavev/a>)1 709v/a>{1 710v/a>        struct va href="+code=at_dma_slave" class="sref">at_dma_slavev/a>     *va href="+code=sl" class="sref">slv/a> = va href="+code=slave" class="sref">slavev/a>;1 711v/a>1 712v/a>        if (va href="+code=sl" class="sref">slv/a> && va href="+code=sl" class="sref">slv/a>->va href="+code=dma_dev" class="sref">dma_devv/a> == va href="+code=chan" class="sref">chanv/a>->va href="+code=device" class="sref">devicev/a>->va href="+code=dev" class="sref">devv/a>) {1 713v/a>                va href="+code=chan" class="sref">chanv/a>->va href="+code=private" class="sref">privatev/a> = va href="+code=sl" class="sref">slv/a>;1 714v/a>                return va href="+code=true" class="sref">truev/a>;1 715v/a>        } else {1 716v/a>                return va href="+code=false" class="sref">falsev/a>;1 717v/a>        }1 718v/a>}1 719v/a>1 720v/a>static int va href="+code=atmel_tdes_dma_init" class="sref">atmel_tdes_dma_initv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>,1 721v/a>                        struct va href="+code=crypto_platform_data" class="sref">crypto_platform_datav/a> *va href="+code=pdata" class="sref">pdatav/a>)1 722v/a>{1 723v/a>        int va href="+code=err" class="sref">errv/a> = -ENOMEMv/a>;1 724v/a>        va href="+code=dma_cap_mask_t" class="sref">dma_cap_mask_tv/a> va href="+code=mask" class="sref">maskv/a>;1 725v/a>1 726v/a>        va href="+code=dma_cap_zero" class="sref">dma_cap_zerov/a>(va href="+code=mask" class="sref">maskv/a>);1 727v/a>        va href="+code=dma_cap_set" class="sref">dma_cap_setv/a>(va href="+code=DMA_SLAVE" class="sref">DMA_SLAVEv/a>, va href="+code=mask" class="sref">maskv/a>);1 728v/a>1 729v/a>        vspan class="comment">/* Try to grab 2 DMA channels */1 730v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a> = va href="+code=dma_request_slave_channel_compat" class="sref">dma_request_slave_channel_compatv/a>(va href="+code=mask" class="sref">maskv/a>,1 731v/a>                        va href="+code=atmel_tdes_filter" class="sref">atmel_tdes_filterv/a>, &va href="+code=pdata" class="sref">pdatav/a>->va href="+code=dma_slave" class="sref">dma_slavev/a>->va href="+code=rxdata" class="sref">rxdatav/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"tx");1 732v/a>        if (!va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a>)1 733v/a>                goto va href="+code=err_dma_in" class="sref">err_dma_inv/a>;1 734v/a>1 735v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=direction" class="sref">directionv/a> = va href="+code=DMA_MEM_TO_DEV" class="sref">DMA_MEM_TO_DEVv/a>;1 736v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_addr" class="sref">dst_addrv/a> = va href="+code=dd" class="sref">ddv/a>->va href="+code=phys_base" class="sref">phys_basev/a> +1 737v/a>                va href="+code=TDES_IDATA1R" class="sref">TDES_IDATA1Rv/a>;1 738v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_maxburst" class="sref">src_maxburstv/a> = 1;1 739v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_addr_width" class="sref">src_addr_widthv/a> =1 740v/a>                va href="+code=DMA_SLAVE_BUSWIDTH_4_BYTES" class="sref">DMA_SLAVE_BUSWIDTH_4_BYTESv/a>;1 741v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_maxburst" class="sref">dst_maxburstv/a> = 1;1 742v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_addr_width" class="sref">dst_addr_widthv/a> =1 743v/a>                va href="+code=DMA_SLAVE_BUSWIDTH_4_BYTES" class="sref">DMA_SLAVE_BUSWIDTH_4_BYTESv/a>;1 744v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=device_fc" class="sref">device_fcv/a> = va href="+code=false" class="sref">falsev/a>;1 745v/a>1 746v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=chan" class="sref">chanv/a> = va href="+code=dma_request_slave_channel_compat" class="sref">dma_request_slave_channel_compatv/a>(va href="+code=mask" class="sref">maskv/a>,1 747v/a>                        va href="+code=atmel_tdes_filter" class="sref">atmel_tdes_filterv/a>, &va href="+code=pdata" class="sref">pdatav/a>->va href="+code=dma_slave" class="sref">dma_slavev/a>->va href="+code=txdata" class="sref">txdatav/a>, va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"rx");1 748v/a>        if (!va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=chan" class="sref">chanv/a>)1 749v/a>                goto va href="+code=err_dma_out" class="sref">err_dma_outv/a>;1 750v/a>1 751v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=direction" class="sref">directionv/a> = va href="+code=DMA_DEV_TO_MEM" class="sref">DMA_DEV_TO_MEMv/a>;1 752v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_addr" class="sref">src_addrv/a> = va href="+code=dd" class="sref">ddv/a>->va href="+code=phys_base" class="sref">phys_basev/a> +1 753v/a>                va href="+code=TDES_ODATA1R" class="sref">TDES_ODATA1Rv/a>;1 754v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_maxburst" class="sref">src_maxburstv/a> = 1;1 755v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=src_addr_width" class="sref">src_addr_widthv/a> =1 756v/a>                va href="+code=DMA_SLAVE_BUSWIDTH_4_BYTES" class="sref">DMA_SLAVE_BUSWIDTH_4_BYTESv/a>;1 757v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_maxburst" class="sref">dst_maxburstv/a> = 1;1 758v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=dst_addr_width" class="sref">dst_addr_widthv/a> =1 759v/a>                va href="+code=DMA_SLAVE_BUSWIDTH_4_BYTES" class="sref">DMA_SLAVE_BUSWIDTH_4_BYTESv/a>;1 760v/a>        va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=dma_conf" class="sref">dma_confv/a>.va href="+code=device_fc" class="sref">device_fcv/a> = va href="+code=false" class="sref">falsev/a>;1 761v/a>1 762v/a>        return 0;1 763v/a>1 764v/a>va href="+code=err_dma_out" class="sref">err_dma_outv/a>:1 765v/a>        va href="+code=dma_release_channel" class="sref">dma_release_channelv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a>);1 766v/a>va href="+code=err_dma_in" class="sref">err_dma_inv/a>:1 767v/a>        va href="+code=dev_warn" class="sref">dev_warnv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dev" class="sref">devv/a>, vspan class="string">"no DMA channel available\n");1 768v/a>        return va href="+code=err" class="sref">errv/a>;1 769v/a>}1 770v/a>1 771v/a>static void va href="+code=atmel_tdes_dma_cleanup" class="sref">atmel_tdes_dma_cleanupv/a>(struct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 772v/a>{1 773v/a>        va href="+code=dma_release_channel" class="sref">dma_release_channelv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_in" class="sref">dma_lch_inv/a>.va href="+code=chan" class="sref">chanv/a>);1 774v/a>        va href="+code=dma_release_channel" class="sref">dma_release_channelv/a>(va href="+code=dd" class="sref">ddv/a>->va href="+code=dma_lch_out" class="sref">dma_lch_outv/a>.va href="+code=chan" class="sref">chanv/a>);1 775v/a>}1 776v/a>1 777v/a>static int va href="+code=atmel_des_setkey" class="sref">atmel_des_setkeyv/a>(struct va href="+code=crypto_ablkcipher" class="sref">crypto_ablkcipherv/a> *va href="+code=tfm" class="sref">tfmv/a>, const va href="+code=u8" class="sref">u8v/a> *va href="+code=key" class="sref">keyv/a>,1 778v/a>                           unsigned int va href="+code=keylen" class="sref">keylenv/a>)1 77     unsigned int va href="+code=keylen" class"line" namCadp.L679" class="line" na7"> 6878/a>        va href="+code=ddu" class="sref">TDuv/a>    href="+code=tfmm class="sref">atmm a>  [ href="+code=DMAES_EXPKEY_WORD class="sref">DMAES_EXPKEY_WORD a>  ] 687v/a>          t va href="+code=err" class="sref">errv/a> = 687v/a>          ruct va href="+code=crypto_abm" class="sref">crypto_abmv/a>, va href="+code=ctx"" class="sref">crymv/a>, vva href="+code=crypto_ablkcipher_ctm" class="sref">crypto_ablkcipher_remv/a>(va href="+code=rem" class="sref">tfmv/a>, 1 6878/a>1 687v/a>          ruct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_ablkcipher_ctx" class="sref">crypto_ablkcipher_ctxv/a>(1< href="+code=rem" class="sref">tfmv/a>, 1 6878/a>1 687v/a>           (va href="+code=slylen" class="sref">keylenv/a>)1= va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 11 687v/a>                }1 href="+code=crypto_ablkcipher_cttke_ags" class="sref">flypto_ablkcipher_cttke_ags" a>(1< href="+code=rem" class="sref">tfmv/a>, va href="+code=CFBRYPTO_TFM_R_BLOADLKEY_LENclass="sref">tfBRYPTO_TFM_R_BLOADLKEY_LENa>, 1 687v/a>                vaturn -EINVALv/a>;1 687v/a>        } ea href="drivers/crypto/atmel-tdes.c#L697" idp.L697" class="line" namop.L697"> 6979/a>1 6979/a>        va href="+code=ddr" class="sref">errv/a> = -< href="+code=dev"s_ey" class="sref">kev"s_ey" a>(1< href="+code=remm class="sref">atmm a>  va href="+code=CFy" class="sref">keyv/a>,11 6979/a>        if (va href="+code=slr" class="sref">errv/a> = -= 0amp;& vaa href="+code=ctx"" class="sref">crymv/a>, gt;va href="+code=dmcre_ags" class="sref">flype_ags" a>(1amp; va href="+code=TDBRYPTO_TFM_R_Q_WEAKLKEYclass="sref">tfBRYPTO_TFM_R_Q_WEAKLKEYa>,1111 697v/a>                }1 href="+code=ctx"" class="sref">crymv/a>, gt;va href="+code=dmcre_ags" class="sref">flype_ags" a>(1a|va href="+code=CFBRYPTO_TFM_R_BLWEAKLKEYclass="sref">tfBRYPTO_TFM_R_S_WEAKLKEYa>,1 697v/a>                vaturn -EINVALv/a>;1 697v/a>        } ea href="drivers/crypto/atmel-tdes.c#L697" idp.L687" class="line" namop.L697"> 6979/a>1 6979/a>        va href="+code=dememc" class="sref">atmemc" a>(1< href="+code=rex" class="sref">ctxv/a>->va href="+code=ddy" class="sref">keyv/a>,1keyv/a>,1keylenv/a>)1< 6979/a>        va href="+code=ddx" class="sref">ctxv/a>->va href="+code=ddy" n" class="sref">keylenv/a>)1=va href="+code=CFy" n" class="sref">keylenv/a>)1 6979/a>1 708v/a>          turn 0;1 708v/a>  ea href="drivers/crypto/atmel-tdes.c#L698" idp.L708" class="line" namop.L708"> 708v/a>1 708v/a>  atic int va href="+code=atmel_tdes_dmtkey" class="sref">atmel_dets_setkeyv/a>(struct va href="+code=crypto_ablkcipher" class="sref">crypto_ablkcipherv/a> *va href="+code=tfm" class="sref">tfmv/a>, const va href="+code=u8" class="sref">u8v/a> *va href="+code=key" class="sref">keyv/a>,1 7080/a>                             signed int va href="+code=keylen" class="sref">keylenv/a>)1 708v/a>   7080/a>          ruct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_ablkcipher_ctx" class="sref">crypto_ablkcipher_ctxv/a>(1< href="+code=rem" class="sref">tfmv/a>, 1 7080/a>        vanst vacharva href="+code=ctalg_mop.class="sref">atmlg_mop.a>)1 7080/a>1 7080/a>        va href="+code=ddalg_mop.class="sref">atmlg_mop.a>)1 va href="+code=crypto_abmv/_alg_mop.class="sref">atypto_abmv/_alg_mop.a>(1< href="+code=rexpto_ablkcipher_ctm" class="sref">crypto_ablkcipher_remv/a>(va href="+code=rem" class="sref">tfmv/a>, 11 7181/a>1 7181/a>        va an class="comment">/* Tspan>1 718v/a>   an class="comment">/*         * HW bugnt  cfb 3-yles dev/.span>1 718v/a>   an class="comment">/*         */span>1 718v/a>           (!va href="+code=ddx" class="sref">ctxv/a>->va href="+code=dd" class="sref">ddv/a>, gt;va href="+code=dmcap class="sref">flyap a>.va href="+code=chhactxfb_3ylesclass="sref">flhactxfb_3ylesa>(1amp; vmp; va href="+code=sl"tr"trclass="sref">fl"tr"tra>(va href="+code=realg_mop.class="sref">atmlg_mop.a>)1vspan class="string">"noxfbuot;);1a href="drivers/crypto/atmel-tdes.c#L738" idp.L708" class="line" namop.L718"> 718v/a>        }                 mp;& vaa href="+code=ctylen" class="sref">keylenv/a>)1= va2a href="+code=ctAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 111 718v/a>                re href="+code=crypto_ablkcipher_cttke_ags" class="sref">flypto_ablkcipher_cttke_ags" a>(1< href="+code=rem" class="sref">tfmv/a>, va href="+code=CFBRYPTO_TFM_R_BLOADLKEY_LENclass="sref">tfBRYPTO_TFM_R_BLOADLKEY_LENa>, 1 7181/a>                }1turn -EINVALv/a>;1 7181/a>        vaelse if (vaa href="+code=ctylen" class="sref">keylenv/a>)1= va2a href="+code=ctAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 1 mp;& vaa href="+code=ctylen" class="sref">keylenv/a>)1= va3a href="+code=ctAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 111 7181/a>                va href="+code=DMypto_ablkcipher_cttke_ags" class="sref">flypto_ablkcipher_cttke_ags" a>(1< href="+code=rem" class="sref">tfmv/a>, va href="+code=CFBRYPTO_TFM_R_BLOADLKEY_LENclass="sref">tfBRYPTO_TFM_R_BLOADLKEY_LENa>, 1 7282/a>                vaturn -EINVALv/a>;1 7282/a>        }1 7282/a>1 7282/a>        va href="+code=dmmemc" class="sref">atmemc" a>(1< href="+code=rex" class="sref">ctxv/a>->va href="+code=ddy" class="sref">keyv/a>,1keyv/a>,1keylenv/a>)1< 728v/a>        va href="+code=dmx" class="sref">ctxv/a>->va href="+code=ddy" n" class="sref">keylenv/a>)1=va href="+code=CFy" n" class="sref">keylenv/a>)1 728v/a>1 728v/a>        vaturn 0;1 728v/a>   728v/a>1 728v/a>  atic int va href="+code=atmel_tdes_dmecb_enypto/class="sref">atmel_tdes_ctecb_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L738" class="line" namop.L738"> 738v/a>   738v/a>          turn va href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1< 738v/a>   7383/a>1 738v/a>1atmel_tdes_ctecb_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L728" class="line" namop.L738"> 7383/a>   7383/a>        vaturn 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>); 7383/a>   7383/a>1 7383/a>  atic int va href="+code=atmel_tdes_dmcbc_enypto/class="sref">atmel_tdes_ctcbc_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L748" class="line" namop.L748"> 7484/a>   7484/a>          turn va href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1 |a href="+code=CFES_FLAGS_CFCBCclass="sref">reES_FLAGS_CFCBCa>)1< 7484/a>   7484/a>1 7484/a>1atmel_tdes_ctcbc_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L728" class="line" namop.L748"> 7484/a>   7484/a>        vaturn 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFCBCa>)1< 7484/a>   74848a>1atmel_tdes_ctcfb_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L738" class="line" namop.L748"> 7484   unsigned int va href="+code=keylen" class"8" idp.L758" class="line" namop.L758"> 7585/a>          turn 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1 |a href="+code=CFES_FLAGS_CFCFBclass="sref">reES_FLAGS_CFCFBa>)1< 7585/a>  ea href="drivers/crypto/atmel-tdes.c#L698" idp.L758" class="line" namop.L758"> 7585/a>1 7585/a>  atic int va href="+code=atmel_tdes_dmcfb_deypto/class="sref">atmel_tdes_ctcfb_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L758" class="line" namop.L758"> 758v/a>  signed int va href="+code=keylen" class"8" idp.L728" class="line" namop.L758"> 758v/a>        vaturn 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFCFBa>)1< 7585/a>}1 7585/a>1 75858a>1atmel_tdes_ctcfb8_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L758" class="line" namop.L758"> 7585   unsigned int va href="+code=keylen" class"8" idp.L768" class="line" namop.L768"> 7686/a>          turn 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1 |a href="+code=CFES_FLAGS_CFCFBclass="sref">reES_FLAGS_CFCFBa>)1 |igned int va href="+code=keylen" class"8" idp.L758" class="line" namop.L768"> 7686/a>                        vaaaaaaaaaaaaaaaaaaaaaaaaa href="+code=CFES_FLAGS_CFCFB class="sref">u8ES_FLAGS_CFCFB a>)1< 7686/a>   768v/a>1 7686/a>1atmel_tdes_ctcfb8_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L768" class="line" namop.L768"> 7686/a>   7686/a>        vaturn 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFCFBa>)1 |a href="+code=CFES_FLAGS_CFCFB class="sref">u8ES_FLAGS_CFCFB a>)1< 7686/a>   7686/a>1 7686/a>  atic int va href="+code=atmel_tdes_dmcfb16_enypto/class="sref">atmel_tdes_ctcfb16_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L778" class="line" namop.L778"> 7787/a>   7787/a>          turn va href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1 |a href="+code=CFES_FLAGS_CFCFBclass="sref">reES_FLAGS_CFCFBa>)1 |igned int va href="+code=keylen" class"8" idp.L778" class="line" namop.L778"> 77872a>                        vaaaaaaaaaaaaaaaaaaaaaaaaa href="+code=CFES_FLAGS_CFCFB" class="lief">reES_FLAGS_CFCFBv/a>  < 778v/a>   7787/a>1 778v/a>}1atic int va href="+code=atmel_tdes_dmcfb16_deypto/class="sref">atmel_tdes_ctcfb16_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L768" class="line" namop.L778"> 778v/a>1< 77877a>          turn va href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFCFBa>)1 |a href="+code=CFES_FLAGS_CFCFB" class="lief">reES_FLAGS_CFCFBv/a>  < 7787/a>}1 7787/a>1 6888/a>static int va href="+code=atmel_tdes_dmcfb32_enypto/class="sref">atmel_tdes_ctcfb32_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L688" class="line" namop.L688"> 688v/a>   6888/a>        return 0; href="+code=atmel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1 |a href="+code=CFES_FLAGS_CFCFBclass="sref">reES_FLAGS_CFCFBa>)1 |igned int va href="+code=keylen" class"8" idp.L688" class="line" namop.L688"> 6888/a>                }1      vaaaaaaaaaaaaaaaaaaaaaaaaa href="+code=CFES_FLAGS_CFCFB" class="sref">TDES_FLAGS_CFCFB" a>  < 688v/a>   6888/a>1 688v/a>  atic int va href="+code=atmel_tdes_dmcfb32_deypto/class="sref">atmel_tdes_ctcfb32_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L758" class="line" namop.L688"> 688v/a>   6888/a>        return va href="+code=ermel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFCFBa>)1 |a href="+code=CFES_FLAGS_CFCFB" class="sref">TDES_FLAGS_CFCFB" a>  < 6888/a>}1 6989/a>1 69891a>  atic int va href="+code=atmel_tdes_dmofb_enypto/class="sref">atmel_tdes_ctofb_enypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L698" class="line" namop.L698"> 6989/a>{1 698v/a>          turn va href="+code=ermel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFENBRYPTa>)1 |a href="+code=CFES_FLAGS_CFOFBclass="sref">reES_FLAGS_CFOFBa>)1< 6989/a>   6989/a>1 6989/a>  atic int va href="+code=atmel_tdes_dmofb_deypto/class="sref">atmel_tdes_ctofb_deypto/a>(struct va href="+code=crlkcipher_request_cclass="sref">atmkcipher_request_ca> *va href="+code=ctq" class="sref">reqv/a>);1a href="drivers/crypto/atmel-tdes.c#L728" idp.L698" class="line" namop.L698"> 6989/a>   6989/a>        return va href="+code=ermel_tdes_haypto/class="sref">atmel_tdes_ctypto/a>(st href="+code=ctq" class="sref">reqv/a>);reES_FLAGS_CFOFBa>)1< 6989/a>}1 7090/a>1 70901a>  atic int va href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(struct va href="+code=crypto/abm" class="sref">crypto_abmv/a>, va href="+code=ctm" class="sref">tfmv/a>, 1a href="drivers/crypto/atmel-tdes.c#L779"2idp.L709" class="line" namop.L699"> 7090/a>{1 7090/a>          ruct va href="+code=atmel_tdes_ctx" class="sref">atmel_tdes_ctxv/a> *va href="+code=ctx" class="sref">ctxv/a> = va href="+code=crypto_abmv/_x" class="sref">crypto_abmv/_x" a>(st href="+code=ctm" class="sref">tfmv/a>, 1 7090/a>          ruct va href="+code=atmel_tdes_dev" class="sref">atmel_tdes_devv/a> *va href="+code=dd" class="sref">ddv/a>)1 7090/a>1 7090/a>        va href="+code=ddm" class="sref">tfmv/a>, gt;va href="+code=dmcre_lkcipher" class="sref">cryptblkcipherv/a> *a href="+code=chqv/siz.class="sref">atqv/siz.a> = vasiz.oftruct va href="+code=atmel_tdes_deqv/x" class="sref">atmel_tdes_ctqv/x" a>, 1 7090/a>1 7090/a>        va href="+code=dd" class="sref">ddv/a>-& va href="+code=crmel_tdes_ctfindev" class="sref">atmel_tdes_defindev" a>(st href="+code=ctx" class="sref">ctxv/a> =1 7090/a>        va (!va href="+code=dd" class="sref">ddv/a>-&1a href="drivers/crypto/atmel-tdes.c#L779" idp.L719" class="line" namop.L719"> 7191/a>                vaturn -ddNNODEVa>)1 7191/a>1 7191/a>        return 0;1 7191/a>   7191/a>1 7191/a>}1atic inid va href="+code=atmel_tdes_dmypinexi/class="sref">atmel_tdes_ctypinexi/a>(struct va href="+code=crypto/abm" class="sref">crypto_abmv/a>, va href="+code=ctm" class="sref">tfmv/a>, 1a href="drivers/crypto/atmel-tdes.c#L779" idp.L719" class="line" namop.L719"> 7191/a>1< 7191/a>   7191/a>1 7191/a>  atic inruct va href="+code=crypto_abllgclass="sref">crypto_abllga>, v href="+code=ctms_ctllg class="sref">flms_ctllg a>, [] va 7292/a>   7292/a>        }1a href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"noecb(s.c)uot;); 72922a>        }1a href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdecb-s.cuot;); 7292/a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 100 729v/a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>); 72925a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>); 729v/a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *) 72927a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x7 72928a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>); 72929a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>); 73930a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s 7393/a>        }1a href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s 73932a>        }1a href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva 7393/a>                }1a href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  7393/a>                  a href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  7393/a>        }         a href="+code=chtkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s 7393/a>                rea href="+code=chenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmecb_enypto/class="sref">atmel_tdes_ctecb_enypto/a>(s 7393/a>                }1a href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmecb_deypto/class="sref">atmel_tdes_ctecb_deypto/a>(s 7393/a>        vaea href="drivers/crypto/atmel-tdes.c#L709" idp.L709" class="line" namop.L739"> 7393/a>  } 7494/a>   7494/a>        }1a href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocbc(s.c)uot;); 74942a>        }1a href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcbc-s.cuot;); 7494/a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 100 7494/a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>); 74945a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>); 7494/a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *) 74947a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x7 74948a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>); 74949a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>); 75950a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s 7595/a>        }1a href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s 75952a>        }1a href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva 7595/a>                }1a href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  7595/a>                  a href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  7595/a>        }         a href="+code=chivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>); 7595/a>                rea href="+code=chtkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s 7595/a>                }1a href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcbc_enypto/class="sref">atmel_tdes_ctcbc_enypto/a>(s 7595/a>                vaa href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcbc_deypto/class="sref">atmel_tdes_ctcbc_deypto/a>(s 7595/a>        } ea href="drivers/crypto/atmel-tdes.c#L699" idp.L769" class="line" namop.L769"> 7696/a>  } 7696/a>   76962a>        }1a href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb(s.c)uot;); 7696/a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb-s.cuot;); 7696/a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 100 76965a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>); 7696/a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>); 76967a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *) 76968a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x7 76969a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>); 77970a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>); 7797/a>        }1a href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s 77972a>        }1a href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s 7797/a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva 7797/a>                  a href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  7797/a>        }         a href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  7797/a>                rea href="+code=chivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>); 7797/a>                }1a href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s 7797/a>                vaa href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb_enypto/class="sref">atmel_tdes_ctcfb_enypto/a>(s 7797/a>                vaa href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb_deypto/class="sref">atmel_tdes_ctcfb_deypto/a>(s 68980a>        vaea href="drivers/crypto/atmel-tdes.c#L699" idp.L689" class="line" namop.L689"> 689v/a>  } 6898/a>{1 6898/a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb8(s.c)uot;); 6898/a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb8-s.cuot;); 68985a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 100 6898/a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>); 68987a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddCFB _BLOCK_ZE" class="sref">DECFB _BLOCK_ZE" a>); 68988a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *) 68989a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0 69990a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>); 6999/a>        }1a href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>); 69992a>        }1a href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s 6999/a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s 6999/a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva 6999/a>        }         a href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  6999/a>                rea href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>,  6999/a>                }1a href="+code=deivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>); 6999/a>                vaa href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s 6999/a>                vaa href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb8_enypto/class="sref">atmel_tdes_ctcfb8_enypto/a>(s100 a>                vaa href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb8_deypto/class="sref">atmel_tdes_ctcfb8_deypto/a>(s href="drivers/crypto/atmel-tdes.c#L701001idp.L69100 class="line" namop.L69100 c>100/a>        }1ea href="drivers/crypto/atmel-tdes.c#L691002idp.L69100 class="line" namop.L69100 c>1002a>  }1003a>{1100/a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb16(s.c)uot;);1005a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb16-s.cuot;);100/a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 1001007a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);1008a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddCFB16_BLOCK_ZE" class="sref">DECFB16_BLOCK_ZE" a>);1009a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)10" a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x110"/a>        }1a href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);10"2a>        }1a href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);10"/a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s10"/a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s10"5a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva10"/a>                rea href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10"/a>                }1a href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10"/a>                vaa href="+code=deivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);10"/a>                vaa href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s10" a>                vaa href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb16_enypto/class="sref">atmel_tdes_ctcfb16_enypto/a>(s10"/a>                  a href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb16_deypto/class="sref">atmel_tdes_ctcfb16_deypto/a>(s10"2a>        }1ea href="drivers/crypto/atmel-tdes.c#L691023idp.L6910" class="line" namop.L7210" c>10"3a>  }10"4a>{110"5a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb32(s.c)uot;);10"/a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb32-s.cuot;);10"7a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10010"8a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);10"9a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddCFB32_BLOCK_ZE" class="sref">DECFB32_BLOCK_ZE" a>);10" a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)10"/a>        }1a href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x310"2a>        }1a href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);10"/a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);10"/a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s10"5a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s10"/a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva10"/a>                }1a href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10"/a>                vaa href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10"/a>                vaa href="+code=deivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);10" a>                vaa href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s10"/a>                  a href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb32_enypto/class="sref">atmel_tdes_ctcfb32_enypto/a>(s10"2a>                  a href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb32_deypto/class="sref">atmel_tdes_ctcfb32_deypto/a>(s10"/a>        vaea href="drivers/crypto/atmel-tdes.c#L691044idp.L6910" class="line" namop.L7410" c>10"4a>  }10"5a>{110"/a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"noofb(s.c)uot;);10"7a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdofb-s.cuot;);10"8a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10010"9a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);10" a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);10"/a>        }1a href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)10"2a>        }1a href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x710"/a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);10"/a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);10"5a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s10"/a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s10"7a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva10"/a>                vaa href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10"/a>                vaa href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10" a>                vaa href="+code=deivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);10"/a>                  a href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdd_setkey" class="sref">atmel_des_setkeyv/a>(s10"2a>                  a href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmofb_enypto/class="sref">atmel_tdes_ctofb_enypto/a>(s10"/a>                }1a href="+code=chviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmofb_deypto/class="sref">atmel_tdes_ctofb_deypto/a>(s10"/a>        vaea href="drivers/crypto/atmel-tdes.c#L691065idp.L6910" class="line" namop.L7610" c>10"5a>  }10"/a>1<10"7a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"noecb(s.c3_ede)uot;);10"8a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdecb-ts.cuot;);10"9a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10010" a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);10"/a>        }1a href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);10"2a>        }1a href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)10"/a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x710"/a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);10"5a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);10"/a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s10"7a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s10"8a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva10"/a>                vaa href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va2 *a href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10dpa>                vaa href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va3 *a href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 10d/a>                  a href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 10d2a>                  a href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmecb_enypto/class="sref">atmel_tdes_ctecb_enypto/a>(s10d/a>                }1a href="+code=chviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmecb_deypto/class="sref">atmel_tdes_ctecb_deypto/a>(s10d/a>        vaea href="drivers/crypto/atmel-tdes.c#L691085idp.L6910" class="line" namop.L6810" c>10d5a>  }10d/a>1<10d7a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocbc(s.c3_ede)uot;);10d8a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcbc-ts.cuot;);10d9a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10010" a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);10"/a>        }1a href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);10"2a>        }1a href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)10"/a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x710"/a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);10"5a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);10"/a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s10"7a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s10"8a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva10"/a>                vaa href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 110 a>                vaa href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va3* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 110/a>                  a href="+code=deivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);1102a>                  a href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 110/a>                }1a href="+code=chenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcbc_enypto/class="sref">atmel_tdes_ctcbc_enypto/a>(s110/a>        va      }1a href="+code=chviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcbc_deypto/class="sref">atmel_tdes_ctcbc_deypto/a>(s1105a>        vaea href="drivers/crypto/atmel-tdes.c#L691106idp.L69110 class="line" namop.L69110 c>110/a>  }1107a>  1108a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb(s.c3_ede)uot;);1109a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb-ts.cuot;);11" a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10011"/a>        }1a href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);11"2a>        }1a href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);11"/a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)11"/a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x711"5a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);111/a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);1117a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s1118a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s1119a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva11" a>                vaa href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 11"/a>                  a href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 1122a>                  a href="+code=deivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);112/a>                }1a href="+code=chtkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 112/a>        va      }1a href="+code=chenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb_enypto/class="sref">atmel_tdes_ctcfb_enypto/a>(s11"5a>        va      }1a href="+code=chviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb_deypto/class="sref">atmel_tdes_ctcfb_deypto/a>(s11"/a>        vaea href="drivers/crypto/atmel-tdes.c#L691127idp.L6911" class="line" namop.L7211" c>11"7a>  }11"8a>  11"9a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb8(s.c3_ede)uot;);11" a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb8-ts.cuot;);11"/a>        }1a href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10011"2a>        }1a href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);11"/a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddCFB _BLOCK_ZE" class="sref">DECFB _BLOCK_ZE" a>);11"/a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)11"5a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va011"/a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);1137a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);1138a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s1139a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s114 a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva11"/a>                  a href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 11"2a>                  a href="+code=demax_ylesiz.class="sref">atmax_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 114/a>                }1a href="+code=chivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);114/a>        va      }1a href="+code=chtkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 1145a>        va      }1a href="+code=chenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb8_enypto/class="sref">atmel_tdes_ctcfb8_enypto/a>(s114/a>                rea href="+code=chviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb8_deypto/class="sref">atmel_tdes_ctcfb8_deypto/a>(s11"7a>        vaea href="drivers/crypto/atmel-tdes.c#L6911"8idp.L6911" class="line" namop.L7411" c>11"8a>  }11"9a>  11" a>        vaa href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb16(s.c3_ede)uot;);11"/a>        }1a href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb16-ts.cuot;);11"2a>        }1a href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10011"/a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);11"/a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddCFB16_BLOCK_ZE" class="sref">DECFB16_BLOCK_ZE" a>);11"5a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)11"/a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x111"7a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);1158a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);1159a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s116 a>        vaa href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s116/a>        }1a href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva11"2a>                  a href="+code=demin_ylesiz.class="sref">atmin_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 11"/a>                }1a href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 116/a>        va      }1a href="+code=chivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);1165a>        va      }1a href="+code=chtkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 116/a>                rea href="+code=chenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb16_enypto/class="sref">atmel_tdes_ctcfb16_enypto/a>(s116/a>                }1a href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb16_deypto/class="sref">atmel_tdes_ctcfb16_deypto/a>(s11"8a>        vaea href="drivers/crypto/atmel-tdes.c#L691169idp.L6911" class="line" namop.L7611" c>11"9a>  }11" a>  11"/a>        }1a href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"nocfb32(s.c3_ede)uot;);11"2a>        }1a href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdcfb32-ts.cuot;);11"/a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10011"/a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);11"5a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddCFB32_BLOCK_ZE" class="sref">DECFB32_BLOCK_ZE" a>);11"/a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)11"7a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x311"8a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);1179a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);118 a>        vaa href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s118/a>        }1a href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s1182a>        }1a href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva11d/a>                }1a href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 118/a>        va      }1a href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 1185a>        va      }1a href="+code=chivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);118/a>                rea href="+code=chtkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 118/a>                }1a href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmcfb32_enypto/class="sref">atmel_tdes_ctcfb32_enypto/a>(s118/a>                vaa href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmcfb32_deypto/class="sref">atmel_tdes_ctcfb32_deypto/a>(s11d9a>        vaea href="drivers/crypto/atmel-tdes.c#L69119 idp.L6911" class="line" namop.L6911" c>11" a>  }11"/a>  11"2a>        }1a href="+code=chapinmop.class="sref">atypa_mop.a>)1               =span class="string">"noofb(s.c3_ede)uot;);11"/a>        vaa href="+code=chapinivers/nmop.class="sref">atypa_ivers/nmop.a>        }1=span class="string">"nomel-tdofb-ts.cuot;);11"/a>        vaa href="+code=chapinpriorit class="sref">keapinpriorit a>)1           = 10011"5a>        vaa href="+code=chapinags" class="sref">flypa_ags" a>(1a             =sphref="+code=chBRYPTO_ALG_TYPE_ABLKCIPHE class="sref">TDBRYPTO_ALG_TYPE_ABLKCIPHE a>)1 |a href="+code=CFBRYPTO_ALG_ASYNCclass="sref">reBRYPTO_ALG_ASYNCa>);11"/a>        vaa href="+code=chapinblocksiz.class="sref">atapinblocksiz.a>(1a         va href="+code=ddAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);11"7a>        vaa href="+code=chapinxv/siz.class="sref">atapinxv/siz.a>(1a           vasiz.oftruct va href="+code=atmel_tdes_dex" class="sref">atmel_tdes_ctxv/a> *)11"8a>        vaa href="+code=chapinalignmaskclass="sref">atapinalignmaska>(1a         va0x71199a>        vaa href="+code=chapintyp.class="sref">atapintyp.a>)1               =smp; v href="+code=crypto_ablkcipher_remyp.class="sref">atapto_ablkcipher_remyp.a>);120 a>        vaa href="+code=chapinmodul.class="sref">atapinmodul.a>)1             va href="+code=ddTHIS_MODUL class="sref">DETHIS_MODUL a>);120/a>        }1a href="+code=chapinv/i/class="sref">atypinv/i/a>(s               =s href="+code=atmel_tdes_dmcrinv/i/class="sref">atmel_tdes_ctypinv/i/a>(s1202a>        }1a href="+code=chapinexi/class="sref">atypinexi/a>(s               =s href="+code=atmel_tdes_dmcrinexi/class="sref">atmel_tdes_ctypinexi/a>(s120/a>        vaa href="+code=chapinuclass="sref">atypinua> *a href="+code=chlkcipher" class="sref">crlkcipherv/a> *vva120/a>        va      }1a href="+code=chmin_ylesiz.class="sref">atmin_ylesiz.a>      va2* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 1205a>        va      }1a href="+code=chmax_ylesiz.class="sref">atmax_ylesiz.a>      va3* href="+code=ddAES_KEY_ZE" class="sref">DES_BLKEY_ZE" a>, 120/a>                rea href="+code=chivsiz.class="sref">ativsiz.a>(s         =s href="+code=atAES_BLOCK_ZE" class="sref">DES_BLBLOCK_ZE" a>);120/a>                }1a href="+code=detkey" class="sref">attkeyv/a>(s         =s href="+code=atmel_tdtd_setkey" class="sref">atmel_detd_setkey" a>, 120/a>                vaa href="+code=deenypto/class="sref">atenypto/a>(s        =s href="+code=atmel_tdes_dmofb_enypto/class="sref">atmel_tdes_ctofb_enypto/a>(s120/a>                vaa href="+code=deviypto/class="sref">atdeypto/a>(s        =s href="+code=atmel_tdes_dmofb_deypto/class="sref">atmel_tdes_ctofb_deypto/a>(s12" a>        vaea href="drivers/crypto/atmel-tdes.c#L691211idp.L6912" class="line" namop.L7112" c>12"/a>  }12"2a>  };a href="drivers/crypto/atmel-tdes.c#L7012"3idp.L6912" class="line" namop.L7112" c>12"/a>  a href="drivers/crypto/atmel-tdes.c#L7012"4idp.L6912" class="line" namop.L7112" c>12"/a>  static voids href="+code=atmel_tdes_dmqueue_taskclass="sref">atmel_tdes_dmqueue_taska>  (unsigned longs href="+code=atdataclass="sref">atdataa> *)a href="drivers/crypto/atmel-tdes.c#L7012"5idp.L6912" class="line" namop.L7112" c>12"5a>  121/a>        varuct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddddclass="sref">atdda> *vvatruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   *) href="+code=atdataclass="sref">atdataa> *;a href="drivers/crypto/atmel-tdes.c#L7012"7idp.L6912" class="line" namop.L7112" c>1217a>  a href="drivers/crypto/atmel-tdes.c#L7012"8idp.L6912" class="line" namop.L7112" c>1218a>        va href="+code=atmel_tdes_dehandlemqueueclass="sref">atmel_tdes_dmhandlemqueuea>  ( href="+code=ddddclass="sref">atdda> *,a href="+code=atNULLclass="sref">atNULLa> *);a href="drivers/crypto/atmel-tdes.c#L7012"9idp.L6912" class="line" namop.L7112" c>1219a>  ea href="drivers/crypto/atmel-tdes.c#L69122 idp.L6912" class="line" namop.L7212" c>12" a>  a href="drivers/crypto/atmel-tdes.c#L691221idp.L6912" class="line" namop.L7212" c>12"/a>  static voids href="+code=atmel_tdes_dmdone_taskclass="sref">atmel_tdes_dmdone_taska>  (unsigned longs href="+code=atdataclass="sref">atdataa> *)a href="drivers/crypto/atmel-tdes.c#L701222idp.L6912" class="line" namop.L7212" c>1222a>  122/a>          ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddddclass="sref">atdda> *vvatruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   *)s href="+code=atdataclass="sref">atdataa> *;a href="drivers/crypto/atmel-tdes.c#L701224idp.L6912" class="line" namop.L7212" c>122/a>        vainva href="+code=ater class="sref">crer a> *;a href="drivers/crypto/atmel-tdes.c#L701225idp.L6912" class="line" namop.L7212" c>12"5a>  a href="drivers/crypto/atmel-tdes.c#L701226idp.L6912" class="line" namop.L7212" c>12"/a>        vaif (!( href="+code=ddddclass="sref">atdda> *->v href="+code=crags" class="sref">flags" a>(1amp; va href="+code=ddTS_BLFLAGS_DMAclass="sref">DETS_BLFLAGS_DMAa> *))a href="drivers/crypto/atmel-tdes.c#L701227idp.L6912" class="line" namop.L7212" c>122/a>                }1 href="+code=ater class="sref">crer a> * =s href="+code=atmel_tdes_dmcrto/_pdc_stopclass="sref">atmel_tdes_ctypto/_pdc_stopa>  ( href="+code=ddddclass="sref">atdda> *);a href="drivers/crypto/atmel-tdes.c#L701228idp.L6912" class="line" namop.L7212" c>1228a>        vaelsea href="drivers/crypto/atmel-tdes.c#L701229idp.L6912" class="line" namop.L7212" c>122/a>                va href="+code=ater class="sref">crer a> * =s href="+code=atmel_tdes_dmcrto/_dma_stopclass="sref">atmel_tdes_ctypto/_dma_stopa>  ( href="+code=ddddclass="sref">atdda> *);a href="drivers/crypto/atmel-tdes.c#L70123 idp.L6912" class="line" namop.L7312" c>123 a>  a href="drivers/crypto/atmel-tdes.c#L691231idp.L6912" class="line" namop.L7312" c>12"/a>        }1 href="+code=ater class="sref">crer a> * =s href="+code=atddclass="sref">atdda> *->v href="+code=crer class="sref">crer a> * ? :a href="+code=ater class="sref">crer a> *;a href="drivers/crypto/atmel-tdes.c#L701232idp.L6912" class="line" namop.L7312" c>12"2a>  a href="drivers/crypto/atmel-tdes.c#L701233idp.L6912" class="line" namop.L7312" c>12"/a>        vaif ( href="+code=atddclass="sref">atdda> *->v href="+code=crtotalclass="sref">attotala>(1amp; vmp; va! href="+code=ater class="sref">crer a> *)a123/a>        va      }1if ( href="+code=atddclass="sref">atdda> *->v href="+code=crags" class="sref">flags" a>(1amp; va href="+code=ddTS_BLFLAGS_FASTclass="sref">DETS_BLFLAGS_FASTa> *)a1235a>        va      }1      }1 href="+code=atddclass="sref">atdda> *->v href="+code=crin_sgclass="sref">atin_sga> * =s href="+code=atsg_nex/class="sref">atsg_nex/a>  ( href="+code=ddddclass="sref">atdda> *->v href="+code=crin_sgclass="sref">atin_sga> *);a href="drivers/crypto/atmel-tdes.c#L701236idp.L6912" class="line" namop.L7312" c>123/a>                re      }1 href="+code=atddclass="sref">atdda> *->v href="+code=crout_sgclass="sref">atout_sga> * =s href="+code=atsg_nex/class="sref">atsg_nex/a>  ( href="+code=ddddclass="sref">atdda> *->v href="+code=crout_sgclass="sref">atout_sga> *);a href="drivers/crypto/atmel-tdes.c#L701237idp.L6912" class="line" namop.L7312" c>123/a>                }1      vaif (! href="+code=atddclass="sref">atdda> *->v href="+code=crin_sgclass="sref">atin_sga> * ||a! href="+code=atddclass="sref">atdda> *->v href="+code=crout_sgclass="sref">atout_sga> *)a href="drivers/crypto/atmel-tdes.c#L701238idp.L6912" class="line" namop.L7312" c>123/a>                va              va href="+code=ater class="sref">crer a> * =s- href="+code=atEINVALclass="sref">atEINVALa> *;a href="drivers/crypto/atmel-tdes.c#L701239idp.L6912" class="line" namop.L7312" c>123/a>                vaea href="drivers/crypto/atmel-tdes.c#L69124 idp.L6912" class="line" namop.L7412" c>124 a>                vaif (! href="+code=ater class="sref">crer a> *)a href="drivers/crypto/atmel-tdes.c#L691241idp.L6912" class="line" namop.L7412" c>12"/a>                        va href="+code=ater class="sref">crer a> * =s href="+code=atmel_tdes_dmcrto/_star/class="sref">atmel_tdes_ctypto/_star/a>  ( href="+code=ddddclass="sref">atdda> *);a href="drivers/crypto/atmel-tdes.c#L701242idp.L6912" class="line" namop.L7412" c>12"2a>                  if (! href="+code=ater class="sref">crer a> *)a href="drivers/crypto/atmel-tdes.c#L691243idp.L6912" class="line" namop.L7412" c>124/a>                }111111111return;span class="stcomment">/* DMA star/ed. Not fininishing. */span>);a href="drivers/crypto/atmel-tdes.c#L691244idp.L6912" class="line" namop.L7412" c>124/a>        vaea href="drivers/crypto/atmel-tdes.c#L691245idp.L6912" class="line" namop.L7412" c>1245a>  a href="drivers/crypto/atmel-tdes.c#L701246idp.L6912" class="line" namop.L7412" c>124/a>           href="+code=atmel_tdes_dmfinish_reqclass="sref">atmel_tdes_ctfinish_reqa>  ( href="+code=ddddclass="sref">atdda> *,a href="+code=ater class="sref">crer a> *);a href="drivers/crypto/atmel-tdes.c#L701247idp.L6912" class="line" namop.L7412" c>12"7a>        va href="+code=atmel_tdes_dehandlemqueueclass="sref">atmel_tdes_dmhandlemqueuea>  ( href="+code=ddddclass="sref">atdda> *,a href="+code=atNULLclass="sref">atNULLa> *);a href="drivers/crypto/atmel-tdes.c#L7012"8idp.L6912" class="line" namop.L7412" c>12"8a>  }a href="drivers/crypto/atmel-tdes.c#L7012"9idp.L6912" class="line" namop.L7412" c>12"9a>  a href="drivers/crypto/atmel-tdes.c#L70125 idp.L6912" class="line" namop.L7512" c>12" a>  static  href="+code=crirqreturn_/class="sref">atirqreturn_/a>    href="+code=atmel_tdes_deirqclass="sref">atmel_tdes_dmirqa>  (inva href="+code=atirqclass="sref">atirqa>  , voids* href="+code=dddev_idclass="sref">atdev_ida> *)a href="drivers/crypto/atmel-tdes.c#L691251idp.L6912" class="line" namop.L7512" c>125/a>  12"2a>        }1ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddes_dmddclass="sref">ates_dmdda> * =s href="+code=atdev_idclass="sref">atdev_ida> *;a href="drivers/crypto/atmel-tdes.c#L7012"3idp.L6912" class="line" namop.L7512" c>12"/a>        va href="+code=atu" class="lief">atu"2a>    href="+code=atregclass="sref">atrega> *;a href="drivers/crypto/atmel-tdes.c#L7012"4idp.L6912" class="line" namop.L7512" c>12"/a>  a href="drivers/crypto/atmel-tdes.c#L7012"5idp.L6912" class="line" namop.L7512" c>12"5a>        va href="+code=atregclass="sref">atrega> * =s href="+code=atmel_tdes_dmreadclass="sref">atmel_tdes_dmreada>  ( href="+code=ddes_dmddclass="sref">ates_dmdda> *,a href="+code=atTS_BLIS class="sref">TDTS_BLIS a> *);a href="drivers/crypto/atmel-tdes.c#L701256idp.L6912" class="line" namop.L7512" c>125/a>        vaif ( href="+code=atregclass="sref">atrega> * mp; va href="+code=ddmel_tdes_dmreadclass="sref">atmel_tdes_dmreada>  ( href="+code=ddes_dmddclass="sref">ates_dmdda> *,a href="+code=atTS_BLIM class="sref">TDTS_BLIM a> *))a125/a>                }1 href="+code=atmel_tdes_dmwriteclass="sref">atmel_tdes_dmwritea>  ( href="+code=ddes_dmddclass="sref">ates_dmdda> *,a href="+code=atTS_BLID class="sref">TDTS_BLIDRa> *,a href="+code=atregclass="sref">atrega> *);a href="drivers/crypto/atmel-tdes.c#L701258idp.L6912" class="line" namop.L7512" c>125/a>                vaif ( href="+code=atTS_BLFLAGS_BUSYclass="sref">DETS_BLFLAGS_BUSYa> * mp; va href="+code=ddes_dmddclass="sref">ates_dmdda> *->v href="+code=crags" class="sref">flags" a>(1)a href="drivers/crypto/atmel-tdes.c#L691259idp.L6912" class="line" namop.L7512" c>125/a>                va      }1 href="+code=attaskle/_schedul.class="sref">attaskle/_schedul.a>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crdone_taskclass="sref">atdone_taska>  );a href="drivers/crypto/atmel-tdes.c#L70126 idp.L6912" class="line" namop.L7612" c>126 a>                vaelsea href="drivers/crypto/atmel-tdes.c#L701261idp.L6912" class="line" namop.L7612" c>126/a>                        va href="+code=atdev_warnclass="sref">atdev_warna>  ( href="+code=ddes_dmddclass="sref">ates_dmdda> *->v href="+code=crdevclass="sref">atdeva>  ,span class="string">"noTS_Bainver upt when no acters1requests.\nuot;););a href="drivers/crypto/atmel-tdes.c#L701262idp.L6912" class="line" namop.L7612" c>12"2a>                  returna href="+code=atIRQ_HANDLEDclass="sref">atIRQ_HANDLEDa> *;a href="drivers/crypto/atmel-tdes.c#L7012"3idp.L6912" class="line" namop.L7612" c>12"/a>          }a href="drivers/crypto/atmel-tdes.c#L7012"4idp.L6912" class="line" namop.L7612" c>126/a>  a href="drivers/crypto/atmel-tdes.c#L701265idp.L6912" class="line" namop.L7612" c>1265a>        vareturna href="+code=atIRQ_NON class="sref">DEIRQ_NON a> *;a href="drivers/crypto/atmel-tdes.c#L7012"6idp.L6912" class="line" namop.L7612" c>126/a>  }a href="drivers/crypto/atmel-tdes.c#L7012"7idp.L6912" class="line" namop.L7612" c>1267a>  a href="drivers/crypto/atmel-tdes.c#L701268idp.L6912" class="line" namop.L7612" c>12"8a>  static voids href="+code=atmel_tdes_dmunregisver_al" class="sref">flmel_tdes_dmunregisver_al" a>  (ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddddclass="sref">atdda> *)a href="drivers/crypto/atmel-tdes.c#L691269idp.L6912" class="line" namop.L7612" c>1269a>  127 a>          inva href="+code=aticlass="sref">atia> *;a href="drivers/crypto/atmel-tdes.c#L701271idp.L6912" class="line" namop.L7712" c>12"/a>  a href="drivers/crypto/atmel-tdes.c#L701272idp.L6912" class="line" namop.L7712" c>12"2a>        }1for ( href="+code=aticlass="sref">atia> * va0va href="+code=ddiclass="sref">atia> * <va href="+code=ddARRAY_ZE" class="sref">DEARRAY_ZE" a>  ( href="+code=ddes_dmal" class="sref">fles_dmal" a>  );a href="+code=ddiclass="sref">atia> *++)a href="drivers/crypto/atmel-tdes.c#L691273idp.L6912" class="line" namop.L7712" c>127/a>                }1 href="+code=ddapto_abunregisver_al"class="sref">atapto_abunregisver_al"a>  (mp; v href="+code=cres_dmal" class="sref">fles_dmal" a>  [ href="+code=ddiclass="sref">atia> *]);a href="drivers/crypto/atmel-tdes.c#L701274idp.L6912" class="line" namop.L7712" c>12"/a>  }a href="drivers/crypto/atmel-tdes.c#L701275idp.L6912" class="line" namop.L7712" c>1275a>  a href="drivers/crypto/atmel-tdes.c#L701276idp.L6912" class="line" namop.L7712" c>12"/a>  static inva href="+code=atmel_tdes_dmregisver_al" class="sref">flmel_tdes_dmregisver_al" a>  (ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddddclass="sref">atdda> *)a href="drivers/crypto/atmel-tdes.c#L691277idp.L6912" class="line" namop.L7712" c>12"7a>  12"8a>        vainva href="+code=ater class="sref">crer a> *,a href="+code=aticlass="sref">atia> *,a href="+code=atjclass="sref">atja> *;a href="drivers/crypto/atmel-tdes.c#L701279idp.L6912" class="line" namop.L7712" c>1279a>  a href="drivers/crypto/atmel-tdes.c#L70128 idp.L6912dp.L679" class="line" na12dp.>128 a>        vafor ( href="+code=aticlass="sref">atia> * va0va href="+code=ddiclass="sref">atia> * <va href="+code=ddARRAY_ZE" class="sref">DEARRAY_ZE" a>  ( href="+code=ddes_dmal" class="sref">fles_dmal" a>  );a href="+code=ddiclass="sref">atia> *++)a128/a>                   href="+code=ater class="sref">crer a> * =s href="+code=atapto_abregisver_al"class="sref">atapto_abregisver_al"a>  (mp; v href="+code=cres_dmal" class="sref">fles_dmal" a>  [ href="+code=ddiclass="sref">atia> *]);a href="drivers/crypto/atmel-tdes.c#L701282idp.L6912" class="line" namop.L6812" c>1282a>                  if ( href="+code=ater class="sref">crer a> *)a href="drivers/crypto/atmel-tdes.c#L6912d3idp.L6912" class="line" namop.L6812" c>12d/a>                }111111111goto  href="+code=ater _es_dmal" class="sref">fler _es_dmal" a> *;a href="drivers/crypto/atmel-tdes.c#L7012d4idp.L6912" class="line" namop.L6812" c>128/a>        vaea href="drivers/crypto/atmel-tdes.c#L691285idp.L6912" class="line" namop.L6812" c>1285a>  a href="drivers/crypto/atmel-tdes.c#L701286idp.L6912" class="line" namop.L6812" c>128/a>          returna0;a href="drivers/crypto/atmel-tdes.c#L7012d7idp.L6912" class="line" namop.L6812" c>1287a>  a href="drivers/crypto/atmel-tdes.c#L701288idp.L6912" class="line" namop.L6812" c>128/a>   href="+code=ater _es_dmal" class="sref">fler _es_dmal" a> *:a href="drivers/crypto/atmel-tdes.c#L701289idp.L6912" class="line" namop.L6812" c>12d9a>        vafor ( href="+code=atjclass="sref">atja> * va0va href="+code=ddjclass="sref">atja> * <va href="+code=ddiclass="sref">atia> *;a href="+code=ddjclass="sref">atja> *++)a href="drivers/crypto/atmel-tdes.c#L69129 idp.L6912" class="line" namop.L6912" c>129 a>                va href="+code=ddapto_abunregisver_al"class="sref">atapto_abunregisver_al"a>  (mp; v href="+code=cres_dmal" class="sref">fles_dmal" a>  [ href="+code=ddjclass="sref">atja> *]);a href="drivers/crypto/atmel-tdes.c#L701291idp.L6912" class="line" namop.L6912" c>129/a>  a href="drivers/crypto/atmel-tdes.c#L701292idp.L6912" class="line" namop.L6912" c>12"2a>        }1returna href="+code=ater class="sref">crer a> *;a href="drivers/crypto/atmel-tdes.c#L701293idp.L6912" class="line" namop.L6912" c>12"/a>  ea href="drivers/crypto/atmel-tdes.c#L691294idp.L6912" class="line" namop.L6912" c>129/a>  a href="drivers/crypto/atmel-tdes.c#L701295idp.L6912" class="line" namop.L6912" c>12"5a>  static voids href="+code=atmel_tdes_dmget_capclass="sref">atmel_tdes_ctget_capa>  (ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddddclass="sref">atdda> *)a href="drivers/crypto/atmel-tdes.c#L691296idp.L6912" class="line" namop.L6912" c>12"/a>  1297a>  a href="drivers/crypto/atmel-tdes.c#L701298idp.L6912" class="line" namop.L6912" c>1298a>        va href="+code=atddclass="sref">atdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_dmaclass="sref">flhas_dmaa> * va0va href="drivers/crypto/atmel-tdes.c#L701299idp.L6912" class="line" namop.L6912" c>1299a>        va href="+code=atddclass="sref">atdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_cfb_3ylesclass="sref">flhas_cfb_3ylesa> * va0va href="drivers/crypto/atmel-tdes.c#L70130 idp.L69130 idass="line" namop.L69130 i>130 a>  a href="drivers/crypto/atmel-tdes.c#L691301idp.L69130 class="line" namop.L69130 c>130/a>        }1pan class="stcomment">/* keep only major rs/cion number */span>);a href="drivers/crypto/atmel-tdes.c#L691302idp.L69130 class="line" namop.L69130 c>1302a>        }1switch ( href="+code=atddclass="sref">atdda> *->v href="+code=crhw_rs/cionclass="sref">flhw_rs/ciona> * mp; va0xf00)a130/a>        vacasea0x700:a href="drivers/crypto/atmel-tdes.c#L701304idp.L69130 class="line" namop.L69130 c>130/a>        va      }1 href="+code=atddclass="sref">atdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_dmaclass="sref">flhas_dmaa> * va1va href="drivers/crypto/atmel-tdes.c#L701305idp.L69130 class="line" namop.L69130 c>1305a>        va      }1 href="+code=atddclass="sref">atdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_cfb_3ylesclass="sref">flhas_cfb_3ylesa> * va1va href="drivers/crypto/atmel-tdes.c#L701306idp.L69130 class="line" namop.L69130 c>130/a>                rebreakva href="drivers/crypto/atmel-tdes.c#L701307idp.L69130 class="line" namop.L69130 c>130/a>          casea0x600:a href="drivers/crypto/atmel-tdes.c#L701308idp.L69130 class="line" namop.L69130 c>130/a>                vabreakva href="drivers/crypto/atmel-tdes.c#L701309idp.L69130 class="line" namop.L69130 c>130/a>          default:a href="drivers/crypto/atmel-tdes.c#L70131 idp.L6913" class="line" namop.L7113" c>131 a>                va href="+code=dddev_warnclass="sref">atdev_warna>  ( href="+code=ddddclass="sref">atdda> *->v href="+code=crdevclass="sref">atdeva>  ,a href="drivers/crypto/atmel-tdes.c#L701311idp.L6913" class="line" namop.L7113" c>131/a>                        va      }1pan class="string">"noUnmanaged es.c rs/cion, set minimum capabilities\nuot;););a href="drivers/crypto/atmel-tdes.c#L7013"2idp.L6913" class="line" namop.L7113" c>1312a>                  breakva href="drivers/crypto/atmel-tdes.c#L7013"3idp.L6913" class="line" namop.L7113" c>131/a>          }a href="drivers/crypto/atmel-tdes.c#L7013"4idp.L6913" class="line" namop.L7113" c>131/a>  }a href="drivers/crypto/atmel-tdes.c#L7013"5idp.L6913" class="line" namop.L7113" c>1315a>  a href="drivers/crypto/atmel-tdes.c#L7013"6idp.L6913" class="line" namop.L7113" c>131/a>  #ifa href="+code=dddefe" dclass="sref">atdefe" da>  ( href="+code=ddCONFIG_OFclass="sref">atCONFIG_OFa> *)a href="drivers/crypto/atmel-tdes.c#L6913"7idp.L6913" class="line" namop.L7113" c>1317a>  static const1ruct va href="+code=atofmdevice_idclass="sref">atofmdevice_ida>    href="+code=atmel_tdes_dedt_id class="sref">flmel_tdes_dmdt_id a>  []vva1318a>        va{aa href="+code=chaompatibl.class="sref">ataompatibl.a> * =s an class="string">"nomel-t,at91sam9g46-ts.cuot;); }1319a>        va{apan class="stcomment">/* sente" l */span>); }a href="drivers/crypto/atmel-tdes.c#L70132 idp.L6913" class="line" namop.L7213" c>13" a>  };a href="drivers/crypto/atmel-tdes.c#L701321idp.L6913" class="line" namop.L7213" c>13"/a>   href="+code=chMODUL _DEVICE_TABL class="sref">DEMODUL _DEVICE_TABL a>  ( href="+code=ddofclass="sref">atofa> *,a href="+code=atmel_tdes_dedt_id class="sref">flmel_tdes_dmdt_id a>  );a href="drivers/crypto/atmel-tdes.c#L701322idp.L6913" class="line" namop.L7213" c>1322a>  a href="drivers/crypto/atmel-tdes.c#L701323idp.L6913" class="line" namop.L7213" c>132/a>  static ruct va href="+code=atapto_abplatform_dataclass="sref">atapto_abplatform_dataa>   * href="+code=ddmel_tdes_dmofmv/i/class="sref">atmel_tdes_ctofmv/i/a>  (ruct va href="+code=atplatform_deviceclass="sref">atplatform_devicea>   * href="+code=ddpdevclass="sref">atpdeva>  )a href="drivers/crypto/atmel-tdes.c#L691324idp.L6913" class="line" namop.L7213" c>132/a>  1325a>        varuct va href="+code=atdevice_ne=aclass="sref">atdevice_ne=aa>   * href="+code=ddnpclass="sref">atnpa> * =s href="+code=atpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  a href="+code=chofmne=aclass="sref">atofmne=aa> *;a href="drivers/crypto/atmel-tdes.c#L701326idp.L6913" class="line" namop.L7213" c>132/a>        varuct va href="+code=atapto_abplatform_dataclass="sref">atapto_abplatform_dataa>   * href="+code=ddpdataclass="sref">atpdataa> *;a href="drivers/crypto/atmel-tdes.c#L701327idp.L6913" class="line" namop.L7213" c>1327a>  a href="drivers/crypto/atmel-tdes.c#L701328idp.L6913" class="line" namop.L7213" c>1328a>        vaif (! href="+code=atnpclass="sref">atnpa> *)a132/a>                va href="+code=atdev_er class="sref">crdev_er a>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,span class="string">"nodevice ne=a net found\nuot;););a href="drivers/crypto/atmel-tdes.c#L70133 idp.L6913" class="line" namop.L7313" c>133 a>                vareturna href="+code=atERR_PT class="sref">TDERR_PT a>  (- href="+code=atEINVALclass="sref">atEINVALa> *);a href="drivers/crypto/atmel-tdes.c#L701331idp.L6913" class="line" namop.L7313" c>13"/a>        }1}a href="drivers/crypto/atmel-tdes.c#L701332idp.L6913" class="line" namop.L7313" c>13"2a>  a href="drivers/crypto/atmel-tdes.c#L701333idp.L6913" class="line" namop.L7313" c>133/a>        va href="+code=atpdataclass="sref">atpdataa> * =s href="+code=atdevm_kzallocclass="sref">atdevm_kzalloca>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,ssiz.oft* href="+code=ddpdataclass="sref">atpdataa> *),a href="+code=atGFP_KERNELclass="sref">atGFP_KERNELa> *);a href="drivers/crypto/atmel-tdes.c#L701334idp.L6913" class="line" namop.L7313" c>133/a>        vaif (! href="+code=atpdataclass="sref">atpdataa> *)a1335a>        va      }1 href="+code=atdev_er class="sref">crdev_er a>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,span class="string">"nocould net allocate memoryafor pdata\nuot;););a href="drivers/crypto/atmel-tdes.c#L701336idp.L6913" class="line" namop.L7313" c>133/a>                rereturna href="+code=atERR_PT class="sref">TDERR_PT a>  (- href="+code=atENOMEMclass="sref">TDENOMEMa> *);a href="drivers/crypto/atmel-tdes.c#L701337idp.L6913" class="line" namop.L7313" c>133/a>          }a href="drivers/crypto/atmel-tdes.c#L701338idp.L6913" class="line" namop.L7313" c>133/a>  a href="drivers/crypto/atmel-tdes.c#L701339idp.L6913" class="line" namop.L7313" c>1339a>        va href="+code=atpdataclass="sref">atpdataa> *->v href="+code=crdma_slavaclass="sref">atdma_slavaa> * =s href="+code=atdevm_kzallocclass="sref">atdevm_kzalloca>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,a href="drivers/crypto/atmel-tdes.c#L70134 idp.L6913" class="line" namop.L7413" c>134 a>                vaaaaaaaaaaaaaaaaaaaaaaaaasiz.oft*( href="+code=ddpdataclass="sref">atpdataa> *->v href="+code=crdma_slavaclass="sref">atdma_slavaa> *))13"/a>                        va      va      }1 href="+code=atGFP_KERNELclass="sref">atGFP_KERNELa> *);a href="drivers/crypto/atmel-tdes.c#L701342idp.L6913" class="line" namop.L7413" c>13"2a>          if (! href="+code=atpdataclass="sref">atpdataa> *->v href="+code=crdma_slavaclass="sref">atdma_slavaa> *)a134/a>                }1 href="+code=atdev_er class="sref">crdev_er a>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,span class="string">"nocould net allocate memoryafor dma_slava\nuot;););a href="drivers/crypto/atmel-tdes.c#L701344idp.L6913" class="line" namop.L7413" c>134/a>        va      }1returna href="+code=atERR_PT class="sref">TDERR_PT a>  (- href="+code=atENOMEMclass="sref">TDENOMEMa> *);a href="drivers/crypto/atmel-tdes.c#L701345idp.L6913" class="line" namop.L7413" c>1345a>          }a href="drivers/crypto/atmel-tdes.c#L701346idp.L6913" class="line" namop.L7413" c>134/a>  a href="drivers/crypto/atmel-tdes.c#L701347idp.L6913" class="line" namop.L7413" c>13"7a>        vareturna href="+code=atpdataclass="sref">atpdataa> *;a href="drivers/crypto/atmel-tdes.c#L7013"8idp.L6913" class="line" namop.L7413" c>13"8a>  }a href="drivers/crypto/atmel-tdes.c#L7013"9idp.L6913" class="line" namop.L7413" c>13"9a>  #elseapan class="stcomment">/* CONFIG_OF */span>);a href="drivers/crypto/atmel-tdes.c#L69135 idp.L6913" class="line" namop.L7513" c>13" a>  static  href="+code=crinne" naass="sref">atinne" a>   ruct va href="+code=atapto_abplatform_dataclass="sref">atapto_abplatform_dataa>   * href="+code=ddmel_tdes_dmofmv/i/class="sref">atmel_tdes_ctofmv/i/a>  (ruct va href="+code=atplatform_deviceclass="sref">atplatform_devicea>   * href="+code=ddpdevclass="sref">atpdeva>  )a href="drivers/crypto/atmel-tdes.c#L691351idp.L6913" class="line" namop.L7513" c>135/a>  1352a>        }1returna href="+code=atERR_PT class="sref">TDERR_PT a>  (- href="+code=atEINVALclass="sref">atEINVALa> *);a href="drivers/crypto/atmel-tdes.c#L7013"3idp.L6913" class="line" namop.L7513" c>135/a>  ea href="drivers/crypto/atmel-tdes.c#L6913"4idp.L6913" class="line" namop.L7513" c>13"/a>  #endifa href="drivers/crypto/atmel-tdes.c#L6913"5idp.L6913" class="line" namop.L7513" c>1355a>  a href="drivers/crypto/atmel-tdes.c#L701356idp.L6913" class="line" namop.L7513" c>135/a>  static inva href="+code=atmel_tdes_dmprobeclass="sref">atmel_tdes_dmprobea>  (ruct va href="+code=atplatform_deviceclass="sref">atplatform_devicea>   * href="+code=ddpdevclass="sref">atpdeva>  )a href="drivers/crypto/atmel-tdes.c#L691357idp.L6913" class="line" namop.L7513" c>1357a>  135/a>          ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddes_dmddclass="sref">ates_dmdda> *;a href="drivers/crypto/atmel-tdes.c#L7013"9idp.L6913" class="line" namop.L7513" c>135/a>          ruct va href="+code=atapto_abplatform_dataclass="sref">atapto_abplatform_dataa>       * href="+code=ddpdataclass="sref">atpdataa> *;a href="drivers/crypto/atmel-tdes.c#L70136 idp.L6913" class="line" namop.L7613" c>136 a>          ruct va href="+code=atdeviceclass="sref">atdevicea>   * href="+code=dddevclass="sref">atdeva>   =smp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ;a href="drivers/crypto/atmel-tdes.c#L701361idp.L6913" class="line" namop.L7613" c>136/a>          ruct va href="+code=atresourceclass="sref">atresourcea>   * href="+code=ddes_dmresclass="sref">ates_dmresa>  ;a href="drivers/crypto/atmel-tdes.c#L701362idp.L6913" class="line" namop.L7613" c>13"2a>          inva href="+code=ater class="sref">crer a> *;a href="drivers/crypto/atmel-tdes.c#L7013"3idp.L6913" class="line" namop.L7613" c>136/a>  a href="drivers/crypto/atmel-tdes.c#L7013"4idp.L6913" class="line" namop.L7613" c>136/a>        va href="+code=ddes_dmddclass="sref">ates_dmdda> * =s href="+code=atdevm_kmallocclass="sref">atdevm_kmalloca>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,ssiz.oft* href="+code=ddes_dmddclass="sref">ates_dmdda> *),a href="+code=atGFP_KERNELclass="sref">atGFP_KERNELa> *);a href="drivers/crypto/atmel-tdes.c#L701365idp.L6913" class="line" namop.L7613" c>1365a>        vaif ( href="+code=ates_dmddclass="sref">ates_dmdda> * ==s href="+code=atNULLclass="sref">atNULLa> *)a136/a>                re href="+code=atdev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"nounable to alloc data ruct v.\nuot;););a href="drivers/crypto/atmel-tdes.c#L7013"7idp.L6913" class="line" namop.L7613" c>136/a>                }1 href="+code=ater class="sref">crer a> * =s- href="+code=atENOMEMclass="sref">TDENOMEMa> *;a href="drivers/crypto/atmel-tdes.c#L7013"8idp.L6913" class="line" namop.L7613" c>136/a>                vagoto  href="+code=ates_dmdd_er class="sref">cres_dmdd_er a> *;a href="drivers/crypto/atmel-tdes.c#L7013"9idp.L6913" class="line" namop.L7613" c>136/a>          ea href="drivers/crypto/atmel-tdes.c#L69137 idp.L6913" class="line" namop.L7713" c>137 a>  a href="drivers/crypto/atmel-tdes.c#L691371idp.L6913" class="line" namop.L7713" c>137/a>        }1 href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crdevclass="sref">atdeva>   =s href="+code=atdevclass="sref">atdeva>  ;a href="drivers/crypto/atmel-tdes.c#L701372idp.L6913" class="line" namop.L7713" c>1372a>  a href="drivers/crypto/atmel-tdes.c#L701373idp.L6913" class="line" namop.L7713" c>137/a>        va href="+code=atplatform_set_drvdataclass="sref">atplatform_set_drvdataa>  ( href="+code=crpdevclass="sref">atpdeva>  ,a href="+code=ates_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701374idp.L6913" class="line" namop.L7713" c>137/a>  a href="drivers/crypto/atmel-tdes.c#L701375idp.L6913" class="line" namop.L7713" c>1375a>        va href="+code=atINIT_LIST_HEADclass="sref">atINIT_LIST_HEADa>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crlis/class="sref">atlis/a> *);a href="drivers/crypto/atmel-tdes.c#L701376idp.L6913" class="line" namop.L7713" c>137/a>           href="+code=atspin_lockmv/i/class="sref">atspin_lockmv/i/a>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L701377idp.L6913" class="line" namop.L7713" c>1377a>  a href="drivers/crypto/atmel-tdes.c#L701378idp.L6913" class="line" namop.L7713" c>1378a>        va href="+code=attaskle/_v/i/class="sref">attaskle/_v/i/a>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crdone_taskclass="sref">atdone_taska>  ,a href="+code=atmel_tdes_dedone_taskclass="sref">atmel_tdes_dmdone_taska>  137/a>                va      }11111111111111111(unsigned long) href="+code=ates_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L70138 idp.L6913dp.L679" class="line" na13dp.>138 a>        va href="+code=attaskle/_v/i/class="sref">attaskle/_v/i/a>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crqueue_taskclass="sref">atqueue_taska>  ,a href="+code=atmel_tdes_dequeue_taskclass="sref">atmel_tdes_dmqueue_taska>  138/a>                        }11111111111111111(unsigned long) href="+code=ates_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701382idp.L6913" class="line" namop.L6813" c>1382a>  a href="drivers/crypto/atmel-tdes.c#L7013d3idp.L6913" class="line" namop.L6813" c>138/a>        va href="+code=atapto_abv/i/mqueueclass="sref">atapto_abv/i/mqueuea>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crqueueclass="sref">atqueuea>  ,a href="+code=atATMEL_TS_BLQUEUE_LENGTHclass="sref">atATMEL_TS_BLQUEUE_LENGTHa> *);a href="drivers/crypto/atmel-tdes.c#L701384idp.L6913" class="line" namop.L6813" c>138/a>  a href="drivers/crypto/atmel-tdes.c#L701385idp.L6913" class="line" namop.L6813" c>1385a>        va href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crirqclass="sref">atirqa>   =s-1va href="drivers/crypto/atmel-tdes.c#L701386idp.L6913" class="line" namop.L6813" c>138/a>  a href="drivers/crypto/atmel-tdes.c#L7013d7idp.L6913" class="line" namop.L6813" c>1387a>        va an class="stcomment">/* Get the baseaaddress */span>);a href="drivers/crypto/atmel-tdes.c#L691388idp.L6913" class="line" namop.L6813" c>1388a>        va href="+code=atts_dmresclass="sref">ates_dmresa>   =s href="+code=atplatform_get_resourceclass="sref">atplatform_get_resourcea>  ( href="+code=crpdevclass="sref">atpdeva>  ,a href="+code=atIORESOURCE_MEMclass="sref">TDIORESOURCE_MEMa>  ,a0);a href="drivers/crypto/atmel-tdes.c#L701389idp.L6913" class="line" namop.L6813" c>13d9a>        vaif (! href="+code=atts_dmresclass="sref">ates_dmresa>  )a139 a>                va href="+code=dddev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"nono MEM resource info\nuot;););a href="drivers/crypto/atmel-tdes.c#L701391idp.L6913" class="line" namop.L6913" c>139/a>                   href="+code=ater class="sref">crer a> * =s- href="+code=atENODEVclass="sref">TDENODEVa>  ;a href="drivers/crypto/atmel-tdes.c#L701392idp.L6913" class="line" namop.L6913" c>1392a>                  goto  href="+code=atres_er class="sref">crres_er a>  ;a href="drivers/crypto/atmel-tdes.c#L701393idp.L6913" class="line" namop.L6913" c>139/a>          }a href="drivers/crypto/atmel-tdes.c#L701394idp.L6913" class="line" namop.L6913" c>139/a>        va href="+code=ddes_dmddclass="sref">ates_dmdda> *->v href="+code=crphys_baseclass="sref">atphys_basea>   =s href="+code=atts_dmresclass="sref">ates_dmresa>  ->v href="+code=crstar/class="sref">atstar/a>  ;a href="drivers/crypto/atmel-tdes.c#L701395idp.L6913" class="line" namop.L6913" c>1395a>  a href="drivers/crypto/atmel-tdes.c#L701396idp.L6913" class="line" namop.L6913" c>1396a>        va an class="stcomment">/* Get the IRQ */span>);a href="drivers/crypto/atmel-tdes.c#L691397idp.L6913" class="line" namop.L6913" c>1397a>        va href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crirqclass="sref">atirqa>   =s href="+code=atplatform_get_irqclass="sref">atplatform_get_irqa>  ( href="+code=crpdevclass="sref">atpdeva>  ,aa0);a href="drivers/crypto/atmel-tdes.c#L701398idp.L6913" class="line" namop.L6913" c>1398a>        vaif ( href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crirqclass="sref">atirqa>   <va0)a139/a>                va href="+code=atdev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"nono IRQ resource info\nuot;););a href="drivers/crypto/atmel-tdes.c#L70140 idp.L69140 idass="line" namop.L69140 i>140 a>                va href="+code=dder class="sref">crer a> * =s href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crirqclass="sref">atirqa>  ;a href="drivers/crypto/atmel-tdes.c#L701401idp.L69140 class="line" namop.L69140 c>140/a>                  goto  href="+code=atres_er class="sref">crres_er a>  ;a href="drivers/crypto/atmel-tdes.c#L701402idp.L69140 class="line" namop.L69140 c>1402a>        }1}a href="drivers/crypto/atmel-tdes.c#L701403idp.L69140 class="line" namop.L69140 c>140/a>  a href="drivers/crypto/atmel-tdes.c#L701404idp.L69140 class="line" namop.L69140 c>140/a>        va href="+code=dder class="sref">crer a> * =s href="+code=atdevm_request_irqclass="sref">atdevm_request_irqa>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,s href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crirqclass="sref">atirqa>  ,a href="+code=atmel_tdes_deirqclass="sref">atmel_tdes_dmirqa>  1405a>        va      }1             va href="+code=ddIRQF_SHAREDclass="sref">atIRQF_SHAREDa>  ,span class="string">"nomel-tdes.cuot;);,a href="+code=ates_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701406idp.L69140 class="line" namop.L69140 c>140/a>          if ( href="+code=ater class="sref">crer a> *)a140/a>                }1 href="+code=atdev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"nounable to request es.c irq.\nuot;););a href="drivers/crypto/atmel-tdes.c#L701408idp.L69140 class="line" namop.L69140 c>140/a>                vagoto  href="+code=atres_er class="sref">crres_er a>  ;a href="drivers/crypto/atmel-tdes.c#L701409idp.L69140 class="line" namop.L69140 c>140/a>          ea href="drivers/crypto/atmel-tdes.c#L69141 idp.L6914" class="line" namop.L7114" c>141 a>  a href="drivers/crypto/atmel-tdes.c#L691411idp.L6914" class="line" namop.L7114" c>141/a>           an class="stcomment">/* Initializg"> the clock */span>);a href="drivers/crypto/atmel-tdes.c#L6914"2idp.L6914" class="line" namop.L7114" c>1412a>           href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=criclkclass="sref">aticlka> * =s href="+code=atdevm_clk_getclass="sref">atdevm_clk_geta>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,s an class="string">"noes_dmclkuot;););a href="drivers/crypto/atmel-tdes.c#L7014"3idp.L6914" class="line" namop.L7114" c>141/a>          if ( href="+code=atIS_ER class="sref">TDIS_ER a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=criclkclass="sref">aticlka> *))a141/a>        va      }1 href="+code=atdev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"noclock initialization failed.\nuot;););a href="drivers/crypto/atmel-tdes.c#L7014"5idp.L6914" class="line" namop.L7114" c>1415a>        va      }1 href="+code=ater class="sref">crer a> * =s href="+code=atPTR_ER class="sref">TDPTR_ER a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=criclkclass="sref">aticlka> *);a href="drivers/crypto/atmel-tdes.c#L7014"6idp.L6914" class="line" namop.L7114" c>141/a>                regoto  href="+code=atres_er class="sref">crres_er a>  ;a href="drivers/crypto/atmel-tdes.c#L7014"7idp.L6914" class="line" namop.L7114" c>141/a>          }a href="drivers/crypto/atmel-tdes.c#L7014"8idp.L6914" class="line" namop.L7114" c>141/a>  a href="drivers/crypto/atmel-tdes.c#L7014"9idp.L6914" class="line" namop.L7114" c>1419a>        va href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crio_baseclass="sref">atio_basea> * =s href="+code=atdevm_ioremap_resourceclass="sref">atdevm_ioremap_resourcea>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,s href="+code=ates_dmresclass="sref">ates_dmresa>  );a href="drivers/crypto/atmel-tdes.c#L70142 idp.L6914" class="line" namop.L7214" c>1420a>          if ( href="+code=atIS_ER class="sref">TDIS_ER a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crio_baseclass="sref">atio_basea> *))a142/a>                   href="+code=atdev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"nocan't ioremap\nuot;););a href="drivers/crypto/atmel-tdes.c#L701422idp.L6914" class="line" namop.L7214" c>1422a>                   href="+code=ater class="sref">crer a> * =s href="+code=atPTR_ER class="sref">TDPTR_ER a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crio_baseclass="sref">atio_basea> *);a href="drivers/crypto/atmel-tdes.c#L701423idp.L6914" class="line" namop.L7214" c>142/a>                }1goto  href="+code=atres_er class="sref">crres_er a>  ;a href="drivers/crypto/atmel-tdes.c#L701424idp.L6914" class="line" namop.L7214" c>142/a>        vaea href="drivers/crypto/atmel-tdes.c#L691425idp.L6914" class="line" namop.L7214" c>1425a>  a href="drivers/crypto/atmel-tdes.c#L701426idp.L6914" class="line" namop.L7214" c>142/a>           href="+code=atmel_tdes_dmhw_rs/cionmv/i/class="sref">atmel_tdes_cthw_rs/cionmv/i/a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701427idp.L6914" class="line" namop.L7214" c>1427a>  a href="drivers/crypto/atmel-tdes.c#L701428idp.L6914" class="line" namop.L7214" c>1428a>        va href="+code=atmel_tdes_ctget_capclass="sref">atmel_tdes_ctget_capa>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701429idp.L6914" class="line" namop.L7214" c>1429a>  a href="drivers/crypto/atmel-tdes.c#L70143 idp.L6914" class="line" namop.L7314" c>143 a>        va href="+code=ater class="sref">crer a> * =s href="+code=atmel_tdes_ctbuffmv/i/class="sref">atmel_tdes_ctbuffmv/i/a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701431idp.L6914" class="line" namop.L7314" c>14"/a>        }1if ( href="+code=ater class="sref">crer a> *)a href="drivers/crypto/atmel-tdes.c#L691432idp.L6914" class="line" namop.L7314" c>1432a>                  goto  href="+code=ater _es_dmbuffclass="sref">crer _es_dmbuffa>  ;a href="drivers/crypto/atmel-tdes.c#L701433idp.L6914" class="line" namop.L7314" c>143/a>  a href="drivers/crypto/atmel-tdes.c#L701434idp.L6914" class="line" namop.L7314" c>143/a>        vaif ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_dmaclass="sref">flhas_dmaa> *)a1435a>        va      }1 href="+code=atpdataclass="sref">atpdataa> * =s href="+code=atpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  a href="+code=chplatform_dataclass="sref">atplatform_dataa>  ;a href="drivers/crypto/atmel-tdes.c#L701436idp.L6914" class="line" namop.L7314" c>143/a>                reif (! href="+code=atpdataclass="sref">atpdataa> *)a143/a>                }1      }1 href="+code=atpdataclass="sref">atpdataa> * =s href="+code=atmel_tdes_dmofmv/i/class="sref">atmel_tdes_ctofmv/i/a>  ( href="+code=atpdevclass="sref">atpdeva>  );a href="drivers/crypto/atmel-tdes.c#L701438idp.L6914" class="line" namop.L7314" c>143/a>                va      vaif ( href="+code=crIS_ER class="sref">TDIS_ER a>  ( href="+code=crpdataclass="sref">atpdataa> *))a143/a>                va      }111111111 href="+code=atdev_er class="sref">crdev_er a>  (mp; v href="+code=crpdevclass="sref">atpdeva>  ->v href="+code=crdevclass="sref">atdeva>  ,s an class="string">"noplatform data net available\nuot;););a href="drivers/crypto/atmel-tdes.c#L70144 idp.L6914" class="line" namop.L7414" c>144 a>                vaaaaaaaaaaaaaaaaa href="+code=ater class="sref">crer a> * =s href="+code=atPTR_ER class="sref">TDPTR_ER a>  ( href="+code=crpdataclass="sref">atpdataa> *);a href="drivers/crypto/atmel-tdes.c#L701441idp.L6914" class="line" namop.L7414" c>14"/a>                        va      vagoto  href="+code=ater _pdataclass="sref">ater _pdataa>  ;a href="drivers/crypto/atmel-tdes.c#L701442idp.L6914" class="line" namop.L7414" c>1442a>                          ea href="drivers/crypto/atmel-tdes.c#L691443idp.L6914" class="line" namop.L7414" c>144/a>                }1ea href="drivers/crypto/atmel-tdes.c#L691444idp.L6914" class="line" namop.L7414" c>144/a>        va      }1if (! href="+code=atpdataclass="sref">atpdataa> *->v href="+code=crdma_slavaclass="sref">atdma_slavaa> *)a1445a>        va      }1         href="+code=ater class="sref">crer a> * =s- href="+code=atENXIOclass="sref">crENXIOa>  ;a href="drivers/crypto/atmel-tdes.c#L701446idp.L6914" class="line" namop.L7414" c>144/a>                re      vagoto  href="+code=ater _pdataclass="sref">ater _pdataa>  ;a href="drivers/crypto/atmel-tdes.c#L701447idp.L6914" class="line" namop.L7414" c>144/a>                }1ea href="drivers/crypto/atmel-tdes.c#L691448idp.L6914" class="line" namop.L7414" c>144/a>                va href="+code=ater class="sref">crer a> * =s href="+code=atmel_tdes_ctdma_v/i/class="sref">atmel_tdes_ctdma_v/i/a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *,s href="+code=atpdataclass="sref">atpdataa> *);a href="drivers/crypto/atmel-tdes.c#L701449idp.L6914" class="line" namop.L7414" c>144/a>                vaif ( href="+code=ater class="sref">crer a> *)a href="drivers/crypto/atmel-tdes.c#L69145 idp.L6914" class="line" namop.L7514" c>145 a>                vaaaaaaaaagoto  href="+code=ater _es_dmdmaclass="sref">fler _es_dmdmaa>  ;a href="drivers/crypto/atmel-tdes.c#L701451idp.L6914" class="line" namop.L7514" c>145/a>  a href="drivers/crypto/atmel-tdes.c#L701452idp.L6914" class="line" namop.L7514" c>1452a>                   href="+code=atdev_infoclass="sref">crdev_infoa>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"nousg"> %s, %safor DMA transfs/c\nuot;);145/a>                }111111111         href="+code=atdma_chan_mop.class="sref">atdma_chan_mop.a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crdma_lch_inclass="sref">atdma_lch_ina>  a href="+code=chchanclass="sref">flyhana> *)145/a>        va      }111111111         href="+code=atdma_chan_mop.class="sref">atdma_chan_mop.a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crdma_lch_outclass="sref">atdma_lch_outa>  a href="+code=chchanclass="sref">flyhana> *));a href="drivers/crypto/atmel-tdes.c#L7014"5idp.L6914" class="line" namop.L7514" c>1455a>          }a href="drivers/crypto/atmel-tdes.c#L701456idp.L6914" class="line" namop.L7514" c>145/a>  a href="drivers/crypto/atmel-tdes.c#L701457idp.L6914" class="line" namop.L7514" c>1457a>        va href="+code=atspin_lockclass="sref">flspin_locka>  (mp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L701458idp.L6914" class="line" namop.L7514" c>1458a>        va href="+code=atlis/_add_tailclass="sref">atlis/_add_taila>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crlis/class="sref">atlis/a> *,smp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chdev_lis/class="sref">atdev_lis/a> *);a href="drivers/crypto/atmel-tdes.c#L701459idp.L6914" class="line" namop.L7514" c>1459a>        va href="+code=atspin_unlockclass="sref">flspin_unlocka>  (mp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L70146 idp.L6914" class="line" namop.L7614" c>146 a>  a href="drivers/crypto/atmel-tdes.c#L691461idp.L6914" class="line" namop.L7614" c>146/a>        }1 href="+code=ater class="sref">crer a> * =s href="+code=atmel_tdes_ctregis/er_alg class="sref">flmel_tdes_dmregis/er_alg a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701462idp.L6914" class="line" namop.L7614" c>14"2a>          if ( href="+code=ater class="sref">crer a> *)a href="drivers/crypto/atmel-tdes.c#L6914"3idp.L6914" class="line" namop.L7614" c>146/a>                }1goto  href="+code=ater _alg class="sref">fler _alg a>  ;a href="drivers/crypto/atmel-tdes.c#L7014"4idp.L6914" class="line" namop.L7614" c>146/a>  a href="drivers/crypto/atmel-tdes.c#L701465idp.L6914" class="line" namop.L7614" c>1465a>        va href="+code=atdev_infoclass="sref">crdev_infoa>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"noAel-t DES/TS_B\nuot;););a href="drivers/crypto/atmel-tdes.c#L7014"6idp.L6914" class="line" namop.L7614" c>146/a>  a href="drivers/crypto/atmel-tdes.c#L7014"7idp.L6914" class="line" namop.L7614" c>1467a>        vareturna0va href="drivers/crypto/atmel-tdes.c#L7014"8idp.L6914" class="line" namop.L7614" c>146/a>  a href="drivers/crypto/atmel-tdes.c#L7014"9idp.L6914" class="line" namop.L7614" c>146/a>   href="+code=ater _alg class="sref">fler _alg a>  :a href="drivers/crypto/atmel-tdes.c#L70147 idp.L6914" class="line" namop.L7714" c>147 a>        va href="+code=atspin_lockclass="sref">flspin_locka>  (mp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L701471idp.L6914" class="line" namop.L7714" c>147/a>        }1 href="+code=atlis/_delclass="sref">atlis/_dela>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crlis/class="sref">atlis/a> *);a href="drivers/crypto/atmel-tdes.c#L701472idp.L6914" class="line" namop.L7714" c>1472a>           href="+code=atspin_unlockclass="sref">flspin_unlocka>  (mp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L701473idp.L6914" class="line" namop.L7714" c>147/a>          if ( href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_dmaclass="sref">flhas_dmaa> *)a href="drivers/crypto/atmel-tdes.c#L701474idp.L6914" class="line" namop.L7714" c>147/a>        va      }1 href="+code=atmel_tdes_ctdma_cleanupclass="sref">atmel_tdes_ctdma_cleanupa>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701475idp.L6914" class="line" namop.L7714" c>1475a>   href="+code=ater _es_dmdmaclass="sref">fler _es_dmdmaa>  :a href="drivers/crypto/atmel-tdes.c#L701476idp.L6914" class="line" namop.L7714" c>147/a>   href="+code=ater _pdataclass="sref">ater _pdataa>  :a href="drivers/crypto/atmel-tdes.c#L701477idp.L6914" class="line" namop.L7714" c>1477a>        va href="+code=atmel_tdes_ctbuffmcleanupclass="sref">atmel_tdes_ctbuffmcleanupa>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701478idp.L6914" class="line" namop.L7714" c>1478a>   href="+code=ater _es_dmbuffclass="sref">crer _es_dmbuffa>  :a href="drivers/crypto/atmel-tdes.c#L701479idp.L6914" class="line" namop.L7714" c>147/a>   href="+code=atres_er class="sref">crres_er a>  :a href="drivers/crypto/atmel-tdes.c#L70148 idp.L6914dp.L679" class="line" na14dp.>148 a>        va href="+code=attaskle/_killclass="sref">attaskle/_killa>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crdone_taskclass="sref">atdone_taska>  );a href="drivers/crypto/atmel-tdes.c#L701481idp.L6914" class="line" namop.L6814" c>148/a>        }1 href="+code=attaskle/_killclass="sref">attaskle/_killa>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crqueue_taskclass="sref">atqueue_taska>  );a href="drivers/crypto/atmel-tdes.c#L701482idp.L6914" class="line" namop.L6814" c>1482a>   href="+code=cres_dmdd_er class="sref">cres_dmdd_er a> *:a href="drivers/crypto/atmel-tdes.c#L701483idp.L6914" class="line" namop.L6814" c>148/a>        va href="+code=atdev_er class="sref">crdev_er a>  ( href="+code=crdevclass="sref">atdeva>  ,span class="string">"noinitialization failed.\nuot;););a href="drivers/crypto/atmel-tdes.c#L701484idp.L6914" class="line" namop.L6814" c>148/a>  a href="drivers/crypto/atmel-tdes.c#L701485idp.L6914" class="line" namop.L6814" c>1485a>        vareturna href="+code=ater class="sref">crer a> *;a href="drivers/crypto/atmel-tdes.c#L701486idp.L6914" class="line" namop.L6814" c>148/a>  }a href="drivers/crypto/atmel-tdes.c#L7014d7idp.L6914" class="line" namop.L6814" c>1487a>  a href="drivers/crypto/atmel-tdes.c#L701488idp.L6914" class="line" namop.L6814" c>1488a>  static inva href="+code=atmel_tdes_dmremovaclass="sref">atmel_tdes_dmremovaa>  (ruct va href="+code=atplatform_deviceclass="sref">atplatform_devicea>   * href="+code=ddpdevclass="sref">atpdeva>  )a href="drivers/crypto/atmel-tdes.c#L691489idp.L6914" class="line" namop.L6814" c>14d9a>  149 a>          ruatic ruct va href="+code=atmel_tdes_dedevclass="sref">atmel_tdes_dmdeva>   * href="+code=ddes_dmddclass="sref">ates_dmdda> *;a href="drivers/crypto/atmel-tdes.c#L701491idp.L6914" class="line" namop.L6914" c>149/a>  a href="drivers/crypto/atmel-tdes.c#L701492idp.L6914" class="line" namop.L6914" c>1492a>           href="+code=ates_dmddclass="sref">ates_dmdda> * =s href="+code=atplatform_get_drvdataclass="sref">atplatform_get_drvdataa>  ( href="+code=crpdevclass="sref">atpdeva>  );a href="drivers/crypto/atmel-tdes.c#L701493idp.L6914" class="line" namop.L6914" c>149/a>          if (! href="+code=atts_dmddclass="sref">ates_dmdda> *)a href="drivers/crypto/atmel-tdes.c#L701494idp.L6914" class="line" namop.L6914" c>149/a>        va      }1returna- href="+code=atENODEVclass="sref">TDENODEVa>  ;a href="drivers/crypto/atmel-tdes.c#L701495idp.L6914" class="line" namop.L6914" c>1495a>        va href="+code=atspin_lockclass="sref">flspin_locka>  (mp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L701496idp.L6914" class="line" namop.L6914" c>149/a>           href="+code=atlis/_delclass="sref">atlis/_dela>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crlis/class="sref">atlis/a> *);a href="drivers/crypto/atmel-tdes.c#L701497idp.L6914" class="line" namop.L6914" c>1497a>        va href="+code=atspin_unlockclass="sref">flspin_unlocka>  (mp; v href="+code=crmel_tdes_cclass="sref">atmel_tdes_ca>  a href="+code=chlockclass="sref">atlocka> *);a href="drivers/crypto/atmel-tdes.c#L701498idp.L6914" class="line" namop.L6914" c>149/a>  a href="drivers/crypto/atmel-tdes.c#L701499idp.L6914" class="line" namop.L6914" c>1499a>        va href="+code=atmel_tdes_dmunregis/er_alg class="sref">flmel_tdes_dmunregis/er_alg a>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L70150 idp.L69150 idass="line" namop.L69150 i>150 a>  a href="drivers/crypto/atmel-tdes.c#L691501idp.L69150 class="line" namop.L69150 c>150/a>        }1 href="+code=attaskle/_killclass="sref">attaskle/_killa>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crdone_taskclass="sref">atdone_taska>  );a href="drivers/crypto/atmel-tdes.c#L701502idp.L69150 class="line" namop.L69150 c>1502a>           href="+code=ateaskle/_killclass="sref">attaskle/_killa>  (mp; v href="+code=cres_dmddclass="sref">ates_dmdda> *->v href="+code=crqueue_taskclass="sref">atqueue_taska>  );a href="drivers/crypto/atmel-tdes.c#L701503idp.L69150 class="line" namop.L69150 c>150/a>  a href="drivers/crypto/atmel-tdes.c#L701504idp.L69150 class="line" namop.L69150 c>150/a>        vaif ( href="+code=ates_dmddclass="sref">ates_dmdda> *->v href="+code=crcap class="sref">flyap a> *a href="+code=dehas_dmaclass="sref">flhas_dmaa> *)a href="drivers/crypto/atmel-tdes.c#L701505idp.L69150 class="line" namop.L69150 c>1505a>        va      }1 href="+code=atmel_tdes_ctdma_cleanupclass="sref">atmel_tdes_ctdma_cleanupa>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701506idp.L69150 class="line" namop.L69150 c>150/a>  a href="drivers/crypto/atmel-tdes.c#L701507idp.L69150 class="line" namop.L69150 c>1507a>        va href="+code=atmel_tdes_ctbuffmcleanupclass="sref">atmel_tdes_ctbuffmcleanupa>  ( href="+code=cres_dmddclass="sref">ates_dmdda> *);a href="drivers/crypto/atmel-tdes.c#L701508idp.L69150 class="line" namop.L69150 c>150/a>  a href="drivers/crypto/atmel-tdes.c#L701509idp.L69150 class="line" namop.L69150 c>150/a>          returna0va href="drivers/crypto/atmel-tdes.c#L70151 idp.L6915" class="line" namop.L7115" c>151 a>  }a href="drivers/crypto/atmel-tdes.c#L701511idp.L6915" class="line" namop.L7115" c>151/a>  a href="drivers/crypto/atmel-tdes.c#L7015"2idp.L6915" class="line" namop.L7115" c>1512a>  ruatic ruct va href="+code=atplatform_dvers/class="sref">atplatform_dvers/a>    href="+code=atmel_tdes_ctdvers/class="sref">atmel_tdes_ctdvers/a> * =s151/a>          a href="+code=chprobeclass="sref">atprobea>  va      }1=s href="+code=atmel_tdes_ctprobeclass="sref">atmel_tdes_dmprobea>  151/a>        vaa href="+code=chremovaclass="sref">atremovaa>  a      }1=s href="+code=atmel_tdes_ctremovaclass="sref">atmel_tdes_dmremovaa>  1515a>        vaa href="+code=chdvers/class="sref">atdvers/a> *       }1=s151/a>                rea href="+code=chmop.class="sref">atmop.a>   }1=s an class="string">"nomel-tdes_duot;);151/a>                }1a href="+code=chof_match_tabl.class="sref">atof_match_tabl.a> * =s href="+code=atof_match_pt/class="sref">atof_match_pt/a>  ( href="+code=crmel_tdes_ctdt_id class="sref">flmel_tdes_dmdt_id a> *)1518a>        va}1519a>  }va href="drivers/crypto/atmel-tdes.c#L70152 idp.L6915" class="line" namop.L7215" c>152 a>  a href="drivers/crypto/atmel-tdes.c#L691521idp.L6915" class="line" namop.L7215" c>152/a>   href="+code=crmodule_platform_dvers/class="sref">atmodule_platform_dvers/a>  ( href="+code=crmel_tdes_ctdvers/class="sref">atmel_tdes_ctdvers/a> *);a href="drivers/crypto/atmel-tdes.c#L701522idp.L6915" class="line" namop.L7215" c>1522a>  a href="drivers/crypto/atmel-tdes.c#L701523idp.L6915" class="line" namop.L7215" c>152/a>   href="+code=crMODULE_DESCRIPTIONclass="sref">atMODULE_DESCRIPTIONa>  ( an class="string">"noAel-t DES/TS_B hw acceleration support.uot;););a href="drivers/crypto/atmel-tdes.c#L701524idp.L6915" class="line" namop.L7215" c>152/a>   href="+code=crMODULE_LICENSEclass="sref">atMODULE_LICENSEa>  ( an class="string">"noGPL v2uot;););a href="drivers/crypto/atmel-tdes.c#L701525idp.L6915" class="line" namop.L7215" c>1525a>   href="+code=atMODULE_AUTHO class="sref">TDMODULE_AUTHO a>  ( an class="string">"noNicoss= Royer - Eukr\xC3\xA9a Electromatiqueuot;););a href="drivers/crypto/atmel-tdes.c#L701526idp.L6915" class="line" namop.L7215" c>152/a>  
The original LXR software by the href="drhttp://sourceforge.net/projects/lx/c>LXR communitya> ,sthis experimental rs/cion by href="drmailto:lx/@ne"ux.no">lx/@ne"ux.noa> *a
lx/.ne"ux.no kindly hosted by href="drhttp://www.redpill-ne"pro.no">Redpill Le"pro ASa> ,sprovider of Le"ux consultg"> and operations services since 1995.