drm/i915/gvt: Add mdev device attribute group
authorZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 16 Mar 2017 10:06:39 +0000 (18:06 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Wed, 29 Mar 2017 07:28:51 +0000 (15:28 +0800)
This adds initial attribute group for mdev to hold vGPU related
for each mdev device, currently just vGPU id is shown.

v2: rename group name as "intel_vgpu"

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
drivers/gpu/drm/i915/gvt/kvmgt.c

index 1ea3eb270de8f38d32b4c44ffa3e5cc420a2f8b8..c7e7c9377cefeddba3b5d9f959131bc581dda059 100644 (file)
@@ -1146,8 +1146,40 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
        return 0;
 }
 
+static ssize_t
+vgpu_id_show(struct device *dev, struct device_attribute *attr,
+            char *buf)
+{
+       struct mdev_device *mdev = mdev_from_dev(dev);
+
+       if (mdev) {
+               struct intel_vgpu *vgpu = (struct intel_vgpu *)
+                       mdev_get_drvdata(mdev);
+               return sprintf(buf, "%d\n", vgpu->id);
+       }
+       return sprintf(buf, "\n");
+}
+
+static DEVICE_ATTR_RO(vgpu_id);
+
+static struct attribute *intel_vgpu_attrs[] = {
+       &dev_attr_vgpu_id.attr,
+       NULL
+};
+
+static const struct attribute_group intel_vgpu_group = {
+       .name = "intel_vgpu",
+       .attrs = intel_vgpu_attrs,
+};
+
+static const struct attribute_group *intel_vgpu_groups[] = {
+       &intel_vgpu_group,
+       NULL,
+};
+
 static const struct mdev_parent_ops intel_vgpu_ops = {
        .supported_type_groups  = intel_vgpu_type_groups,
+       .mdev_attr_groups       = intel_vgpu_groups,
        .create                 = intel_vgpu_create,
        .remove                 = intel_vgpu_remove,