Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e16aafb authored by Seth Jennings's avatar Seth Jennings Committed by Herbert Xu
Browse files

powerpc/crypto: add 842 hardware compression driver



This patch adds the driver for interacting with the 842
compression accelerator on IBM Power7+ systems.

The device is a child of the Platform Facilities Option (PFO)
and shows up as a child of the IBM VIO bus.

The compression/decompression API takes the same arguments
as existing compression methods like lzo and deflate.  The 842
hardware operates on 4K hardware pages and the driver breaks up
input on 4K boundaries to submit it to the hardware accelerator.

Signed-off-by: default avatarRobert Jennings <rcj@linux.vnet.ibm.com>
Signed-off-by: default avatarSeth Jennings <sjenning@linux.vnet.ibm.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent da29aa8f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3415,6 +3415,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
S:	Maintained
F:	arch/ia64/

IBM Power 842 compression accelerator
M:	Robert Jennings <rcj@linux.vnet.ibm.com>
S:	Supported
F:	drivers/crypto/nx/nx-842.c
F:	include/linux/nx842.h

IBM Power Linux RAID adapter
M:	Brian King <brking@us.ibm.com>
S:	Supported
+9 −0
Original line number Diff line number Diff line
@@ -15,3 +15,12 @@ config CRYPTO_DEV_NX_ENCRYPT
	  Support for Power7+ in-Nest encryption acceleration. This
	  module supports acceleration for AES and SHA2 algorithms. If you
	  choose 'M' here, this module will be called nx_crypto.

config CRYPTO_DEV_NX_COMPRESS
	tristate "Compression acceleration support"
	depends on PPC64 && IBMVIO
	default y
	help
	  Support for Power7+ in-Nest compression acceleration. This
	  module supports acceleration for AES and SHA2 algorithms. If you
	  choose 'M' here, this module will be called nx_compress.
+3 −0
Original line number Diff line number Diff line
@@ -9,3 +9,6 @@ nx-crypto-objs := nx.o \
		  nx-aes-xcbc.o \
		  nx-sha256.o \
		  nx-sha512.o

obj-$(CONFIG_CRYPTO_DEV_NX_COMPRESS) += nx-compress.o
nx-compress-objs := nx-842.o
+1615 −0

File added.

Preview size limit exceeded, changes collapsed.

include/linux/nx842.h

0 → 100644
+11 −0
Original line number Diff line number Diff line
#ifndef __NX842_H__
#define __NX842_H__

int nx842_get_workmem_size(void);
int nx842_get_workmem_size_aligned(void);
int nx842_compress(const unsigned char *in, unsigned int in_len,
		unsigned char *out, unsigned int *out_len, void *wrkmem);
int nx842_decompress(const unsigned char *in, unsigned int in_len,
		unsigned char *out, unsigned int *out_len, void *wrkmem);

#endif