1. 26 1月, 2008 1 次提交
  2. 11 1月, 2008 8 次提交
    • A
      b966b546
    • P
    • P
      [HIFN]: Improve PLL initialization · 37a8023c
      Patrick McHardy 提交于
      The current PLL initalization has a number of deficiencies:
      
      - uses fixed multiplier of 8, which overclocks the chip when using a
        reference clock that operates at frequencies above 33MHz. According
        to a comment in the BSD source, this is true for the external clock
        on almost all every board.
      
      - writes to a reserved bit
      
      - doesn't follow the initialization procedure specified in chapter
        6.11.1 of the HIFN hardware users guide
      
      - doesn't allow to use the PCI clock
      
      This patch adds a module parameter to specify the reference clock
      (pci or external) and its frequency and uses that to calculate the
      optimum multiplier to reach the maximal speed. By default it uses
      the external clock and assumes a speed of 66MHz, which effectively
      halfs the frequency currently used.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Acked-by: NEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      37a8023c
    • H
      [CRYPTO] ablkcipher: Add distinct ABLKCIPHER type · 332f8840
      Herbert Xu 提交于
      Up until now we have ablkcipher algorithms have been identified as
      type BLKCIPHER with the ASYNC bit set.  This is suboptimal because
      ablkcipher refers to two things.  On the one hand it refers to the
      top-level ablkcipher interface with requests.  On the other hand it
      refers to and algorithm type underneath.
      
      As it is you cannot request a synchronous block cipher algorithm
      with the ablkcipher interface on top.  This is a problem because
      we want to be able to eventually phase out the blkcipher top-level
      interface.
      
      This patch fixes this by making ABLKCIPHER its own type, just as
      we have distinct types for HASH and DIGEST.  The type it associated
      with the algorithm implementation only.
      
      Which top-level interface is used for synchronous block ciphers is
      then determined by the mask that's used.  If it's a specific mask
      then the old blkcipher interface is given, otherwise we go with the
      new ablkcipher interface.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      332f8840
    • A
      [CRYPTO] hifn: Add missing includes · 102d49d3
      Andrew Morton 提交于
      alpha:
      
      drivers/crypto/hifn_795x.c: In function 'ablkcipher_walk_init':
      drivers/crypto/hifn_795x.c:1231: error: implicit declaration of function 'sg_init_table'
      drivers/crypto/hifn_795x.c:1243: error: implicit declaration of function 'sg_set_page'
      drivers/crypto/hifn_795x.c: In function 'ablkcipher_walk_exit':
      drivers/crypto/hifn_795x.c:1257: error: implicit declaration of function 'sg_page'
      drivers/crypto/hifn_795x.c:1257: warning: passing argument 1 of '__free_pages' makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c: In function 'ablkcipher_add':
      drivers/crypto/hifn_795x.c:1278: warning: passing argument 1 of 'kmap_atomic' makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c: In function 'ablkcipher_walk':
      drivers/crypto/hifn_795x.c:1336: warning: passing argument 1 of 'kmap_atomic' makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c: In function 'hifn_setup_session':
      drivers/crypto/hifn_795x.c:1465: warning: assignment makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c:1469: warning: assignment makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c:1472: warning: assignment makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c: In function 'ablkcipher_get':
      drivers/crypto/hifn_795x.c:1593: warning: passing argument 1 of 'kmap_atomic' makes pointer from integer without a cast
      {standard input}: Assembler messages:
      {standard input}:7: Warning: setting incorrect section attributes for .got
      drivers/crypto/hifn_795x.c: In function 'hifn_process_ready':
      drivers/crypto/hifn_795x.c:1653: warning: passing argument 1 of 'kmap_atomic' makes pointer from integer without a cast
      drivers/crypto/hifn_795x.c: In function 'hifn_probe':
      drivers/crypto/hifn_795x.c:2438: error: 'DMA_32BIT_MASK' undeclared (first use in this function)
      drivers/crypto/hifn_795x.c:2438: error: (Each undeclared identifier is reported only once
      drivers/crypto/hifn_795x.c:2438: error: for each function it appears in.)
      drivers/crypto/hifn_795x.c:2443: warning: format '%d' expects type 'int', but argument 4 has type 'long int'
      drivers/crypto/hifn_795x.c:2443: warning: format '%d' expects type 'int', but argument 4 has type 'long int'
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      102d49d3
    • E
      [CRYPTO] hifn: Schedule callback invocation to tasklet. · a1e6ef2f
      Evgeniy Polyakov 提交于
      This patch forces HIFN driver to invoke crypto request callbacks from
      tasklet (softirq context) instead of hardirq context, since network
      stack expects it to be called from bottom halves.
      
      It is done by simply scheduling callback invocation via dedicated
      tasklet. Workqueue solution was dropped because of tooo slow
      rescheduling performance (7 times slower than tasklet, for mode details
      one can check this link:
      http://tservice.net.ru/~s0mbre/blog/devel/other/2007_11_09.html).
      
      Driver passed all AES and DES tests in tcryt.c module.
      Signed-off-by: NEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      a1e6ef2f
    • E
      [CRYPTO] hifn_795x: Detect weak keys · c3041f9c
      Evgeniy Polyakov 提交于
      HIFN driver update to use DES weak key checks (exported in this patch).
      Signed-off-by: NEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      c3041f9c
    • E
      [CRYPTO] hifn_795x: HIFN 795x driver · f7d0561e
      Evgeniy Polyakov 提交于
      This is a driver for HIFN 795x crypto accelerator chips.
      
      It passed all tests for AES, DES and DES3_EDE except weak test for DES,
      since hardware can not determine weak keys.
      Signed-off-by: NEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      f7d0561e