diff --git a/handle-efi-roms.patch b/handle-efi-roms.patch index 7f02a1c3d..bc080542b 100644 --- a/handle-efi-roms.patch +++ b/handle-efi-roms.patch @@ -131,62 +131,6 @@ diff -ur linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/boot/compressed/eboot.c . /* * See if we have Graphics Output Protocol */ -@@ -276,8 +392,9 @@ - nr_gops = size / sizeof(void *); - for (i = 0; i < nr_gops; i++) { - struct efi_graphics_output_mode_info *info; -- efi_guid_t pciio_proto = EFI_PCI_IO_PROTOCOL_GUID; -- void *pciio; -+ efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID; -+ bool conout_found = false; -+ void *dummy; - void *h = gop_handle[i]; - - status = efi_call_phys3(sys_table->boottime->handle_protocol, -@@ -285,19 +402,21 @@ - if (status != EFI_SUCCESS) - continue; - -- efi_call_phys3(sys_table->boottime->handle_protocol, -- h, &pciio_proto, &pciio); -+ status = efi_call_phys3(sys_table->boottime->handle_protocol, -+ h, &conout_proto, &dummy); -+ -+ if (status == EFI_SUCCESS) -+ conout_found = true; - - status = efi_call_phys4(gop->query_mode, gop, - gop->mode->mode, &size, &info); -- if (status == EFI_SUCCESS && (!first_gop || pciio)) { -+ if (status == EFI_SUCCESS && (!first_gop || conout_found)) { - /* -- * Apple provide GOPs that are not backed by -- * real hardware (they're used to handle -- * multiple displays). The workaround is to -- * search for a GOP implementing the PCIIO -- * protocol, and if one isn't found, to just -- * fallback to the first GOP. -+ * Systems that use the UEFI Console Splitter may -+ * provide multiple GOP devices, not all of which are -+ * backed by real hardware. The workaround is to search -+ * for a GOP implementing the ConOut protocol, and if -+ * one isn't found, to just fall back to the first GOP. - */ - width = info->horizontal_resolution; - height = info->vertical_resolution; -@@ -308,10 +427,10 @@ - pixels_per_scan_line = info->pixels_per_scan_line; - - /* -- * Once we've found a GOP supporting PCIIO, -+ * Once we've found a GOP supporting ConOut, - * don't bother looking any further. - */ -- if (pciio) -+ if (conout_found) - break; - - first_gop = gop; @@ -1052,6 +1171,8 @@ setup_graphics(boot_params); @@ -196,20 +140,6 @@ diff -ur linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/boot/compressed/eboot.c . status = efi_call_phys3(sys_table->boottime->allocate_pool, EFI_LOADER_DATA, sizeof(*gdt), (void **)&gdt); -diff -ur linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/boot/compressed/eboot.h ../kernel-3.5.fc18.bak/linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/boot/compressed/eboot.h ---- linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/boot/compressed/eboot.h 2012-07-21 16:58:29.000000000 -0400 -+++ ../kernel-3.5.fc18.bak/linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/boot/compressed/eboot.h 2012-08-22 15:25:40.530244882 -0400 -@@ -14,6 +14,10 @@ - #define EFI_PAGE_SIZE (1UL << EFI_PAGE_SHIFT) - #define EFI_READ_CHUNK_SIZE (1024 * 1024) - -+#define EFI_CONSOLE_OUT_DEVICE_GUID \ -+ EFI_GUID( 0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x0, 0x90, 0x27, \ -+ 0x3f, 0xc1, 0x4d ) -+ - #define PIXEL_RGB_RESERVED_8BIT_PER_COLOR 0 - #define PIXEL_BGR_RESERVED_8BIT_PER_COLOR 1 - #define PIXEL_BIT_MASK 2 diff -ur linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/include/asm/bootparam.h ../kernel-3.5.fc18.bak/linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/include/asm/bootparam.h --- linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/include/asm/bootparam.h 2012-08-22 15:26:32.485522068 -0400 +++ ../kernel-3.5.fc18.bak/linux-3.6.0-0.rc2.git2.1.fc18.x86_64/arch/x86/include/asm/bootparam.h 2012-08-22 15:25:40.530244882 -0400 diff --git a/kernel.spec b/kernel.spec index 2b4671c08..10d7adc77 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1404,7 +1404,7 @@ ApplyPatch modsign-post-KS-jwb.patch ApplyPatch secure-boot-20120924.patch # Improved PCI support for UEFI -# ApplyPatch handle-efi-roms.patch +ApplyPatch handle-efi-roms.patch # Assorted Virt Fixes @@ -2313,6 +2313,9 @@ fi # ||----w | # || || %changelog +* Fri Oct 05 2012 Justin M. Forbes +- Fix handle-efi-roms.patch + * Fri Oct 05 2012 Justin M. Forbes - v3.6-6670-gecefbd9 - Reenable debugging options.