\r
QEMU_VIDEO_CARD gQemuVideoCardList[] = {\r
{\r
+ PCI_CLASS_DISPLAY_VGA,\r
CIRRUS_LOGIC_VENDOR_ID,\r
CIRRUS_LOGIC_5430_DEVICE_ID,\r
QEMU_VIDEO_CIRRUS_5430,\r
L"Cirrus 5430"\r
},{\r
+ PCI_CLASS_DISPLAY_VGA,\r
CIRRUS_LOGIC_VENDOR_ID,\r
CIRRUS_LOGIC_5430_ALTERNATE_DEVICE_ID,\r
QEMU_VIDEO_CIRRUS_5430,\r
L"Cirrus 5430"\r
},{\r
+ PCI_CLASS_DISPLAY_VGA,\r
CIRRUS_LOGIC_VENDOR_ID,\r
CIRRUS_LOGIC_5446_DEVICE_ID,\r
QEMU_VIDEO_CIRRUS_5446,\r
L"Cirrus 5446"\r
},{\r
+ PCI_CLASS_DISPLAY_VGA,\r
0x1234,\r
0x1111,\r
QEMU_VIDEO_BOCHS_MMIO,\r
L"QEMU Standard VGA"\r
},{\r
+ PCI_CLASS_DISPLAY_VGA,\r
0x1b36,\r
0x0100,\r
QEMU_VIDEO_BOCHS,\r
L"QEMU QXL VGA"\r
},{\r
+ PCI_CLASS_DISPLAY_VGA,\r
0x1af4,\r
0x1050,\r
QEMU_VIDEO_BOCHS_MMIO,\r
L"QEMU VirtIO VGA"\r
},{\r
+ PCI_CLASS_DISPLAY_VGA,\r
VMWARE_PCI_VENDOR_ID_VMWARE,\r
VMWARE_PCI_DEVICE_ID_VMWARE_SVGA2,\r
QEMU_VIDEO_VMWARE_SVGA,\r
\r
static QEMU_VIDEO_CARD*\r
QemuVideoDetect(\r
+ IN UINT8 SubClass,\r
IN UINT16 VendorId,\r
IN UINT16 DeviceId\r
)\r
UINTN Index = 0;\r
\r
while (gQemuVideoCardList[Index].VendorId != 0) {\r
- if (gQemuVideoCardList[Index].VendorId == VendorId &&\r
+ if (gQemuVideoCardList[Index].SubClass == SubClass &&\r
+ gQemuVideoCardList[Index].VendorId == VendorId &&\r
gQemuVideoCardList[Index].DeviceId == DeviceId) {\r
return gQemuVideoCardList + Index;\r
}\r
}\r
\r
Status = EFI_UNSUPPORTED;\r
- if (!IS_PCI_VGA (&Pci)) {\r
+ if (!IS_PCI_DISPLAY (&Pci)) {\r
goto Done;\r
}\r
- Card = QemuVideoDetect(Pci.Hdr.VendorId, Pci.Hdr.DeviceId);\r
+ Card = QemuVideoDetect(Pci.Hdr.ClassCode[1], Pci.Hdr.VendorId, Pci.Hdr.DeviceId);\r
if (Card != NULL) {\r
DEBUG ((EFI_D_INFO, "QemuVideo: %s detected\n", Card->Name));\r
Status = EFI_SUCCESS;\r
//\r
// Determine card variant.\r
//\r
- Card = QemuVideoDetect(Pci.Hdr.VendorId, Pci.Hdr.DeviceId);\r
+ Card = QemuVideoDetect(Pci.Hdr.ClassCode[1], Pci.Hdr.VendorId, Pci.Hdr.DeviceId);\r
if (Card == NULL) {\r
Status = EFI_DEVICE_ERROR;\r
goto ClosePciIo;\r