Brian Maly
e14a685dfa
efifb: dmi set video type
...
The current logic for dmi matching in efifb does not allow efifb to load
on all hardware that we can dmi match for.
For a real world example, boot with elilo (3.7 or 3.8 vanilla) and on a
Apple (MacBook) and EFI framebuffer driver will not load (you will have no
video). This specific hardware is efi v1.10, so we have UGA and not GOP.
Without special bootloader magic (i.e. extra elilo patches for UGA
graphics detection) no screen info will be passed to the kernel and as a
result efifb will not load.
This patch allows the dmi match to happen by moving it to earlier in
efifb_init, and sets the video type (in set_system) so that efifb can load
when we have a valid dmi match and already know the specifics of the
hardware.
Without this patch the efifb driver will fail to load in the event screen
info is not found and passed in by the bootloader, being that we will
never get to look for a dmi match. A primary reason for matching with dmi
is because not all bootloaders detect the video info properly. The
solution is that in the event of a dmi match, we should set
screen_info.orig_video_isVGA. Most bootloaders fail to set screen info on
Apple hardware, and this is a big problem for people who use Apple
hardware.
Tested on a MacBook SantaRosa with elilo-3.8 (vanilla) and resolves the
issue, the dmi match now works, EFI framebuffer now loads and video works.
Signed-off-by: Brian Maly <bmaly@redhat.com>
Acked-by: Huang Ying <ying.huang@intel.com>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Cc: Chandramouli Narayanan <mouli@linux.intel.com>
Acked-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-01 08:59:34 -07:00
..
aty
atyfb: speed up Mach64 cursor
2009-04-01 08:59:34 -07:00
backlight
fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency
2009-04-01 08:59:29 -07:00
console
fbmem: fix fb_info->lock and mm->mmap_sem circular locking dependency
2009-04-01 08:59:29 -07:00
display
device create: video: convert device_create_drvdata to device_create
2008-10-16 09:24:45 -07:00
geode
gx1fb: properly alloc cmap and plug cmap leak
2009-02-11 14:25:34 -08:00
i810
i810: fix kernel crash fix when struct fb_var_screeninfo is supplied
2009-03-10 15:55:12 -07:00
intelfb
i2c: Delete many unused adapter IDs
2009-01-26 21:19:52 +01:00
kyro
logo
linux.conf.au 2009: Tuz
2009-03-16 07:55:37 -07:00
matrox
matroxfb: support G200eV chip
2008-10-16 11:21:45 -07:00
mb862xx
drivers/video/mb862xx/mb862xxfb.c: fix printk
2008-12-10 08:01:54 -08:00
mbx
nvidia
nvidiafb: remove open_lock mutex
2009-04-01 08:59:34 -07:00
omap
omapfb: fix argument of blank operation
2009-04-01 08:59:33 -07:00
pnx4008
[ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach
2008-08-07 09:55:48 +01:00
riva
video: replace remaining __FUNCTION__ occurrences
2008-04-28 08:58:42 -07:00
savage
i2c: Delete many unused adapter IDs
2009-01-26 21:19:52 +01:00
sis
video/sis/: remove compat code
2008-07-24 10:47:37 -07:00
vermilion
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
via
viafb: returns 0 two too early
2009-04-01 08:59:32 -07:00
68328fb.c
68328fb: fix cmap memory leaks
2009-04-01 08:59:31 -07:00
acornfb.c
[ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h
2009-03-25 10:21:35 +00:00
acornfb.h
amba-clcd.c
amba-clcd: fix cmap memory leaks
2009-04-01 08:59:31 -07:00
amifb.c
amifb: check fb_alloc_cmap return value and handle failure properly
2009-04-01 08:59:31 -07:00
arcfb.c
arkfb.c
arkfb: fix misplaced parentheses
2009-04-01 08:59:32 -07:00
asiliantfb.c
asiliantfb: fix cmap memory leaks
2009-04-01 08:59:32 -07:00
atafb.c
m68k: atari - Rename "mfp" to "st_mfp"
2009-02-22 09:23:02 -08:00
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c
drivers/video: bad error test before a dereference
2008-11-19 18:49:57 -08:00
au1100fb.c
platform driver: fix incorrect use of 'platform_bus_type' with 'struct device_driver'
2009-03-24 16:38:25 -07:00
au1100fb.h
au1200fb.c
platform driver: fix incorrect use of 'platform_bus_type' with 'struct device_driver'
2009-03-24 16:38:25 -07:00
au1200fb.h
bf54x-lq043fb.c
video/framebuffer: fix bug: jpegview cannot work on framebuffer device other than 16BPP
2009-01-15 16:39:35 -08:00
bfin-t350mcqb-fb.c
video/framebuffer: move the probe func into .devinit.text in Blackfin LCD driver
2009-02-11 14:25:35 -08:00
broadsheetfb.c
[ARM] 5353/1: fbdev: add E-Ink Broadsheet controller support v3
2009-02-10 11:27:59 +00:00
bt431.h
bt455.h
bw2.c
sparc: Annotate of_device_id arrays with const or __initdata.
2008-08-31 01:23:17 -07:00
c2p.h
fbdev: c2p - Rename c2p to c2p_planar
2009-01-12 20:56:32 +01:00
c2p_core.h
fbdev: c2p/atafb - Add support for Atari interleaved bitplanes
2009-01-12 20:56:31 +01:00
c2p_iplan2.c
fbdev: c2p/atafb - Add support for Atari interleaved bitplanes
2009-01-12 20:56:31 +01:00
c2p_planar.c
fbdev: c2p - Rename c2p to c2p_planar
2009-01-12 20:56:32 +01:00
carminefb.c
fb: carminefb: trivial annotation packing color register
2009-01-06 15:59:26 -08:00
carminefb.h
fbdev: add the carmine FB driver
2008-07-24 10:47:34 -07:00
carminefb_regs.h
fbdev: add the carmine FB driver
2008-07-24 10:47:34 -07:00
cfbcopyarea.c
fb: add support for foreign endianness
2008-04-28 08:58:35 -07:00
cfbfillrect.c
fb: add support for foreign endianness
2008-04-28 08:58:35 -07:00
cfbimgblt.c
video: replace remaining __FUNCTION__ occurrences
2008-04-28 08:58:42 -07:00
cg3.c
sparc: Annotate of_device_id arrays with const or __initdata.
2008-08-31 01:23:17 -07:00
cg6.c
cg6: disable cursor when leaving graphics mode
2008-10-10 12:12:41 -07:00
cg14.c
sparc: Annotate of_device_id arrays with const or __initdata.
2008-08-31 01:23:17 -07:00
chipsfb.c
cirrusfb.c
cirrusfb: fix interlaced modes
2009-04-01 08:59:29 -07:00
clps711xfb.c
[ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach
2008-08-07 09:55:48 +01:00
cobalt_lcdfb.c
fbdev: add new Cobalt LCD framebuffer driver
2008-07-24 10:47:40 -07:00
controlfb.c
powerpc/mm: Rework usage of _PAGE_COHERENT/NO_CACHE/GUARDED
2008-12-21 14:21:16 +11:00
controlfb.h
cyber2000fb.c
[ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h
2009-03-25 10:21:35 +00:00
cyber2000fb.h
dnfb.c
m68k: dnfb doesnt check for Apollo
2008-05-18 13:28:49 -07:00
edid.h
efifb.c
efifb: dmi set video type
2009-04-01 08:59:34 -07:00
epson1355fb.c
[ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach
2008-08-07 09:55:48 +01:00
fb_ddc.c
i2c: Let framebuffer drivers set their I2C bus class to DDC
2008-07-14 22:38:28 +02:00
fb_defio.c
mm: page_mkwrite change prototype to match fault
2009-04-01 08:59:14 -07:00
fb_draw.h
fb: add support for foreign endianness
2008-04-28 08:58:35 -07:00
fb_notify.c
fb_sys_fops.c
fbcmap.c
fbmem: don't call copy_from/to_user() with mutex held
2009-02-05 12:56:46 -08:00
fbcvt.c
fbmem.c
fbdev: uninline lock_fb_info()
2009-04-01 08:59:29 -07:00
fbmon.c
fbmon: fix EDID parser to detect interlace modes
2008-10-16 11:21:44 -07:00
fbsysfs.c
ffb.c
sparc: Annotate of_device_id arrays with const or __initdata.
2008-08-31 01:23:17 -07:00
fm2fb.c
fsl-diu-fb.c
freescale DIU: bug fix: add sanity check for AOI position
2008-08-15 08:35:43 -07:00
fsl-diu-fb.h
fbdev: powerpc: driver for Freescale 8610 and 5121 DIU
2008-04-28 08:58:40 -07:00
g364fb.c
gbefb.c
gbefb: unsigned var->pixclock cannot be less than 0
2009-01-06 15:59:26 -08:00
gxt4500.c
pci: use pci_ioremap_bar() in drivers/video
2009-01-06 15:59:26 -08:00
hecubafb.c
fbdev: platforming hecubafb and n411
2008-04-28 08:58:41 -07:00
hgafb.c
hgafb: convert to new platform driver API
2008-07-24 10:47:39 -07:00
hitfb.c
video: Fix up hp6xx driver build regressions.
2008-07-30 02:16:12 +09:00
hpfb.c
m68k: Return -ENODEV if no device is found
2008-05-18 13:28:50 -07:00
igafb.c
imsttfb.c
video: replace remaining __FUNCTION__ occurrences
2008-04-28 08:58:42 -07:00
imxfb.c
imxfb: Fix TFT mode
2009-03-27 14:51:15 +01:00
Kconfig
tridentfb: delete acceleration Kconfig option
2009-04-01 08:59:34 -07:00
leo.c
leo: disable cursor when leaving graphics mode
2008-10-10 12:13:22 -07:00
macfb.c
macfb annotations and compiler warning fix
2008-12-28 20:00:05 +01:00
macmodes.c
macmodes.h
Makefile
fb: add s3c-fb driver for newer Samsung SoC framebuffer devices
2009-04-01 08:59:33 -07:00
maxinefb.c
metronomefb.c
metronomefb: Fix warning when building 64bit
2008-10-15 10:19:51 -07:00
modedb.c
fbdev: fix typo in drivers/video/modedb.c
2009-01-06 15:59:26 -08:00
mx3fb.c
Merge branch 'imx-fb-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx into devel
2009-03-16 22:28:04 +00:00
n411.c
fbdev: platforming hecubafb and n411
2008-04-28 08:58:41 -07:00
neofb.c
neofb: fix sparse warnings
2009-01-06 15:59:27 -08:00
offb.c
fbdev: Teaches offb about palette on radeon r5xx/r6xx
2008-07-22 10:39:36 +10:00
output.c
video: struct device - replace bus_id with dev_name(), dev_set_name()
2009-01-06 10:44:35 -08:00
p9100.c
sparc: Annotate of_device_id arrays with const or __initdata.
2008-08-31 01:23:17 -07:00
platinumfb.c
platinumfb: Use linux/of_{device,platform}.h instead of asm
2008-06-09 13:46:38 +10:00
platinumfb.h
pm2fb.c
pm2fb: free cmap memory on module remove
2008-08-20 15:40:31 -07:00
pm3fb.c
pm3fb: fix sparse warning
2009-01-06 15:59:27 -08:00
pmag-aa-fb.c
pmag-ba-fb.c
video: struct device - replace bus_id with dev_name(), dev_set_name()
2009-03-24 16:38:21 -07:00
pmagb-b-fb.c
video: struct device - replace bus_id with dev_name(), dev_set_name()
2009-03-24 16:38:21 -07:00
ps3fb.c
video: struct device - replace bus_id with dev_name(), dev_set_name()
2009-03-24 16:38:21 -07:00
pvr2fb.c
sh: dma: Make PVR2 DMA configurable.
2009-03-17 09:30:36 +09:00
pxafb.c
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel
2009-03-24 22:04:25 +00:00
pxafb.h
[ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices
2008-12-29 18:00:04 +08:00
q40fb.c
s1d13xxxfb.c
fbdev: update s1d13xxxfb to differ between revisions and production ids
2009-04-01 08:59:32 -07:00
s3c-fb.c
fb: add s3c-fb driver for newer Samsung SoC framebuffer devices
2009-04-01 08:59:33 -07:00
s3c2410fb.c
[ARM] 5377/1: S3C2410-Framebuffer: Fix resume path in S3C2410 framebuffer driver.
2009-02-19 11:30:20 +00:00
s3c2410fb.h
S3C2410: clean out changelog header and tidy
2008-05-24 09:56:13 -07:00
s3fb.c
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
sa1100fb.c
[ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h
2009-03-25 10:21:35 +00:00
sa1100fb.h
sa1100fb: convert ctrlr_sem in a mutex
2008-07-24 10:47:37 -07:00
sbuslib.c
sparc video: remove open boot prom code
2008-05-08 21:37:30 -07:00
sbuslib.h
sparc video: remove open boot prom code
2008-05-08 21:37:30 -07:00
sgivwfb.c
drivers/video/sgivwfb.c: fix memory leaks in removal path
2009-04-01 08:59:30 -07:00
sh7760fb.c
sh: sh7760fb: Fix color pallette setting
2008-12-22 18:42:54 +09:00
sh_mobile_lcdcfb.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
2009-03-26 11:17:04 -07:00
skeletonfb.c
skeletonfb: check fb_alloc_cmap return value and handle failure properly
2009-04-01 08:59:30 -07:00
sm501fb.c
sm501fb: check fb_alloc_cmap return value and handle failure properly
2009-04-01 08:59:30 -07:00
sstfb.c
sstfb: check fb_alloc_cmap return value and handle failure properly
2009-04-01 08:59:30 -07:00
sticore.h
video/console/stico{n,re}.c: make code static
2008-07-26 12:00:12 -07:00
stifb.c
stifb: check fb_alloc_cmap return value and handle failure properly
2009-04-01 08:59:31 -07:00
sunxvr500.c
sunxvr500: fix cmap memory leaks
2009-04-01 08:59:31 -07:00
sunxvr2500.c
sparc video: remove open boot prom code
2008-05-08 21:37:30 -07:00
svgalib.c
syscopyarea.c
fb: add support for foreign endianness
2008-04-28 08:58:35 -07:00
sysfillrect.c
fb: add support for foreign endianness
2008-04-28 08:58:35 -07:00
sysimgblt.c
video: replace remaining __FUNCTION__ occurrences
2008-04-28 08:58:42 -07:00
tcx.c
sparc: Annotate of_device_id arrays with const or __initdata.
2008-08-31 01:23:17 -07:00
tdfxfb.c
tdfxfb: fix memory leaks in removal path
2009-04-01 08:59:30 -07:00
tgafb.c
tgafb: fix cmap memory leak
2009-04-01 08:59:31 -07:00
tmiofb.c
video: struct device - replace bus_id with dev_name(), dev_set_name()
2009-03-24 16:38:21 -07:00
tridentfb.c
tridentfb: delete acceleration Kconfig option
2009-04-01 08:59:34 -07:00
uvesafb.c
uvesafb: fix selecting mode with the vbemode option
2009-04-01 08:59:33 -07:00
valkyriefb.c
valkyriefb: check fb_alloc_cmap return value and handle failure properly
2009-04-01 08:59:31 -07:00
valkyriefb.h
vesafb.c
vesafb: bitwise OR has higher precedence than ?:
2009-04-01 08:59:32 -07:00
vfb.c
vfb: fix memory leaks in removal path
2009-04-01 08:59:30 -07:00
vga16fb.c
vga16fb: remove open_lock mutex
2008-10-16 11:21:42 -07:00
vgastate.c
vt8623fb.c
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
w100fb.c
w100fb: add 80 MHz modeline
2008-07-04 10:40:08 -07:00
w100fb.h
xen-fbfront.c
get xenbus_driver ->probe() "recognized" by modpost
2008-11-30 10:03:38 -08:00
xilinxfb.c
powerpc/virtex: fix various format/casting printk mismatches
2008-11-14 09:59:48 -07:00