summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2015-07-06 16:31:26 +0800
committerSimon Glass <sjg@chromium.org>2015-07-14 18:03:18 -0600
commitb018a8c71602d53d5d5ebac859f33327b97e9cec (patch)
tree85a666b538c472635118743b2e8b4492af2175d3 /drivers
parent5afeb4bb456de129a88f38fae1573564cd53fc41 (diff)
video: vesa_fb: Look up VGA device by class instead of id
Per PCI spec, VGA device reports its class as standard 030000h in its configuration space, so we can use it to determine if we need run option rom instead of testing the supported vendor/device ids. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/vesa_fb.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/drivers/video/vesa_fb.c b/drivers/video/vesa_fb.c
index 47f824a726..909f8e8091 100644
--- a/drivers/video/vesa_fb.c
+++ b/drivers/video/vesa_fb.c
@@ -1,6 +1,5 @@
/*
- *
- * Vesa frame buffer driver for x86
+ * VESA frame buffer driver
*
* Copyright (C) 2014 Google, Inc
*
@@ -17,16 +16,6 @@
*/
GraphicDevice ctfb;
-/* Devices to allow - only the last one works fully */
-struct pci_device_id vesa_video_ids[] = {
- { .vendor = 0x102b, .device = 0x0525 },
- { .vendor = 0x1002, .device = 0x5159 },
- { .vendor = 0x1002, .device = 0x4752 },
- { .vendor = 0x1002, .device = 0x5452 },
- { .vendor = 0x8086, .device = 0x0f31 },
- {},
-};
-
void *video_hw_init(void)
{
GraphicDevice *gdev = &ctfb;
@@ -36,8 +25,7 @@ void *video_hw_init(void)
printf("Video: ");
if (vbe_get_video_info(gdev)) {
- /* TODO: Should we look these up by class? */
- dev = pci_find_devices(vesa_video_ids, 0);
+ dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, 0);
if (dev == -1) {
printf("no card detected\n");
return NULL;