2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-02 02:34:05 +08:00
linux-next/drivers/video/fbdev
Matt Fleming ae2ee627dc efifb: Add support for 64-bit frame buffer addresses
The EFI Graphics Output Protocol uses 64-bit frame buffer addresses
but these get truncated to 32-bit by the EFI boot stub when storing
the address in the 'lfb_base' field of 'struct screen_info'.

Add a 'ext_lfb_base' field for the upper 32-bits of the frame buffer
address and set VIDEO_TYPE_CAPABILITY_64BIT_BASE when the field is
useable.

It turns out that the reason no one has required this support so far
is that there's actually code in tianocore to "downgrade" PCI
resources that have option ROMs and 64-bit BARS from 64-bit to 32-bit
to cope with legacy option ROMs that can't handle 64-bit addresses.
The upshot is that basically all GOP devices in the wild use a 32-bit
frame buffer address.

Still, it is possible to build firmware that uses a full 64-bit GOP
frame buffer address. Chad did, which led to him reporting this issue.

Add support in anticipation of GOP devices using 64-bit addresses more
widely, and so that efifb works out of the box when that happens.

Reported-by: Chad Page <chad.page@znyx.com>
Cc: Pete Hawkins <pete.hawkins@znyx.com>
Acked-by: Peter Jones <pjones@redhat.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2015-10-12 14:20:06 +01:00
..
aty video: fbdev: aty: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:51 +03:00
core fbdev: propagate result of fb_videomode_from_videomode() 2015-06-16 10:06:36 +03:00
exynos Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
geode video: fbdev: geode gxfb: use ioremap_wc() for framebuffer 2015-06-03 12:41:53 +03:00
i810 video: fbdev: i810: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:51 +03:00
intelfb video: fbdev: intelfb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:49 +03:00
kyro video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
matrox video: fbdev: matrox: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:49 +03:00
mb862xx video: fbdev: mb862xx: drop owner assignment from platform_drivers 2014-10-20 16:21:52 +02:00
mbx video/mbx: indent some if statements 2014-07-01 13:32:30 +03:00
mmp video/mmpfb: allow modular build 2015-01-30 09:45:20 +02:00
nvidia video: fbdev: nvidia: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:50 +03:00
omap video: omap/h3: fix tps65010 dependency 2015-05-27 12:54:47 +03:00
omap2 OMAPDSS: fix probing if rfbi device is enabled 2015-07-02 15:20:10 +03:00
riva video: fbdev: rivafb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:52 +03:00
savage video: fbdev: savagefb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:50 +03:00
sis video: fbdev: sisfb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:50 +03:00
vermilion x86: Use new cache mode type in drivers/video/fbdev/vermilion 2014-11-16 11:04:25 +01:00
via fbdev: via/via_clock: fix sparse warning 2015-03-02 13:17:25 +02:00
68328fb.c video: 68328fb: remove check for CONFIG_FB_68328_INVERT 2014-06-24 10:55:13 +03:00
acornfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
acornfb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
amba-clcd-versatile.c video: move Versatile CLCD helpers 2014-06-27 10:15:22 +02:00
amba-clcd.c video: ARM CLCD: Add missing error check for devm_kzalloc 2015-02-26 10:23:15 +02:00
amifb.c fbdev changes for 4.2 2015-06-23 16:23:30 -07:00
arcfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
arkfb.c video: fbdev: arkfb: suppress build warning 2014-12-04 15:41:18 +02:00
asiliantfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atafb_iplan2p2.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atafb_iplan2p4.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atafb_iplan2p8.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atafb_mfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atafb_utils.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atafb.c video/fbdev, asm/io.h: Remove ioremap_writethrough() 2015-06-07 15:28:57 +02:00
atafb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
atmel_lcdfb.c video: fbdev: atmel_lcdfb: use ioremap_wc() for framebuffer 2015-06-03 12:41:53 +03:00
au1100fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
au1100fb.h MIPS: Alchemy: au1100fb: use clk framework 2014-07-30 14:10:39 +02:00
au1200fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
au1200fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
auo_k190x.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
auo_k190x.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
auo_k1900fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
auo_k1901fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
bf54x-lq043fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
bf537-lq035.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
bfin_adv7393fb.c fb: adv7393: add missing semicolon 2014-07-01 13:18:38 +03:00
bfin_adv7393fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
bfin-lq035q1-fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
bfin-t350mcqb-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
broadsheetfb.c fbdev/broadsheetfb: fix memory leak 2015-01-13 15:13:45 +02:00
bt431.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
bt455.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
bw2.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
c2p_core.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
c2p_iplan2.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
c2p_planar.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
c2p.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
carminefb_regs.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
carminefb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
carminefb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
cg3.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
cg6.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
cg14.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
chipsfb.c fbdev: Remove __init from chips_hw_init() to fix build failure 2014-08-26 12:48:34 +03:00
cirrusfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
clps711x-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
clps711xfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
cobalt_lcdfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
controlfb.c powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
controlfb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
cyber2000fb.c video: fbdev: cyber2000fb.c: use container_of to resolve cfb_info from fb_info 2014-09-30 13:06:01 +03:00
cyber2000fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
da8xx-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
dnfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
edid.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
efifb.c efifb: Add support for 64-bit frame buffer addresses 2015-10-12 14:20:06 +01:00
ep93xx-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
fb-puv3.c drivers/video/fbdev/fb-puv3.c: Add header files for function unifb_mmap 2014-05-23 13:51:10 +03:00
ffb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
fm2fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
fsl-diu-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
g364fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
gbefb.c video: fbdev: gbefb: use arch_phys_wc_add() and devm_ioremap_wc() 2015-06-03 12:41:46 +03:00
goldfishfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
grvga.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
gxt4500.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
hecubafb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
hgafb.c video: hgafb: remove unneeded comparison 2015-01-26 14:43:06 +02:00
hitfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
hpfb.c video/fbdev, asm/io.h: Remove ioremap_writethrough() 2015-06-07 15:28:57 +02:00
hyperv_fb.c hyperv: hyperv_fb: match wait_for_completion_timeout return type 2015-03-10 14:37:46 +02:00
i740_reg.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
i740fb.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
igafb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
imsttfb.c fbdev: imsttfb: remove the dependency on PPC_OF 2015-03-17 20:04:31 +11:00
imxfb.c video: fbdev: imxfb: Constify platform_device_id 2015-06-12 12:40:27 +03:00
jz4740_fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
Kconfig msm: msm_fb: Remove dead code 2015-06-18 09:57:43 +03:00
leo.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
macfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
macmodes.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
macmodes.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
Makefile msm: msm_fb: Remove dead code 2015-06-18 09:57:43 +03:00
maxinefb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
metronomefb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
mx3fb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
mxsfb.c video: fbdev: mxsfb: Constify platform_device_id 2015-06-12 12:40:27 +03:00
n411.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
neofb.c video: fbdev: neofb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:49 +03:00
nuc900fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
nuc900fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
ocfb.c video: ocfb: Fix data type warning 2015-01-13 12:53:25 +02:00
offb.c Revert "offb: Add palette hack for little endian" 2014-06-16 19:45:45 +10:00
p9100.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
platinumfb.c powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
platinumfb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
pm2fb.c video: fbdev: pm2fb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:51 +03:00
pm3fb.c video: fbdev: pm3fb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:52 +03:00
pmag-aa-fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
pmag-ba-fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
pmagb-b-fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
ps3fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
pvr2fb.c mm: gup: use get_user_pages_unlocked 2015-02-11 17:06:05 -08:00
pxa3xx-gcu.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
pxa3xx-gcu.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
pxa168fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
pxa168fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
pxafb.c video: fbdev: use msecs_to_jiffies for time conversions 2015-03-10 14:32:13 +02:00
pxafb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
q40fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
s1d13xxxfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
s3c2410fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
s3c2410fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
s3c-fb.c More ACPI and power management updates for 3.19-rc1 2014-12-18 20:28:33 -08:00
s3fb.c video: fbdev: s3fb: suppress build warning 2014-12-04 15:41:18 +02:00
sa1100fb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
sa1100fb.h ARM: 8244/1: fbdev: sa1100fb: make use of device clock 2014-12-05 16:30:25 +00:00
sbuslib.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sbuslib.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sh7760fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
sh_mipi_dsi.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sh_mobile_hdmi.c fbdev: sh_mobile_hdmi: Re-init regs before irq re-enable on resume 2014-09-30 13:42:13 +03:00
sh_mobile_lcdcfb.c fbdev: sh_mobile_lcdc: Fix destruction of uninitialized mutex 2015-04-07 16:24:15 +03:00
sh_mobile_lcdcfb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sh_mobile_meram.c More ACPI and power management updates for 3.19-rc1 2014-12-18 20:28:33 -08:00
simplefb.c simplefb: Fix build failure on Sparc 2015-01-13 13:25:16 +02:00
skeletonfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sm501fb.c fbdev: sm501fb: use memset_io 2015-03-02 13:17:24 +02:00
smscufx.c video: smscufx: Deletion of unnecessary checks before the function call "vfree" 2014-12-04 16:16:01 +02:00
ssd1307fb.c fbdev: ssd1307fb: fix logical error 2015-05-27 12:54:48 +03:00
sstfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sticore.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
stifb.c stifb: Implement hardware accelerated copyarea 2015-07-10 21:44:19 +02:00
sunxvr500.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
sunxvr1000.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
sunxvr2500.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
tcx.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
tdfxfb.c video: fbdev: tdfxfb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:52 +03:00
tgafb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
tmiofb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
tridentfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
udlfb.c video: udlfb: Deletion of unnecessary checks before the function call "vfree" 2014-12-04 16:16:01 +02:00
uvesafb.c kernel/params: constify struct kernel_param_ops uses 2015-05-28 11:32:10 +09:30
valkyriefb.c video: fbdev: valkyriefb.c: use container_of to resolve fb_info_valkyrie from fb_info 2014-09-30 13:06:01 +03:00
valkyriefb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
vesafb.c video: fbdev: vesafb: use arch_phys_wc_add() 2015-06-16 09:42:11 +03:00
vfb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
vga16fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
vt8500lcdfb.c video: vt8500lcdfb: remove unneeded continue 2015-01-13 13:35:04 +02:00
vt8500lcdfb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
vt8623fb.c module: add per-module param_lock 2015-06-23 15:27:38 +09:30
w100fb.c video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
w100fb.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
wm8505fb_regs.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
wm8505fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
wmt_ge_rops.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
wmt_ge_rops.h video: move fbdev to drivers/video/fbdev 2014-04-17 08:10:19 +03:00
xen-fbfront.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
xilinxfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00