Merge tag 'dmaengine-5.7-rc1' of git://git.infradead.org/users/vkoul/slave-dma
[linux-2.6-microblaze.git] / drivers / dma / idxd / sysfs.c
index 6ca6e52..3999827 100644 (file)
@@ -419,7 +419,7 @@ static ssize_t engine_group_id_store(struct device *dev,
        struct idxd_device *idxd = engine->idxd;
        long id;
        int rc;
-       struct idxd_group *prevg, *group;
+       struct idxd_group *prevg;
 
        rc = kstrtol(buf, 10, &id);
        if (rc < 0)
@@ -439,7 +439,6 @@ static ssize_t engine_group_id_store(struct device *dev,
                return count;
        }
 
-       group = &idxd->groups[id];
        prevg = engine->group;
 
        if (prevg)
@@ -513,9 +512,6 @@ static ssize_t group_tokens_reserved_store(struct device *dev,
        if (idxd->state == IDXD_DEV_ENABLED)
                return -EPERM;
 
-       if (idxd->token_limit == 0)
-               return -EPERM;
-
        if (val > idxd->max_tokens)
                return -EINVAL;
 
@@ -561,8 +557,6 @@ static ssize_t group_tokens_allowed_store(struct device *dev,
        if (idxd->state == IDXD_DEV_ENABLED)
                return -EPERM;
 
-       if (idxd->token_limit == 0)
-               return -EPERM;
        if (val < 4 * group->num_engines ||
            val > group->tokens_reserved + idxd->nr_tokens)
                return -EINVAL;
@@ -1180,6 +1174,16 @@ static ssize_t op_cap_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(op_cap);
 
+static ssize_t gen_cap_show(struct device *dev,
+                           struct device_attribute *attr, char *buf)
+{
+       struct idxd_device *idxd =
+               container_of(dev, struct idxd_device, conf_dev);
+
+       return sprintf(buf, "%#llx\n", idxd->hw.gen_cap.bits);
+}
+static DEVICE_ATTR_RO(gen_cap);
+
 static ssize_t configurable_show(struct device *dev,
                                 struct device_attribute *attr, char *buf)
 {
@@ -1317,6 +1321,7 @@ static struct attribute *idxd_device_attributes[] = {
        &dev_attr_max_batch_size.attr,
        &dev_attr_max_transfer_size.attr,
        &dev_attr_op_cap.attr,
+       &dev_attr_gen_cap.attr,
        &dev_attr_configurable.attr,
        &dev_attr_clients.attr,
        &dev_attr_state.attr,