From f1f39441ac363349fffd0973fb239d399c446436 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 5 Oct 2014 17:08:55 -0700 Subject: [PATCH] later patch is now applied --- ...vice-initialization-to-pci_vga_fixup.patch | 195 ------------------ 1 file changed, 195 deletions(-) delete mode 100644 later/x86-ia64-move-efi_fb-vga_default_device-initialization-to-pci_vga_fixup.patch diff --git a/later/x86-ia64-move-efi_fb-vga_default_device-initialization-to-pci_vga_fixup.patch b/later/x86-ia64-move-efi_fb-vga_default_device-initialization-to-pci_vga_fixup.patch deleted file mode 100644 index 7dfcd79d071..00000000000 --- a/later/x86-ia64-move-efi_fb-vga_default_device-initialization-to-pci_vga_fixup.patch +++ /dev/null @@ -1,195 +0,0 @@ -From 20cde694027e7477cc532833e38ab9fcaa83fb64 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Bruno=20Pr=C3=A9mont?= -Date: Wed, 25 Jun 2014 00:55:01 +0200 -Subject: x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: =?UTF-8?q?Bruno=20Pr=C3=A9mont?= - -commit 20cde694027e7477cc532833e38ab9fcaa83fb64 upstream. - -Commit b4aa0163056b ("efifb: Implement vga_default_device() (v2)") added -efifb vga_default_device() so EFI systems that do not load shadow VBIOS or -setup VGA get proper value for boot_vga PCI sysfs attribute on the -corresponding PCI device. - -Xorg doesn't detect devices when boot_vga=0, e.g., on some EFI systems such -as MacBookAir2,1. Xorg detects the GPU and finds the DRI device but then -bails out with "no devices detected". - -Note: When vga_default_device() is set boot_vga PCI sysfs attribute -reflects its state. When unset this attribute is 1 whenever -IORESOURCE_ROM_SHADOW flag is set. - -With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete -while having native drivers for the GPU also makes selecting sysfb/efifb -optional. - -Remove the efifb implementation of vga_default_device() and initialize -vgaarb's vga_default_device() with the PCI GPU that matches boot -screen_info in pci_fixup_video(). - -[bhelgaas: remove unused "dev" in efifb_setup()] -Fixes: b4aa0163056b ("efifb: Implement vga_default_device() (v2)") -Tested-by: Anibal Francisco Martinez Cortina -Signed-off-by: Bruno Prémont -Signed-off-by: Bjorn Helgaas -Acked-by: Matthew Garrett -Signed-off-by: Greg Kroah-Hartman - ---- - arch/ia64/pci/fixup.c | 22 ++++++++++++++++++++++ - arch/x86/include/asm/vga.h | 6 ------ - arch/x86/pci/fixup.c | 21 +++++++++++++++++++++ - drivers/video/fbdev/efifb.c | 39 --------------------------------------- - 4 files changed, 43 insertions(+), 45 deletions(-) - ---- a/arch/ia64/pci/fixup.c -+++ b/arch/ia64/pci/fixup.c -@@ -6,6 +6,7 @@ - #include - #include - #include -+#include - - #include - -@@ -37,6 +38,27 @@ static void pci_fixup_video(struct pci_d - return; - /* Maybe, this machine supports legacy memory map. */ - -+ if (!vga_default_device()) { -+ resource_size_t start, end; -+ int i; -+ -+ /* Does firmware framebuffer belong to us? */ -+ for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { -+ if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM)) -+ continue; -+ -+ start = pci_resource_start(pdev, i); -+ end = pci_resource_end(pdev, i); -+ -+ if (!start || !end) -+ continue; -+ -+ if (screen_info.lfb_base >= start && -+ (screen_info.lfb_base + screen_info.lfb_size) < end) -+ vga_set_default_device(pdev); -+ } -+ } -+ - /* Is VGA routed to us? */ - bus = pdev->bus; - while (bus) { ---- a/arch/x86/include/asm/vga.h -+++ b/arch/x86/include/asm/vga.h -@@ -17,10 +17,4 @@ - #define vga_readb(x) (*(x)) - #define vga_writeb(x, y) (*(y) = (x)) - --#ifdef CONFIG_FB_EFI --#define __ARCH_HAS_VGA_DEFAULT_DEVICE --extern struct pci_dev *vga_default_device(void); --extern void vga_set_default_device(struct pci_dev *pdev); --#endif -- - #endif /* _ASM_X86_VGA_H */ ---- a/arch/x86/pci/fixup.c -+++ b/arch/x86/pci/fixup.c -@@ -326,6 +326,27 @@ static void pci_fixup_video(struct pci_d - struct pci_bus *bus; - u16 config; - -+ if (!vga_default_device()) { -+ resource_size_t start, end; -+ int i; -+ -+ /* Does firmware framebuffer belong to us? */ -+ for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { -+ if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM)) -+ continue; -+ -+ start = pci_resource_start(pdev, i); -+ end = pci_resource_end(pdev, i); -+ -+ if (!start || !end) -+ continue; -+ -+ if (screen_info.lfb_base >= start && -+ (screen_info.lfb_base + screen_info.lfb_size) < end) -+ vga_set_default_device(pdev); -+ } -+ } -+ - /* Is VGA routed to us? */ - bus = pdev->bus; - while (bus) { ---- a/drivers/video/fbdev/efifb.c -+++ b/drivers/video/fbdev/efifb.c -@@ -19,8 +19,6 @@ - - static bool request_mem_succeeded = false; - --static struct pci_dev *default_vga; -- - static struct fb_var_screeninfo efifb_defined = { - .activate = FB_ACTIVATE_NOW, - .height = -1, -@@ -84,23 +82,10 @@ static struct fb_ops efifb_ops = { - .fb_imageblit = cfb_imageblit, - }; - --struct pci_dev *vga_default_device(void) --{ -- return default_vga; --} -- --EXPORT_SYMBOL_GPL(vga_default_device); -- --void vga_set_default_device(struct pci_dev *pdev) --{ -- default_vga = pdev; --} -- - static int efifb_setup(char *options) - { - char *this_opt; - int i; -- struct pci_dev *dev = NULL; - - if (options && *options) { - while ((this_opt = strsep(&options, ",")) != NULL) { -@@ -126,30 +111,6 @@ static int efifb_setup(char *options) - } - } - -- for_each_pci_dev(dev) { -- int i; -- -- if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) -- continue; -- -- for (i=0; i < DEVICE_COUNT_RESOURCE; i++) { -- resource_size_t start, end; -- -- if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM)) -- continue; -- -- start = pci_resource_start(dev, i); -- end = pci_resource_end(dev, i); -- -- if (!start || !end) -- continue; -- -- if (screen_info.lfb_base >= start && -- (screen_info.lfb_base + screen_info.lfb_size) < end) -- default_vga = dev; -- } -- } -- - return 0; - } - -- 2.47.3