--- /dev/null
+From 9756fe38d10b2bf90c81dc4d2f17d5632e135364 Mon Sep 17 00:00:00 2001
+From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+Date: Fri, 22 Jun 2012 09:43:07 +0200
+Subject: drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13
+
+From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+commit 9756fe38d10b2bf90c81dc4d2f17d5632e135364 upstream.
+
+This box claims to have an LVDS interface but doesn't
+actually have one.
+
+Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_lvds.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -777,6 +777,14 @@ static const struct dmi_system_id intel_
+ DMI_MATCH(DMI_BOARD_NAME, "MS-7469"),
+ },
+ },
++ {
++ .callback = intel_no_lvds_dmi_callback,
++ .ident = "ZOTAC ZBOXSD-ID12/ID13",
++ .matches = {
++ DMI_MATCH(DMI_BOARD_VENDOR, "ZOTAC"),
++ DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"),
++ },
++ },
+
+ { } /* terminating entry */
+ };
x86-mm-undo-incorrect-revert-in-arch-x86-mm-init.c.patch
efi-defer-freeing-boot-services-memory-until-after-acpi-init.patch
x86-efi-turn-off-efi_enabled-after-setup-on-mixed-fw-kernel.patch
+staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch
+x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch
+drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch
--- /dev/null
+From aaeb61a97b7159ebe30b18a422d04eeabfa8790b Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Wed, 3 Oct 2012 16:25:17 +0100
+Subject: staging: comedi: amplc_pc236: fix invalid register access during detach
+
+From: Ian Abbott <abbotti@mev.co.uk>
+
+commit aaeb61a97b7159ebe30b18a422d04eeabfa8790b upstream.
+
+`pc236_detach()` is called by the comedi core if it attempted to attach
+a device and failed. `pc236_detach()` calls `pc236_intr_disable()` if
+the comedi device private data pointer (`devpriv`) is non-null. This
+test is insufficient as `pc236_intr_disable()` accesses hardware
+registers and the attach routine may have failed before it has saved
+their I/O base addresses.
+
+Fix it by checking `dev->iobase` is non-zero before calling
+`pc236_intr_disable()` as that means the I/O base addresses have been
+saved and the hardware registers can be accessed. It also implies the
+comedi device private data pointer is valid, so there is no need to
+check it.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/comedi/drivers/amplc_pc236.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/staging/comedi/drivers/amplc_pc236.c
++++ b/drivers/staging/comedi/drivers/amplc_pc236.c
+@@ -468,7 +468,7 @@ static int pc236_detach(struct comedi_de
+ {
+ printk(KERN_DEBUG "comedi%d: %s: detach\n", dev->minor,
+ PC236_DRIVER_NAME);
+- if (devpriv)
++ if (dev->iobase)
+ pc236_intr_disable(dev);
+
+ if (dev->irq)
--- /dev/null
+From 1f2ff682ac951ed82cc043cf140d2851084512df Mon Sep 17 00:00:00 2001
+From: Yinghai Lu <yinghai@kernel.org>
+Date: Mon, 22 Oct 2012 16:35:18 -0700
+Subject: x86, mm: Use memblock memory loop instead of e820_RAM
+
+From: Yinghai Lu <yinghai@kernel.org>
+
+commit 1f2ff682ac951ed82cc043cf140d2851084512df upstream.
+
+We need to handle E820_RAM and E820_RESERVED_KERNEL at the same time.
+
+Also memblock has page aligned range for ram, so we could avoid mapping
+partial pages.
+
+Signed-off-by: Yinghai Lu <yinghai@kernel.org>
+Link: http://lkml.kernel.org/r/CAE9FiQVZirvaBMFYRfXMmWEcHbKSicQEHz4VAwUv0xFCk51ZNw@mail.gmail.com
+Acked-by: Jacob Shin <jacob.shin@amd.com>
+Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/setup.c | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+--- a/arch/x86/kernel/setup.c
++++ b/arch/x86/kernel/setup.c
+@@ -928,18 +928,19 @@ void __init setup_arch(char **cmdline_p)
+ #ifdef CONFIG_X86_64
+ if (max_pfn > max_low_pfn) {
+ int i;
+- for (i = 0; i < e820.nr_map; i++) {
+- struct e820entry *ei = &e820.map[i];
++ unsigned long start, end;
++ unsigned long start_pfn, end_pfn;
+
+- if (ei->addr + ei->size <= 1UL << 32)
+- continue;
++ for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn,
++ NULL) {
+
+- if (ei->type == E820_RESERVED)
++ end = PFN_PHYS(end_pfn);
++ if (end <= (1UL<<32))
+ continue;
+
++ start = PFN_PHYS(start_pfn);
+ max_pfn_mapped = init_memory_mapping(
+- ei->addr < 1UL << 32 ? 1UL << 32 : ei->addr,
+- ei->addr + ei->size);
++ max((1UL<<32), start), end);
+ }
+
+ /* can we preseve max_low_pfn ?*/