[RFC PATCH v2 2/3] drm/i915/gvt: Introduce enable_direct_flip attribute
Tina Zhang
tina.zhang at intel.com
Fri May 10 04:15:27 UTC 2019
This attribute is introduced to work as a switch of the gvt-g vGPU direct
flip function. Userspace can simply switch on/off the direct flip
function by echoing 1/0 to this attributte.
Signed-off-by: Tina Zhang <tina.zhang at intel.com>
---
drivers/gpu/drm/i915/gvt/kvmgt.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index a68addf..2911818 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -1581,12 +1581,50 @@ hw_id_show(struct device *dev, struct device_attribute *attr,
return sprintf(buf, "\n");
}
+static ssize_t
+enable_direct_flip_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, "%u\n",
+ vgpu->display.shadow_fbs.enable_direct_flip);
+ }
+ return sprintf(buf, "\n");
+}
+
+static ssize_t
+enable_direct_flip_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t n)
+{
+ struct mdev_device *mdev = mdev_from_dev(dev);
+ ssize_t ret;
+ u32 val;
+
+ ret = kstrtou32(buf, 0, &val);
+ if (ret)
+ return ret;
+
+ if (mdev) {
+ struct intel_vgpu *vgpu = (struct intel_vgpu *)
+ mdev_get_drvdata(mdev);
+ vgpu->display.shadow_fbs.enable_direct_flip = !!val;
+ }
+
+ return n;
+}
+
static DEVICE_ATTR_RO(vgpu_id);
static DEVICE_ATTR_RO(hw_id);
+static DEVICE_ATTR_RW(enable_direct_flip);
static struct attribute *intel_vgpu_attrs[] = {
&dev_attr_vgpu_id.attr,
&dev_attr_hw_id.attr,
+ &dev_attr_enable_direct_flip.attr,
NULL
};
--
2.7.4
More information about the intel-gvt-dev
mailing list