aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gvt/hypercall.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2022-04-11 16:13:41 +0200
committerZhi Wang <zhi.a.wang@intel.com>2022-04-21 07:36:56 -0400
commit3c340d05868d98bfded92c405363fd63bff3ca62 (patch)
tree750bd5bda0a5b0619aa07f1fc3636262f370181f /drivers/gpu/drm/i915/gvt/hypercall.h
parentdrm/i915/gvt: merge struct kvmgt_guest_info into strut intel_vgpu (diff)
downloadlinux-dev-3c340d05868d98bfded92c405363fd63bff3ca62.tar.xz
linux-dev-3c340d05868d98bfded92c405363fd63bff3ca62.zip
drm/i915/gvt: remove vgpu->handle
Always pass the actual vgpu structure instead of encoding it as a "handle" and add a bool flag to denote if a VGPU is attached. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Zhi Wang <zhi.a.wang@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20220411141403.86980-13-hch@lst.de Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/hypercall.h')
-rw-r--r--drivers/gpu/drm/i915/gvt/hypercall.h32
1 files changed, 17 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/gvt/hypercall.h b/drivers/gpu/drm/i915/gvt/hypercall.h
index eacee6f41f9c..9f0475759825 100644
--- a/drivers/gpu/drm/i915/gvt/hypercall.h
+++ b/drivers/gpu/drm/i915/gvt/hypercall.h
@@ -36,6 +36,7 @@
#include <linux/types.h>
struct device;
+struct intel_vgpu;
/*
* Specific GVT-g MPT modules function collections. Currently GVT-g supports
@@ -44,27 +45,28 @@ struct device;
struct intel_gvt_mpt {
int (*host_init)(struct device *dev, void *gvt);
void (*host_exit)(struct device *dev, void *gvt);
- void (*detach_vgpu)(void *vgpu);
- int (*inject_msi)(unsigned long handle, u32 addr, u16 data);
- int (*enable_page_track)(unsigned long handle, u64 gfn);
- int (*disable_page_track)(unsigned long handle, u64 gfn);
- int (*read_gpa)(unsigned long handle, unsigned long gpa, void *buf,
+ void (*detach_vgpu)(struct intel_vgpu *vgpu);
+ int (*inject_msi)(struct intel_vgpu *vgpu, u32 addr, u16 data);
+ int (*enable_page_track)(struct intel_vgpu *vgpu, u64 gfn);
+ int (*disable_page_track)(struct intel_vgpu *vgpu, u64 gfn);
+ int (*read_gpa)(struct intel_vgpu *vgpu, unsigned long gpa, void *buf,
unsigned long len);
- int (*write_gpa)(unsigned long handle, unsigned long gpa, void *buf,
+ int (*write_gpa)(struct intel_vgpu *vgpu, unsigned long gpa, void *buf,
unsigned long len);
- unsigned long (*gfn_to_mfn)(unsigned long handle, unsigned long gfn);
+ unsigned long (*gfn_to_mfn)(struct intel_vgpu *vgpu, unsigned long gfn);
- int (*dma_map_guest_page)(unsigned long handle, unsigned long gfn,
+ int (*dma_map_guest_page)(struct intel_vgpu *vgpu, unsigned long gfn,
unsigned long size, dma_addr_t *dma_addr);
- void (*dma_unmap_guest_page)(unsigned long handle, dma_addr_t dma_addr);
+ void (*dma_unmap_guest_page)(struct intel_vgpu *vgpu,
+ dma_addr_t dma_addr);
- int (*dma_pin_guest_page)(unsigned long handle, dma_addr_t dma_addr);
+ int (*dma_pin_guest_page)(struct intel_vgpu *vgpu, dma_addr_t dma_addr);
- int (*set_opregion)(void *vgpu);
- int (*set_edid)(void *vgpu, int port_num);
- int (*get_vfio_device)(void *vgpu);
- void (*put_vfio_device)(void *vgpu);
- bool (*is_valid_gfn)(unsigned long handle, unsigned long gfn);
+ int (*set_opregion)(struct intel_vgpu *vgpu);
+ int (*set_edid)(struct intel_vgpu *vgpu, int port_num);
+ int (*get_vfio_device)(struct intel_vgpu *vgpu);
+ void (*put_vfio_device)(struct intel_vgpu *vgpu);
+ bool (*is_valid_gfn)(struct intel_vgpu *vgpu, unsigned long gfn);
};
#endif /* _GVT_HYPERCALL_H_ */