linux/drivers/video
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
geode
i810
intelfb
kyro
logo
matrox
mb862xx
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
riva
savage
sis
vermilion
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
Kconfig tridentfb: delete acceleration Kconfig option 2009-04-01 08:59:34 -07:00
Makefile fb: add s3c-fb driver for newer Samsung SoC framebuffer devices 2009-04-01 08:59:33 -07:00
acornfb.c
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
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c
au1100fb.c
au1100fb.h
au1200fb.c
au1200fb.h
bf54x-lq043fb.c
bfin-t350mcqb-fb.c
broadsheetfb.c
bt431.h
bt455.h
bw2.c
c2p.h
c2p_core.h
c2p_iplan2.c
c2p_planar.c
carminefb.c
carminefb.h
carminefb_regs.h
cfbcopyarea.c
cfbfillrect.c
cfbimgblt.c
cg3.c
cg6.c
cg14.c
chipsfb.c
cirrusfb.c cirrusfb: fix interlaced modes 2009-04-01 08:59:29 -07:00
clps711xfb.c
cobalt_lcdfb.c
controlfb.c
controlfb.h
cyber2000fb.c
cyber2000fb.h
dnfb.c
edid.h
efifb.c efifb: dmi set video type 2009-04-01 08:59:34 -07:00
epson1355fb.c
fb_ddc.c
fb_defio.c mm: page_mkwrite change prototype to match fault 2009-04-01 08:59:14 -07:00
fb_draw.h
fb_notify.c
fb_sys_fops.c
fbcmap.c
fbcvt.c
fbmem.c fbdev: uninline lock_fb_info() 2009-04-01 08:59:29 -07:00
fbmon.c
fbsysfs.c
ffb.c
fm2fb.c
fsl-diu-fb.c
fsl-diu-fb.h
g364fb.c
gbefb.c
gxt4500.c
hecubafb.c
hgafb.c
hitfb.c
hpfb.c
igafb.c
imsttfb.c
imxfb.c imxfb: Fix TFT mode 2009-03-27 14:51:15 +01:00
leo.c
macfb.c
macmodes.c
macmodes.h
maxinefb.c
metronomefb.c
modedb.c
mx3fb.c
n411.c
neofb.c
offb.c
output.c
p9100.c
platinumfb.c
platinumfb.h
pm2fb.c
pm3fb.c
pmag-aa-fb.c
pmag-ba-fb.c
pmagb-b-fb.c
ps3fb.c
pvr2fb.c
pxafb.c
pxafb.h
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
s3c2410fb.h
s3fb.c
sa1100fb.c
sa1100fb.h
sbuslib.c
sbuslib.h
sgivwfb.c drivers/video/sgivwfb.c: fix memory leaks in removal path 2009-04-01 08:59:30 -07:00
sh7760fb.c
sh_mobile_lcdcfb.c
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
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
svgalib.c
syscopyarea.c
sysfillrect.c
sysimgblt.c
tcx.c
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
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
vgastate.c
vt8623fb.c
w100fb.c
w100fb.h
xen-fbfront.c
xilinxfb.c