android_kernel_xiaomi_sm8350/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 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
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 i2c: Delete many unused adapter IDs 2009-01-26 21:19:52 +01:00
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
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_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atafb.c m68k: atari - Rename "mfp" to "st_mfp" 2009-02-22 09:23:02 -08:00
atafb.h
atmel_lcdfb.c
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
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
c2p.h fbdev: c2p - Rename c2p to c2p_planar 2009-01-12 20:56:32 +01:00
carminefb_regs.h
carminefb.c fb: carminefb: trivial annotation packing color register 2009-01-06 15:59:26 -08:00
carminefb.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 [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
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 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
fbsysfs.c
ffb.c
fm2fb.c
fsl-diu-fb.c
fsl-diu-fb.h
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
hgafb.c
hitfb.c
hpfb.c
igafb.c
imsttfb.c
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
macfb.c
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
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
neofb.c neofb: fix sparse warnings 2009-01-06 15:59:27 -08:00
offb.c
output.c video: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:35 -08:00
p9100.c
platinumfb.c
platinumfb.h
pm2fb.c
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
s3c2410fb.c [ARM] 5377/1: S3C2410-Framebuffer: Fix resume path in S3C2410 framebuffer driver. 2009-02-19 11:30:20 +00:00
s3c2410fb.h
s3c-fb.c fb: add s3c-fb driver for newer Samsung SoC framebuffer devices 2009-04-01 08:59:33 -07:00
s3fb.c
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
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 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
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 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
vgastate.c
vt8623fb.c
w100fb.c
w100fb.h
xen-fbfront.c
xilinxfb.c