]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.8-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2013 20:31:01 +0000 (13:31 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2013 20:31:01 +0000 (13:31 -0700)
added patches:
arm-exynos-fix-crash-on-soft-reset-on-exynos5440.patch
cpufreq-exynos-get-booting-freq-value-in-exynos_cpufreq_init.patch
drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
drm-i915-fix-build-failure.patch
msi-wmi-fix-memory-leak.patch
revert-pci-acpi-request-_osc-control-before-scanning-pci-root-bus.patch
thermal-return-an-error-on-failure-to-register-thermal-class.patch
x86-fix-rebuild-with-efi_stub-enabled.patch

queue-3.8/arm-exynos-fix-crash-on-soft-reset-on-exynos5440.patch [new file with mode: 0644]
queue-3.8/cpufreq-exynos-get-booting-freq-value-in-exynos_cpufreq_init.patch [new file with mode: 0644]
queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch [new file with mode: 0644]
queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch [new file with mode: 0644]
queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch [new file with mode: 0644]
queue-3.8/drm-i915-fix-build-failure.patch [new file with mode: 0644]
queue-3.8/msi-wmi-fix-memory-leak.patch [new file with mode: 0644]
queue-3.8/revert-pci-acpi-request-_osc-control-before-scanning-pci-root-bus.patch [new file with mode: 0644]
queue-3.8/series
queue-3.8/thermal-return-an-error-on-failure-to-register-thermal-class.patch [new file with mode: 0644]
queue-3.8/x86-fix-rebuild-with-efi_stub-enabled.patch [new file with mode: 0644]

diff --git a/queue-3.8/arm-exynos-fix-crash-on-soft-reset-on-exynos5440.patch b/queue-3.8/arm-exynos-fix-crash-on-soft-reset-on-exynos5440.patch
new file mode 100644 (file)
index 0000000..613b468
--- /dev/null
@@ -0,0 +1,45 @@
+From 60db7e5f9c9a25a7a9b01007e6e3f5a93bc16a3a Mon Sep 17 00:00:00 2001
+From: Thomas Abraham <thomas.ab@samsung.com>
+Date: Thu, 24 Jan 2013 10:09:13 -0800
+Subject: ARM: EXYNOS: Fix crash on soft reset on EXYNOS5440
+
+From: Thomas Abraham <thomas.ab@samsung.com>
+
+commit 60db7e5f9c9a25a7a9b01007e6e3f5a93bc16a3a upstream.
+
+The soft-reset control register is located in the XMU controller space.
+Map this controller space before writing to the soft-reset controller
+register.
+
+Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
+Signed-off-by: Girish K S <ks.giri@samsung.com>
+Signed-off-by: Kukjin <kgene.kim@samsung.com>
+Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-exynos/common.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mach-exynos/common.c
++++ b/arch/arm/mach-exynos/common.c
+@@ -299,6 +299,7 @@ void exynos4_restart(char mode, const ch
+ void exynos5_restart(char mode, const char *cmd)
+ {
++      struct device_node *np;
+       u32 val;
+       void __iomem *addr;
+@@ -306,8 +307,9 @@ void exynos5_restart(char mode, const ch
+               val = 0x1;
+               addr = EXYNOS_SWRESET;
+       } else if (of_machine_is_compatible("samsung,exynos5440")) {
+-              val = (0x10 << 20) | (0x1 << 16);
+-              addr = EXYNOS5440_SWRESET;
++              np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock");
++              addr = of_iomap(np, 0) + 0xcc;
++              val = (0xfff << 20) | (0x1 << 16);
+       } else {
+               pr_err("%s: cannot support non-DT\n", __func__);
+               return;
diff --git a/queue-3.8/cpufreq-exynos-get-booting-freq-value-in-exynos_cpufreq_init.patch b/queue-3.8/cpufreq-exynos-get-booting-freq-value-in-exynos_cpufreq_init.patch
new file mode 100644 (file)
index 0000000..a83f057
--- /dev/null
@@ -0,0 +1,41 @@
+From 6e45eb12fd1c741d556bf264ee98853b5f3104e5 Mon Sep 17 00:00:00 2001
+From: Jonghwan Choi <jhbird.choi@samsung.com>
+Date: Fri, 18 Jan 2013 11:09:01 -0800
+Subject: cpufreq: exynos: Get booting freq value in exynos_cpufreq_init
+
+From: Jonghwan Choi <jhbird.choi@samsung.com>
+
+commit 6e45eb12fd1c741d556bf264ee98853b5f3104e5 upstream.
+
+Boot_freq is for saving booting freq. But exynos_cpufreq_cpu_init
+is called in hotplug. If boot_freq is existed in exynos_cpufreq_cpu_init,
+boot_freq could be changed.
+
+Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/cpufreq/exynos-cpufreq.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/cpufreq/exynos-cpufreq.c
++++ b/drivers/cpufreq/exynos-cpufreq.c
+@@ -222,8 +222,6 @@ static int exynos_cpufreq_cpu_init(struc
+       cpufreq_frequency_table_get_attr(exynos_info->freq_table, policy->cpu);
+-      locking_frequency = exynos_getspeed(0);
+-
+       /* set the transition latency value */
+       policy->cpuinfo.transition_latency = 100000;
+@@ -288,6 +286,8 @@ static int __init exynos_cpufreq_init(vo
+               goto err_vdd_arm;
+       }
++      locking_frequency = exynos_getspeed(0);
++
+       register_pm_notifier(&exynos_cpufreq_nb);
+       if (cpufreq_register_driver(&exynos_driver)) {
diff --git a/queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch b/queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
new file mode 100644 (file)
index 0000000..8f7a238
--- /dev/null
@@ -0,0 +1,33 @@
+From 01e3a8feb40e54b962a20fa7eb595c5efef5e109 Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Tue, 22 Jan 2013 12:50:35 +0200
+Subject: drm/i915: add quirk to invert brightness on eMachines e725
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 01e3a8feb40e54b962a20fa7eb595c5efef5e109 upstream.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=31522#c35
+[Note: There are more than one broken setups in the bug. This fixes one.]
+Reported-by: Martins <andrissr@inbox.lv>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Cc: Josh Boyer <jwboyer@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_display.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -8904,6 +8904,9 @@ static struct intel_quirk intel_quirks[]
+       /* Acer/eMachines G725 */
+       { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness },
++
++      /* Acer/eMachines e725 */
++      { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
+ };
+ static void intel_init_quirks(struct drm_device *dev)
diff --git a/queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch b/queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
new file mode 100644 (file)
index 0000000..9520390
--- /dev/null
@@ -0,0 +1,32 @@
+From 1ffff60320879830e469e26062c18f75236822ba Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Tue, 22 Jan 2013 12:50:34 +0200
+Subject: drm/i915: add quirk to invert brightness on eMachines G725
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 1ffff60320879830e469e26062c18f75236822ba upstream.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59628
+Reported-by: Roland Gruber <post@rolandgruber.de>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Cc: Josh Boyer <jwboyer@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_display.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -8901,6 +8901,9 @@ static struct intel_quirk intel_quirks[]
+       /* Acer Aspire 4736Z */
+       { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness },
++
++      /* Acer/eMachines G725 */
++      { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness },
+ };
+ static void intel_init_quirks(struct drm_device *dev)
diff --git a/queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch b/queue-3.8/drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
new file mode 100644 (file)
index 0000000..5f17a7b
--- /dev/null
@@ -0,0 +1,31 @@
+From 5559ecadad5a73b27f863e92f4b4f369501dce6f Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Tue, 22 Jan 2013 12:50:36 +0200
+Subject: drm/i915: add quirk to invert brightness on Packard Bell NCL20
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 5559ecadad5a73b27f863e92f4b4f369501dce6f upstream.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44156
+Reported-by: Alan Zimmerman <alan.zimm@gmail.com>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_display.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -8907,6 +8907,9 @@ static struct intel_quirk intel_quirks[]
+       /* Acer/eMachines e725 */
+       { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness },
++
++      /* Acer/Packard Bell NCL20 */
++      { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness },
+ };
+ static void intel_init_quirks(struct drm_device *dev)
diff --git a/queue-3.8/drm-i915-fix-build-failure.patch b/queue-3.8/drm-i915-fix-build-failure.patch
new file mode 100644 (file)
index 0000000..b7b7574
--- /dev/null
@@ -0,0 +1,37 @@
+From 27b7c63a7c509d797c151e95a641e1d94d94bbd9 Mon Sep 17 00:00:00 2001
+From: Lauri Kasanen <cand@gmx.com>
+Date: Wed, 27 Mar 2013 15:04:55 +0200
+Subject: drm/i915: Fix build failure
+
+From: Lauri Kasanen <cand@gmx.com>
+
+commit 27b7c63a7c509d797c151e95a641e1d94d94bbd9 upstream.
+
+ERROR: "__build_bug_on_failed" [drivers/gpu/drm/i915/i915.ko] undefined!
+
+Originally reported at http://www.gossamer-threads.com/lists/linux/kernel/1631803
+FDO bug #62775
+
+This needs to be backported to both 3.7 and 3.8 stable trees. Doesn't apply straight,
+but it's a quick change.
+
+Signed-off-by: Lauri Kasanen <cand@gmx.com>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62775
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/i915_gem_execbuffer.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
++++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+@@ -43,7 +43,7 @@ eb_create(int size)
+ {
+       struct eb_objects *eb;
+       int count = PAGE_SIZE / sizeof(struct hlist_head) / 2;
+-      BUILD_BUG_ON(!is_power_of_2(PAGE_SIZE / sizeof(struct hlist_head)));
++      BUILD_BUG_ON_NOT_POWER_OF_2(PAGE_SIZE / sizeof(struct hlist_head));
+       while (count > size)
+               count >>= 1;
+       eb = kzalloc(count*sizeof(struct hlist_head) +
diff --git a/queue-3.8/msi-wmi-fix-memory-leak.patch b/queue-3.8/msi-wmi-fix-memory-leak.patch
new file mode 100644 (file)
index 0000000..407da64
--- /dev/null
@@ -0,0 +1,44 @@
+From 51c94491c82c3d9029f6e87a1a153db321d88e35 Mon Sep 17 00:00:00 2001
+From: Maxim Mikityanskiy <maxtram95@gmail.com>
+Date: Sat, 15 Dec 2012 19:31:31 +0200
+Subject: msi-wmi: Fix memory leak
+
+From: Maxim Mikityanskiy <maxtram95@gmail.com>
+
+commit 51c94491c82c3d9029f6e87a1a153db321d88e35 upstream.
+
+Fix memory leak - don't forget to kfree ACPI object when returning from
+msi_wmi_notify() after suppressing key event.
+
+Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
+Acked-by: Anisse Astier <anisse@astier.eu>
+Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ drivers/platform/x86/msi-wmi.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/platform/x86/msi-wmi.c
++++ b/drivers/platform/x86/msi-wmi.c
+@@ -176,7 +176,7 @@ static void msi_wmi_notify(u32 value, vo
+                               pr_debug("Suppressed key event 0x%X - "
+                                        "Last press was %lld us ago\n",
+                                        key->code, ktime_to_us(diff));
+-                              return;
++                              goto msi_wmi_notify_exit;
+                       }
+                       last_pressed[key->code - SCANCODE_BASE] = cur;
+@@ -195,6 +195,8 @@ static void msi_wmi_notify(u32 value, vo
+                       pr_info("Unknown key pressed - %x\n", eventcode);
+       } else
+               pr_info("Unknown event received\n");
++
++msi_wmi_notify_exit:
+       kfree(response.pointer);
+ }
diff --git a/queue-3.8/revert-pci-acpi-request-_osc-control-before-scanning-pci-root-bus.patch b/queue-3.8/revert-pci-acpi-request-_osc-control-before-scanning-pci-root-bus.patch
new file mode 100644 (file)
index 0000000..191c7c2
--- /dev/null
@@ -0,0 +1,200 @@
+From b8178f130e25c1bdac1c33e0996f1ff6e20ec08e Mon Sep 17 00:00:00 2001
+From: Bjorn Helgaas <bhelgaas@google.com>
+Date: Mon, 1 Apr 2013 15:47:39 -0600
+Subject: Revert "PCI/ACPI: Request _OSC control before scanning PCI root bus"
+
+From: Bjorn Helgaas <bhelgaas@google.com>
+
+commit b8178f130e25c1bdac1c33e0996f1ff6e20ec08e upstream.
+
+This reverts commit 8c33f51df406e1a1f7fa4e9b244845b7ebd61fa6.
+
+Conflicts:
+       drivers/acpi/pci_root.c
+
+This commit broke some pre-1.1 PCIe devices by leaving them with
+ASPM enabled.  Previously, we had disabled ASPM on these devices
+because many of them don't implement it correctly (per 149e1637).
+
+Requesting _OSC control early means that aspm_disabled may be set
+before we scan the PCI bus and configure link ASPM state.  But the
+ASPM configuration currently skips the check for pre-PCIe 1.1 devices
+when aspm_disabled is set, like this:
+
+    acpi_pci_root_add
+      acpi_pci_osc_support
+        if (flags != base_flags)
+          pcie_no_aspm
+            aspm_disabled = 1
+      pci_acpi_scan_root
+        ...
+          pcie_aspm_init_link_state
+            pcie_aspm_sanity_check
+              if (!aspm_disabled)
+                /* check for pre-PCIe 1.1 device */
+
+Therefore, setting aspm_disabled early means that we leave ASPM enabled
+on these pre-PCIe 1.1 devices, which is a regression for some devices.
+
+The best fix would be to clean up the ASPM init so we can evaluate
+_OSC before scanning the bug (that way boot-time and hot-add discovery
+will work the same), but that requires significant rework.
+
+For now, we'll just revert the _OSC change as the lowest-risk fix.
+
+Reference: https://bugzilla.kernel.org/show_bug.cgi?id=55211
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Acked-by: Yinghai Lu <yinghai@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ drivers/acpi/pci_root.c |  121 +++++++++++++++++++++++-------------------------
+ 1 file changed, 59 insertions(+), 62 deletions(-)
+
+--- a/drivers/acpi/pci_root.c
++++ b/drivers/acpi/pci_root.c
+@@ -454,7 +454,6 @@ static int acpi_pci_root_add(struct acpi
+       acpi_handle handle;
+       struct acpi_device *child;
+       u32 flags, base_flags;
+-      bool is_osc_granted = false;
+       root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
+       if (!root)
+@@ -525,60 +524,6 @@ static int acpi_pci_root_add(struct acpi
+       flags = base_flags = OSC_PCI_SEGMENT_GROUPS_SUPPORT;
+       acpi_pci_osc_support(root, flags);
+-      /* Indicate support for various _OSC capabilities. */
+-      if (pci_ext_cfg_avail())
+-              flags |= OSC_EXT_PCI_CONFIG_SUPPORT;
+-      if (pcie_aspm_support_enabled()) {
+-              flags |= OSC_ACTIVE_STATE_PWR_SUPPORT |
+-              OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
+-      }
+-      if (pci_msi_enabled())
+-              flags |= OSC_MSI_SUPPORT;
+-      if (flags != base_flags) {
+-              status = acpi_pci_osc_support(root, flags);
+-              if (ACPI_FAILURE(status)) {
+-                      dev_info(&device->dev, "ACPI _OSC support "
+-                              "notification failed, disabling PCIe ASPM\n");
+-                      pcie_no_aspm();
+-                      flags = base_flags;
+-              }
+-      }
+-      if (!pcie_ports_disabled
+-          && (flags & ACPI_PCIE_REQ_SUPPORT) == ACPI_PCIE_REQ_SUPPORT) {
+-              flags = OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
+-                      | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
+-                      | OSC_PCI_EXPRESS_PME_CONTROL;
+-
+-              if (pci_aer_available()) {
+-                      if (aer_acpi_firmware_first())
+-                              dev_dbg(&device->dev,
+-                                      "PCIe errors handled by BIOS.\n");
+-                      else
+-                              flags |= OSC_PCI_EXPRESS_AER_CONTROL;
+-              }
+-
+-              dev_info(&device->dev,
+-                      "Requesting ACPI _OSC control (0x%02x)\n", flags);
+-
+-              status = acpi_pci_osc_control_set(device->handle, &flags,
+-                                     OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL);
+-              if (ACPI_SUCCESS(status)) {
+-                      is_osc_granted = true;
+-                      dev_info(&device->dev,
+-                              "ACPI _OSC control (0x%02x) granted\n", flags);
+-              } else {
+-                      is_osc_granted = false;
+-                      dev_info(&device->dev,
+-                              "ACPI _OSC request failed (%s), "
+-                              "returned control mask: 0x%02x\n",
+-                              acpi_format_exception(status), flags);
+-              }
+-      } else {
+-              dev_info(&device->dev,
+-                      "Unable to request _OSC control "
+-                      "(_OSC support mask: 0x%02x)\n", flags);
+-      }
+-
+       /*
+        * TBD: Need PCI interface for enumeration/configuration of roots.
+        */
+@@ -618,14 +563,66 @@ static int acpi_pci_root_add(struct acpi
+       list_for_each_entry(child, &device->children, node)
+               acpi_pci_bridge_scan(child);
+-      /* ASPM setting */
+-      if (is_osc_granted) {
+-              if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM)
+-                      pcie_clear_aspm(root->bus);
++      /* Indicate support for various _OSC capabilities. */
++      if (pci_ext_cfg_avail())
++              flags |= OSC_EXT_PCI_CONFIG_SUPPORT;
++      if (pcie_aspm_support_enabled())
++              flags |= OSC_ACTIVE_STATE_PWR_SUPPORT |
++                      OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
++      if (pci_msi_enabled())
++              flags |= OSC_MSI_SUPPORT;
++      if (flags != base_flags) {
++              status = acpi_pci_osc_support(root, flags);
++              if (ACPI_FAILURE(status)) {
++                      dev_info(root->bus->bridge, "ACPI _OSC support "
++                              "notification failed, disabling PCIe ASPM\n");
++                      pcie_no_aspm();
++                      flags = base_flags;
++              }
++      }
++
++      if (!pcie_ports_disabled
++          && (flags & ACPI_PCIE_REQ_SUPPORT) == ACPI_PCIE_REQ_SUPPORT) {
++              flags = OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
++                      | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
++                      | OSC_PCI_EXPRESS_PME_CONTROL;
++
++              if (pci_aer_available()) {
++                      if (aer_acpi_firmware_first())
++                              dev_dbg(root->bus->bridge,
++                                      "PCIe errors handled by BIOS.\n");
++                      else
++                              flags |= OSC_PCI_EXPRESS_AER_CONTROL;
++              }
++
++              dev_info(root->bus->bridge,
++                      "Requesting ACPI _OSC control (0x%02x)\n", flags);
++
++              status = acpi_pci_osc_control_set(device->handle, &flags,
++                                      OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL);
++              if (ACPI_SUCCESS(status)) {
++                      dev_info(root->bus->bridge,
++                              "ACPI _OSC control (0x%02x) granted\n", flags);
++                      if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM) {
++                              /*
++                               * We have ASPM control, but the FADT indicates
++                               * that it's unsupported. Clear it.
++                               */
++                              pcie_clear_aspm(root->bus);
++                      }
++              } else {
++                      dev_info(root->bus->bridge,
++                              "ACPI _OSC request failed (%s), "
++                              "returned control mask: 0x%02x\n",
++                              acpi_format_exception(status), flags);
++                      pr_info("ACPI _OSC control for PCIe not granted, "
++                              "disabling ASPM\n");
++                      pcie_no_aspm();
++              }
+       } else {
+-              pr_info("ACPI _OSC control for PCIe not granted, "
+-                      "disabling ASPM\n");
+-              pcie_no_aspm();
++              dev_info(root->bus->bridge,
++                       "Unable to request _OSC control "
++                       "(_OSC support mask: 0x%02x)\n", flags);
+       }
+       pci_acpi_add_bus_pm_notifier(device, root->bus);
index d26afae0f055b2ba782cc48ecd50f0a9a8ada030..f76e454671295f0fa79f3a2d2659a21bad664d12 100644 (file)
@@ -46,3 +46,13 @@ block-avoid-using-uninitialized-value-in-from-queue_var_store.patch
 sunrpc-remove-extra-xprt_put.patch
 nfsv4-fix-a-memory-leak-in-nfs4_discover_server_trunking.patch
 nfsv4-4.1-fix-bugs-in-nfs4_walk_client_list.patch
+drm-i915-fix-build-failure.patch
+x86-fix-rebuild-with-efi_stub-enabled.patch
+revert-pci-acpi-request-_osc-control-before-scanning-pci-root-bus.patch
+thermal-return-an-error-on-failure-to-register-thermal-class.patch
+msi-wmi-fix-memory-leak.patch
+cpufreq-exynos-get-booting-freq-value-in-exynos_cpufreq_init.patch
+arm-exynos-fix-crash-on-soft-reset-on-exynos5440.patch
+drm-i915-add-quirk-to-invert-brightness-on-emachines-g725.patch
+drm-i915-add-quirk-to-invert-brightness-on-emachines-e725.patch
+drm-i915-add-quirk-to-invert-brightness-on-packard-bell-ncl20.patch
diff --git a/queue-3.8/thermal-return-an-error-on-failure-to-register-thermal-class.patch b/queue-3.8/thermal-return-an-error-on-failure-to-register-thermal-class.patch
new file mode 100644 (file)
index 0000000..b1a332b
--- /dev/null
@@ -0,0 +1,36 @@
+From da28d966f6aa942ae836d09729f76a1647932309 Mon Sep 17 00:00:00 2001
+From: Richard Guy Briggs <rbriggs@redhat.com>
+Date: Tue, 12 Feb 2013 19:39:44 +0000
+Subject: thermal: return an error on failure to register thermal class
+
+From: Richard Guy Briggs <rbriggs@redhat.com>
+
+commit da28d966f6aa942ae836d09729f76a1647932309 upstream.
+
+The return code from the registration of the thermal class is used to
+unallocate resources, but this failure isn't passed back to the caller of
+thermal_init.  Return this failure back to the caller.
+
+This bug was introduced in changeset 4cb18728 which overwrote the return code
+when the variable was re-used to catch the return code of the registration of
+the genetlink thermal socket family.
+
+Signed-off-by: Richard Guy Briggs <rbriggs@redhat.com>
+Signed-off-by: Zhang Rui <rui.zhang@intel.com>
+Cc: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/thermal/thermal_sys.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/thermal/thermal_sys.c
++++ b/drivers/thermal/thermal_sys.c
+@@ -1807,6 +1807,7 @@ static int __init thermal_init(void)
+               idr_destroy(&thermal_cdev_idr);
+               mutex_destroy(&thermal_idr_lock);
+               mutex_destroy(&thermal_list_lock);
++              return result;
+       }
+       result = genetlink_init();
+       return result;
diff --git a/queue-3.8/x86-fix-rebuild-with-efi_stub-enabled.patch b/queue-3.8/x86-fix-rebuild-with-efi_stub-enabled.patch
new file mode 100644 (file)
index 0000000..eecd673
--- /dev/null
@@ -0,0 +1,63 @@
+From 918708245e92941df16a634dc201b407d12bcd91 Mon Sep 17 00:00:00 2001
+From: Jan Beulich <JBeulich@suse.com>
+Date: Wed, 3 Apr 2013 15:47:33 +0100
+Subject: x86: Fix rebuild with EFI_STUB enabled
+
+From: Jan Beulich <JBeulich@suse.com>
+
+commit 918708245e92941df16a634dc201b407d12bcd91 upstream.
+
+eboot.o and efi_stub_$(BITS).o didn't get added to "targets", and hence
+their .cmd files don't get included by the build machinery, leading to
+the files always getting rebuilt.
+
+Rather than adding the two files individually, take the opportunity and
+add $(VMLINUX_OBJS) to "targets" instead, thus allowing the assignment
+at the top of the file to be shrunk quite a bit.
+
+At the same time, remove a pointless flags override line - the variable
+assigned to was misspelled anyway, and the options added are
+meaningless for assembly sources.
+
+[ hpa: the patch is not minimal, but I am taking it for -urgent anyway
+  since the excess impact of the patch seems to be small enough. ]
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Link: http://lkml.kernel.org/r/515C5D2502000078000CA6AD@nat28.tlf.novell.com
+Cc: Matthew Garrett <mjg@redhat.com>
+Cc: Matt Fleming <matt.fleming@intel.com>
+Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/boot/compressed/Makefile |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/boot/compressed/Makefile
++++ b/arch/x86/boot/compressed/Makefile
+@@ -4,7 +4,7 @@
+ # create a compressed vmlinux image from the original vmlinux
+ #
+-targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o
++targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo
+ KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
+ KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
+@@ -29,7 +29,6 @@ VMLINUX_OBJS = $(obj)/vmlinux.lds $(obj)
+       $(obj)/piggy.o
+ $(obj)/eboot.o: KBUILD_CFLAGS += -fshort-wchar -mno-red-zone
+-$(obj)/efi_stub_$(BITS).o: KBUILD_CLFAGS += -fshort-wchar -mno-red-zone
+ ifeq ($(CONFIG_EFI_STUB), y)
+       VMLINUX_OBJS += $(obj)/eboot.o $(obj)/efi_stub_$(BITS).o
+@@ -43,7 +42,7 @@ OBJCOPYFLAGS_vmlinux.bin :=  -R .comment
+ $(obj)/vmlinux.bin: vmlinux FORCE
+       $(call if_changed,objcopy)
+-targets += vmlinux.bin.all vmlinux.relocs
++targets += $(patsubst $(obj)/%,%,$(VMLINUX_OBJS)) vmlinux.bin.all vmlinux.relocs
+ CMD_RELOCS = arch/x86/tools/relocs
+ quiet_cmd_relocs = RELOCS  $@