ACRN:DM:VDisplay: vdpy_init connection returns the supported number of vScreen

Vdisplay module will create the gui_window (vScreen) based on the virtio-gpu
parameter. When virtio-gpu device tries to establish the connection with
vdisplay module, it will return the supported number of vScreen.
Then the virtio-gpu device can initialize the correct info for the guest_vm.

BTW: The number is fixed to 1.

Tracked-On: #7988
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Reviewed-by: Peng Sun <peng.p.sun@linux.intel.com>
This commit is contained in:
Zhao Yakui 2022-08-15 10:42:42 +08:00 committed by acrnsi-robot
parent ad67215d4b
commit 6407de302c
3 changed files with 5 additions and 3 deletions

View File

@ -1485,7 +1485,7 @@ virtio_gpu_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
gpu->vq, gpu->vq,
BACKEND_VBSU); BACKEND_VBSU);
gpu->vdpy_handle = vdpy_init(); gpu->vdpy_handle = vdpy_init(NULL);
gpu->base.mtx = &gpu->mtx; gpu->base.mtx = &gpu->mtx;
gpu->base.device_caps = VIRTIO_GPU_S_HOSTCAPS; gpu->base.device_caps = VIRTIO_GPU_S_HOSTCAPS;

View File

@ -1069,7 +1069,7 @@ bool vdpy_submit_bh(int handle, struct vdpy_display_bh *bh_task)
} }
int int
vdpy_init() vdpy_init(int *num_vscreens)
{ {
int err, count; int err, count;
@ -1100,6 +1100,8 @@ vdpy_init()
} }
vdpy.s.n_connect++; vdpy.s.n_connect++;
if (num_vscreens)
*num_vscreens = 1;
return vdpy.s.n_connect; return vdpy.s.n_connect;
} }

View File

@ -85,7 +85,7 @@ struct cursor {
int vdpy_parse_cmd_option(const char *opts); int vdpy_parse_cmd_option(const char *opts);
int gfx_ui_init(); int gfx_ui_init();
int vdpy_init(); int vdpy_init(int *num_vscreens);
void vdpy_get_display_info(int handle, int scanout_id, struct display_info *info); void vdpy_get_display_info(int handle, int scanout_id, struct display_info *info);
void vdpy_surface_set(int handle, int scanout_id, struct surface *surf); void vdpy_surface_set(int handle, int scanout_id, struct surface *surf);
void vdpy_surface_update(int handle, int scanout_id, struct surface *surf); void vdpy_surface_update(int handle, int scanout_id, struct surface *surf);