aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/fbmon.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/fbmon.c')
-rw-r--r--drivers/video/fbmon.c35
1 files changed, 34 insertions, 1 deletions
diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
index c2718bb94949..791bec3d672a 100644
--- a/drivers/video/fbmon.c
+++ b/drivers/video/fbmon.c
@@ -29,6 +29,7 @@
29#include <linux/tty.h> 29#include <linux/tty.h>
30#include <linux/fb.h> 30#include <linux/fb.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <video/edid.h>
32#ifdef CONFIG_PPC_OF 33#ifdef CONFIG_PPC_OF
33#include <linux/pci.h> 34#include <linux/pci.h>
34#include <asm/prom.h> 35#include <asm/prom.h>
@@ -1251,9 +1252,41 @@ int fb_validate_mode(const struct fb_var_screeninfo *var, struct fb_info *info)
1251 -EINVAL : 0; 1252 -EINVAL : 0;
1252} 1253}
1253 1254
1255#if defined(__i386__)
1256#include <linux/pci.h>
1257
1258/*
1259 * We need to ensure that the EDID block is only returned for
1260 * the primary graphics adapter.
1261 */
1262
1263const unsigned char *fb_firmware_edid(struct device *device)
1264{
1265 struct pci_dev *dev = NULL;
1266 struct resource *res = NULL;
1267 unsigned char *edid = NULL;
1268
1269 if (device)
1270 dev = to_pci_dev(device);
1271
1272 if (dev)
1273 res = &dev->resource[PCI_ROM_RESOURCE];
1274
1275 if (res && res->flags & IORESOURCE_ROM_SHADOW)
1276 edid = edid_info.dummy;
1277
1278 return edid;
1279}
1280#else
1281const unsigned char *fb_firmware_edid(struct device *device)
1282{
1283 return NULL;
1284}
1285#endif /* _i386_ */
1286
1254EXPORT_SYMBOL(fb_parse_edid); 1287EXPORT_SYMBOL(fb_parse_edid);
1255EXPORT_SYMBOL(fb_edid_to_monspecs); 1288EXPORT_SYMBOL(fb_edid_to_monspecs);
1256 1289EXPORT_SYMBOL(fb_firmware_edid);
1257EXPORT_SYMBOL(fb_get_mode); 1290EXPORT_SYMBOL(fb_get_mode);
1258EXPORT_SYMBOL(fb_validate_mode); 1291EXPORT_SYMBOL(fb_validate_mode);
1259EXPORT_SYMBOL(fb_destroy_modedb); 1292EXPORT_SYMBOL(fb_destroy_modedb);