25 Dec, 2008

8 commits


10 Jul, 2008

13 commits


31 Mar, 2008

1 commit


15 Feb, 2008

1 commit


26 Jan, 2008

1 commit


11 Jan, 2008

8 commits

  • Signed-off-by: Alexey Dobriyan
    Signed-off-by: Herbert Xu

    Alexey Dobriyan
     
  • Signed-off-by: Patrick McHardy
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Herbert Xu

    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: Patrick McHardy
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Herbert Xu

    Patrick McHardy
     
  • 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: Herbert Xu

    Herbert Xu
     
  • 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: Andrew Morton
    Signed-off-by: Herbert Xu

    Andrew Morton
     
  • 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: Evgeniy Polyakov
    Signed-off-by: Herbert Xu

    Evgeniy Polyakov
     
  • HIFN driver update to use DES weak key checks (exported in this patch).

    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: Herbert Xu

    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: Evgeniy Polyakov
    Signed-off-by: Herbert Xu

    Evgeniy Polyakov