crypto: nx - add nx842 constraints
Add "constraints" for the NX-842 driver. The constraints are used to indicate what the current NX-842 platform driver is capable of. The constraints tell the NX-842 user what alignment, min and max length, and length multiple each provided buffers should conform to. These are required because the 842 hardware requires buffers to meet specific constraints that vary based on platform - for example, the pSeries max length is much lower than the PowerNV max length. Signed-off-by: Dan Streetman <ddstreet@ieee.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:

committed by
Herbert Xu

parent
7011a12238
commit
959e6659b6
@@ -40,6 +40,13 @@ MODULE_DESCRIPTION("842 H/W Compression driver for IBM Power processors");
|
||||
/* IO buffer must be 128 byte aligned */
|
||||
#define IO_BUFFER_ALIGN 128
|
||||
|
||||
static struct nx842_constraints nx842_pseries_constraints = {
|
||||
.alignment = IO_BUFFER_ALIGN,
|
||||
.multiple = DDE_BUFFER_LAST_MULT,
|
||||
.minimum = IO_BUFFER_ALIGN,
|
||||
.maximum = PAGE_SIZE, /* dynamic, max_sync_size */
|
||||
};
|
||||
|
||||
struct nx842_header {
|
||||
int blocks_nr; /* number of compressed blocks */
|
||||
int offset; /* offset of the first block (from beginning of header) */
|
||||
@@ -842,6 +849,8 @@ static int nx842_OF_upd_maxsyncop(struct nx842_devdata *devdata,
|
||||
goto out;
|
||||
}
|
||||
|
||||
nx842_pseries_constraints.maximum = devdata->max_sync_size;
|
||||
|
||||
devdata->max_sync_sg = (unsigned int)min(maxsynccop->comp_sg_limit,
|
||||
maxsynccop->decomp_sg_limit);
|
||||
if (devdata->max_sync_sg < 1) {
|
||||
@@ -1115,6 +1124,7 @@ static struct attribute_group nx842_attribute_group = {
|
||||
|
||||
static struct nx842_driver nx842_pseries_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.constraints = &nx842_pseries_constraints,
|
||||
.compress = nx842_pseries_compress,
|
||||
.decompress = nx842_pseries_decompress,
|
||||
};
|
||||
|
Reference in New Issue
Block a user