crypto: nx - replace NX842_MEM_COMPRESS with function
Replace the NX842_MEM_COMPRESS define with a function that returns the
specific platform driver's required working memory size.
The common nx-842.c driver refuses to load if there is no platform
driver present, so instead of defining an approximate working memory
size that's the maximum approximate size of both platform driver's
size requirements, the platform driver can directly provide its
specific, i.e. sizeof(struct nx842_workmem), size requirements which
the 842-nx crypto compression driver will use.
This saves memory by both reducing the required size of each driver
to the specific sizeof() amount, as well as using the specific loaded
platform driver's required amount, instead of the maximum of both.
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
diff --git a/drivers/crypto/nx/nx-842.h b/drivers/crypto/nx/nx-842.h
index 4dbac11..f6821b6 100644
--- a/drivers/crypto/nx/nx-842.h
+++ b/drivers/crypto/nx/nx-842.h
@@ -11,12 +11,6 @@
#include <linux/mm.h>
#include <linux/ratelimit.h>
-#define __NX842_PSERIES_MEM_COMPRESS (10240)
-#define __NX842_POWERNV_MEM_COMPRESS (1024)
-
-#define NX842_MEM_COMPRESS (max_t(unsigned int, \
- __NX842_PSERIES_MEM_COMPRESS, __NX842_POWERNV_MEM_COMPRESS))
-
/* Restrictions on Data Descriptor List (DDL) and Entry (DDE) buffers
*
* From NX P8 workbook, sec 4.9.1 "842 details"
@@ -119,6 +113,7 @@
struct nx842_driver {
char *name;
struct module *owner;
+ size_t workmem_size;
struct nx842_constraints *constraints;
@@ -136,6 +131,8 @@
bool nx842_platform_driver_get(void);
void nx842_platform_driver_put(void);
+size_t nx842_workmem_size(void);
+
int nx842_constraints(struct nx842_constraints *constraints);
int nx842_compress(const unsigned char *in, unsigned int in_len,