提交 624f9054 编写于 作者: R Rafael Fonseca 提交者: Michal Privoznik

libxl: move video default logic to driver

The logic setting a device default should be in the post parse function
of individual driver code.
Signed-off-by: NRafael Fonseca <r4f4rfs@gmail.com>
Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
上级 a11a0e6e
...@@ -15716,7 +15716,6 @@ virDomainVideoDefaultType(const virDomainDef *def) ...@@ -15716,7 +15716,6 @@ virDomainVideoDefaultType(const virDomainDef *def)
{ {
switch ((virDomainVirtType)def->virtType) { switch ((virDomainVirtType)def->virtType) {
case VIR_DOMAIN_VIRT_TEST: case VIR_DOMAIN_VIRT_TEST:
case VIR_DOMAIN_VIRT_XEN:
if (def->os.type == VIR_DOMAIN_OSTYPE_XEN || if (def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
def->os.type == VIR_DOMAIN_OSTYPE_LINUX) def->os.type == VIR_DOMAIN_OSTYPE_LINUX)
return VIR_DOMAIN_VIDEO_TYPE_XEN; return VIR_DOMAIN_VIDEO_TYPE_XEN;
...@@ -15737,6 +15736,7 @@ virDomainVideoDefaultType(const virDomainDef *def) ...@@ -15737,6 +15736,7 @@ virDomainVideoDefaultType(const virDomainDef *def)
return VIR_DOMAIN_VIDEO_TYPE_VGA; return VIR_DOMAIN_VIDEO_TYPE_VGA;
else else
return VIR_DOMAIN_VIDEO_TYPE_PARALLELS; return VIR_DOMAIN_VIDEO_TYPE_PARALLELS;
case VIR_DOMAIN_VIRT_XEN:
case VIR_DOMAIN_VIRT_BHYVE: case VIR_DOMAIN_VIRT_BHYVE:
case VIR_DOMAIN_VIRT_QEMU: case VIR_DOMAIN_VIRT_QEMU:
case VIR_DOMAIN_VIRT_KQEMU: case VIR_DOMAIN_VIRT_KQEMU:
......
...@@ -315,31 +315,43 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, ...@@ -315,31 +315,43 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN; pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN;
} }
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO && def->os.type == VIR_DOMAIN_OSTYPE_HVM) { if (dev->type == VIR_DOMAIN_DEVICE_VIDEO) {
int dm_type = libxlDomainGetEmulatorType(def); if (dev->data.video->type == VIR_DOMAIN_VIDEO_TYPE_DEFAULT) {
if (def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
switch (dev->data.video->type) { def->os.type == VIR_DOMAIN_OSTYPE_LINUX)
case VIR_DOMAIN_VIDEO_TYPE_VGA: dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_XEN;
case VIR_DOMAIN_VIDEO_TYPE_XEN: else if (ARCH_IS_PPC64(def->os.arch))
if (dev->data.video->vram == 0) { dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_VGA;
if (dm_type == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) else
dev->data.video->vram = 16 * 1024; dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_CIRRUS;
else }
dev->data.video->vram = 8 * 1024;
} if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
break; int dm_type = libxlDomainGetEmulatorType(def);
case VIR_DOMAIN_VIDEO_TYPE_CIRRUS:
if (dev->data.video->vram == 0) { switch (dev->data.video->type) {
if (dm_type == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) case VIR_DOMAIN_VIDEO_TYPE_VGA:
dev->data.video->vram = 8 * 1024; case VIR_DOMAIN_VIDEO_TYPE_XEN:
else if (dev->data.video->vram == 0) {
dev->data.video->vram = 4 * 1024; if (dm_type == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN)
dev->data.video->vram = 16 * 1024;
else
dev->data.video->vram = 8 * 1024;
}
break;
case VIR_DOMAIN_VIDEO_TYPE_CIRRUS:
if (dev->data.video->vram == 0) {
if (dm_type == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN)
dev->data.video->vram = 8 * 1024;
else
dev->data.video->vram = 4 * 1024;
}
break;
case VIR_DOMAIN_VIDEO_TYPE_QXL:
if (dev->data.video->vram == 0)
dev->data.video->vram = 128 * 1024;
break;
} }
break;
case VIR_DOMAIN_VIDEO_TYPE_QXL:
if (dev->data.video->vram == 0)
dev->data.video->vram = 128 * 1024;
break;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册