Excerpts from Haren Myneni's message of May 21, 2021 7:42 pm: > > Changes to export the following NXGZIP capabilities through sysfs: > > /sys/devices/vio/ibm,compression-v1/NxGzCaps: Where's the horrible camel case name coming from? PowerVM? Thanks, Nick > min_compress_len /*Recommended minimum compress length in bytes*/ > min_decompress_len /*Recommended minimum decompress length in bytes*/ > req_max_processed_len /* Maximum number of bytes processed in one > request */ > > NX will return RMA_Reject if the request buffer size is greater > than req_max_processed_len. > > Signed-off-by: Haren Myneni <haren@xxxxxxxxxxxxx> > Acked-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > --- > drivers/crypto/nx/nx-common-pseries.c | 43 +++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/drivers/crypto/nx/nx-common-pseries.c b/drivers/crypto/nx/nx-common-pseries.c > index 4a7278464156..121718a337fd 100644 > --- a/drivers/crypto/nx/nx-common-pseries.c > +++ b/drivers/crypto/nx/nx-common-pseries.c > @@ -968,6 +968,36 @@ static struct attribute_group nx842_attribute_group = { > .attrs = nx842_sysfs_entries, > }; > > +#define nxct_caps_read(_name) \ > +static ssize_t nxct_##_name##_show(struct device *dev, \ > + struct device_attribute *attr, char *buf) \ > +{ \ > + return sprintf(buf, "%lld\n", nx_ct_caps._name); \ > +} > + > +#define NXCT_ATTR_RO(_name) \ > + nxct_caps_read(_name); \ > + static struct device_attribute dev_attr_##_name = __ATTR(_name, \ > + 0444, \ > + nxct_##_name##_show, \ > + NULL); > + > +NXCT_ATTR_RO(req_max_processed_len); > +NXCT_ATTR_RO(min_compress_len); > +NXCT_ATTR_RO(min_decompress_len); > + > +static struct attribute *nxct_caps_sysfs_entries[] = { > + &dev_attr_req_max_processed_len.attr, > + &dev_attr_min_compress_len.attr, > + &dev_attr_min_decompress_len.attr, > + NULL, > +}; > + > +static struct attribute_group nxct_caps_attr_group = { > + .name = nx_ct_caps.name, > + .attrs = nxct_caps_sysfs_entries, > +}; > + > static struct nx842_driver nx842_pseries_driver = { > .name = KBUILD_MODNAME, > .owner = THIS_MODULE, > @@ -1057,6 +1087,16 @@ static int nx842_probe(struct vio_dev *viodev, > goto error; > } > > + if (caps_feat) { > + if (sysfs_create_group(&viodev->dev.kobj, > + &nxct_caps_attr_group)) { > + dev_err(&viodev->dev, > + "Could not create sysfs NX capability entries\n"); > + ret = -1; > + goto error; > + } > + } > + > return 0; > > error_unlock: > @@ -1076,6 +1116,9 @@ static void nx842_remove(struct vio_dev *viodev) > pr_info("Removing IBM Power 842 compression device\n"); > sysfs_remove_group(&viodev->dev.kobj, &nx842_attribute_group); > > + if (caps_feat) > + sysfs_remove_group(&viodev->dev.kobj, &nxct_caps_attr_group); > + > crypto_unregister_alg(&nx842_pseries_alg); > > spin_lock_irqsave(&devdata_mutex, flags); > -- > 2.18.2 > > >