Linux 2.6.38.3
This commit is contained in:
parent
894d7acd63
commit
1e374f7f2b
|
@ -1,69 +0,0 @@
|
|||
From bea96046b4245e9abd65ed7acfed9adfd5f6c639 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Thu, 3 Mar 2011 23:43:02 +0000
|
||||
Subject: [PATCH] drm/i915: Gen4+ has non-power-of-two strides
|
||||
|
||||
In c2e0eb16707, we started checking that the buffer was the correct size
|
||||
for tiled access by ensuring that the size was a multiple of tiles.
|
||||
However, gen4+ complicates the issue by allowing any multiple of 4096
|
||||
bytes for the stride and so the simple check based on a power-of-two
|
||||
stride was failing for valid bo.
|
||||
|
||||
Reported-by: Dan Williams <dcbw@redhat.com>
|
||||
Reported-by: Robert Hooker <sarvatt@gmail.com>
|
||||
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_gem_tiling.c | 29 ++++++++++++++---------------
|
||||
1 files changed, 14 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
|
||||
index 79a04fd..654f350 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
|
||||
@@ -215,6 +215,19 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
|
||||
}
|
||||
}
|
||||
|
||||
+ if (INTEL_INFO(dev)->gen >= 4) {
|
||||
+ /* 965+ just needs multiples of tile width */
|
||||
+ if (stride & (tile_width - 1))
|
||||
+ return false;
|
||||
+ } else {
|
||||
+ /* Pre-965 needs power of two tile widths */
|
||||
+ if (stride < tile_width)
|
||||
+ return false;
|
||||
+
|
||||
+ if (stride & (stride - 1))
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if (IS_GEN2(dev) ||
|
||||
(tiling_mode == I915_TILING_Y && HAS_128_BYTE_Y_TILING(dev)))
|
||||
tile_height = 32;
|
||||
@@ -226,21 +239,7 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
|
||||
tile_height *= 2;
|
||||
|
||||
/* Size needs to be aligned to a full tile row */
|
||||
- if (size & (tile_height * stride - 1))
|
||||
- return false;
|
||||
-
|
||||
- /* 965+ just needs multiples of tile width */
|
||||
- if (INTEL_INFO(dev)->gen >= 4) {
|
||||
- if (stride & (tile_width - 1))
|
||||
- return false;
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
- /* Pre-965 needs power of two tile widths */
|
||||
- if (stride < tile_width)
|
||||
- return false;
|
||||
-
|
||||
- if (stride & (stride - 1))
|
||||
+ if (size % (tile_height * stride))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
--
|
||||
1.7.4.1
|
||||
|
25
kernel.spec
25
kernel.spec
|
@ -51,7 +51,7 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be prepended with "0.", so
|
||||
# for example a 3 here will become 0.3
|
||||
#
|
||||
%global baserelease 15
|
||||
%global baserelease 16
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
|
@ -65,7 +65,7 @@ Summary: The Linux kernel
|
|||
# Do we have a -stable update to apply?
|
||||
%define stable_update 3
|
||||
# Is it a -stable RC?
|
||||
%define stable_rc 1
|
||||
%define stable_rc 0
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev .%{stable_update}
|
||||
|
@ -619,8 +619,6 @@ Patch30: linux-2.6-tracehook.patch
|
|||
Patch31: linux-2.6-utrace.patch
|
||||
Patch32: linux-2.6-utrace-ptrace.patch
|
||||
|
||||
Patch60: linux-2.6-x86-fix-mtrr-resume.patch
|
||||
|
||||
Patch150: linux-2.6.29-sparc-IOC_TYPECHECK.patch
|
||||
Patch151: sparc64_fix_build_errors_with_gcc460.patch
|
||||
|
||||
|
@ -682,7 +680,6 @@ Patch1824: drm-intel-next.patch
|
|||
# make sure the lvds comes back on lid open
|
||||
Patch1825: drm-intel-make-lvds-work.patch
|
||||
Patch1826: drm-intel-edp-fixes.patch
|
||||
Patch1827: drm-i915-gen4-has-non-power-of-two-strides.patch
|
||||
Patch1828: drm-intel-eeebox-eb1007-quirk.patch
|
||||
|
||||
Patch1900: linux-2.6-intel-iommu-igfx.patch
|
||||
|
@ -729,8 +726,6 @@ Patch12200: acpi_reboot.patch
|
|||
# Runtime power management
|
||||
Patch12203: linux-2.6-usb-pci-autosuspend.patch
|
||||
Patch12204: linux-2.6-enable-more-pci-autosuspend.patch
|
||||
Patch12205: runtime_pm_fixups.patch
|
||||
Patch12206: pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch
|
||||
Patch12207: pci-pcie-links-may-not-get-configured-for-aspm-under-powersave-mode.patch
|
||||
|
||||
Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
||||
|
@ -1187,7 +1182,6 @@ ApplyPatch linux-2.6-utrace-ptrace.patch
|
|||
|
||||
# Architecture patches
|
||||
# x86(-64)
|
||||
#ApplyPatch linux-2.6-x86-fix-mtrr-resume.patch
|
||||
|
||||
#
|
||||
# Intel IOMMU
|
||||
|
@ -1249,8 +1243,6 @@ ApplyPatch linux-2.6-defaults-pci_no_msi.patch
|
|||
ApplyPatch linux-2.6-defaults-pci_use_crs.patch
|
||||
# enable ASPM by default on hardware we expect to work
|
||||
ApplyPatch linux-2.6-defaults-aspm.patch
|
||||
# rhbz #683156
|
||||
#ApplyPatch pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch
|
||||
#
|
||||
ApplyPatch pci-pcie-links-may-not-get-configured-for-aspm-under-powersave-mode.patch
|
||||
|
||||
|
@ -1319,9 +1311,6 @@ ApplyPatch drm-intel-make-lvds-work.patch
|
|||
ApplyPatch linux-2.6-intel-iommu-igfx.patch
|
||||
ApplyPatch drm-intel-edp-fixes.patch
|
||||
ApplyPatch drm-i915-fix-pipelined-fencing.patch
|
||||
# rhbz#681285 (i965: crash in brw_wm_surface_state.c::prepare_wm_surfaces()
|
||||
# where intelObj->mt == NULL)
|
||||
#ApplyPatch drm-i915-gen4-has-non-power-of-two-strides.patch
|
||||
ApplyPatch drm-intel-eeebox-eb1007-quirk.patch
|
||||
|
||||
# linux1394 git patches
|
||||
|
@ -1365,7 +1354,6 @@ ApplyPatch acpi_reboot.patch
|
|||
#ApplyPatch linux-2.6-usb-pci-autosuspend.patch
|
||||
### Broken by implicit notify support & ACPICA rebase
|
||||
###ApplyPatch linux-2.6-enable-more-pci-autosuspend.patch
|
||||
#ApplyPatch runtime_pm_fixups.patch
|
||||
|
||||
# rhbz#605888
|
||||
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
||||
|
@ -1986,6 +1974,15 @@ fi
|
|||
# and build.
|
||||
|
||||
%changelog
|
||||
* Thu Apr 14 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38.3-16
|
||||
- Linux 2.6.38.3
|
||||
- Drop merged patches:
|
||||
linux-2.6-x86-fix-mtrr-resume.patch
|
||||
pci-acpi-report-aspm-support-to-bios-if-not-disabled-from-command-line.patch
|
||||
- Drop some obsolete patches:
|
||||
runtime_pm_fixups.patch
|
||||
drm-i915-gen4-has-non-power-of-two-strides.patch'
|
||||
|
||||
* Wed Apr 13 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38.3-15.rc1
|
||||
- Linux 2.6.38.3-rc1
|
||||
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
From 84ac7cdbdd0f04df6b96153f7a79127fd6e45467 Mon Sep 17 00:00:00 2001
|
||||
From: Suresh Siddha <suresh.b.siddha@intel.com>
|
||||
Date: Tue, 29 Mar 2011 15:38:12 -0700
|
||||
Subject: [PATCH] x86, mtrr, pat: Fix one cpu getting out of sync during resume
|
||||
|
||||
On laptops with core i5/i7, there were reports that after resume
|
||||
graphics workloads were performing poorly on a specific AP, while
|
||||
the other cpu's were ok. This was observed on a 32bit kernel
|
||||
specifically.
|
||||
|
||||
Debug showed that the PAT init was not happening on that AP
|
||||
during resume and hence it contributing to the poor workload
|
||||
performance on that cpu.
|
||||
|
||||
On this system, resume flow looked like this:
|
||||
|
||||
1. BP starts the resume sequence and we reinit BP's MTRR's/PAT
|
||||
early on using mtrr_bp_restore()
|
||||
|
||||
2. Resume sequence brings all AP's online
|
||||
|
||||
3. Resume sequence now kicks off the MTRR reinit on all the AP's.
|
||||
|
||||
4. For some reason, between point 2 and 3, we moved from BP
|
||||
to one of the AP's. My guess is that printk() during resume
|
||||
sequence is contributing to this. We don't see similar
|
||||
behavior with the 64bit kernel but there is no guarantee that
|
||||
at this point the remaining resume sequence (after AP's bringup)
|
||||
has to happen on BP.
|
||||
|
||||
5. set_mtrr() was assuming that we are still on BP and skipped the
|
||||
MTRR/PAT init on that cpu (because of 1 above)
|
||||
|
||||
6. But we were on an AP and this led to not reprogramming PAT
|
||||
on this cpu leading to bad performance.
|
||||
|
||||
Fix this by doing unconditional mtrr_if->set_all() in set_mtrr()
|
||||
during MTRR/PAT init. This might be unnecessary if we are still
|
||||
running on BP. But it is of no harm and will guarantee that after
|
||||
resume, all the cpu's will be in sync with respect to the
|
||||
MTRR/PAT registers.
|
||||
|
||||
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
|
||||
LKML-Reference: <1301438292-28370-1-git-send-email-eric@anholt.net>
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
Tested-by: Keith Packard <keithp@keithp.com>
|
||||
Cc: stable@kernel.org [v2.6.32+]
|
||||
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
||||
---
|
||||
arch/x86/kernel/cpu/mtrr/main.c | 20 +++++++++++++++-----
|
||||
1 files changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
|
||||
index 307dfbb..929739a 100644
|
||||
--- a/arch/x86/kernel/cpu/mtrr/main.c
|
||||
+++ b/arch/x86/kernel/cpu/mtrr/main.c
|
||||
@@ -293,14 +293,24 @@ set_mtrr(unsigned int reg, unsigned long base, unsigned long size, mtrr_type typ
|
||||
|
||||
/*
|
||||
* HACK!
|
||||
- * We use this same function to initialize the mtrrs on boot.
|
||||
- * The state of the boot cpu's mtrrs has been saved, and we want
|
||||
- * to replicate across all the APs.
|
||||
- * If we're doing that @reg is set to something special...
|
||||
+ *
|
||||
+ * We use this same function to initialize the mtrrs during boot,
|
||||
+ * resume, runtime cpu online and on an explicit request to set a
|
||||
+ * specific MTRR.
|
||||
+ *
|
||||
+ * During boot or suspend, the state of the boot cpu's mtrrs has been
|
||||
+ * saved, and we want to replicate that across all the cpus that come
|
||||
+ * online (either at the end of boot or resume or during a runtime cpu
|
||||
+ * online). If we're doing that, @reg is set to something special and on
|
||||
+ * this cpu we still do mtrr_if->set_all(). During boot/resume, this
|
||||
+ * is unnecessary if at this point we are still on the cpu that started
|
||||
+ * the boot/resume sequence. But there is no guarantee that we are still
|
||||
+ * on the same cpu. So we do mtrr_if->set_all() on this cpu aswell to be
|
||||
+ * sure that we are in sync with everyone else.
|
||||
*/
|
||||
if (reg != ~0U)
|
||||
mtrr_if->set(reg, base, size, type);
|
||||
- else if (!mtrr_aps_delayed_init)
|
||||
+ else
|
||||
mtrr_if->set_all();
|
||||
|
||||
/* Wait for the others */
|
||||
--
|
||||
1.7.4.2
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
From: Rafael J. Wysocki <rjw@sisk.pl>
|
||||
Date: Sat, 5 Mar 2011 12:21:51 +0000 (+0100)
|
||||
Subject: PCI/ACPI: Report ASPM support to BIOS if not disabled from command line
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=8b8bae901ce23addbdcdb54fa1696fb2d049feb5
|
||||
|
||||
PCI/ACPI: Report ASPM support to BIOS if not disabled from command line
|
||||
|
||||
We need to distinguish the situation in which ASPM support is
|
||||
disabled from the command line or through .config from the situation
|
||||
in which it is disabled, because the hardware or BIOS can't handle
|
||||
it. In the former case we should not report ASPM support to the BIOS
|
||||
through ACPI _OSC, but in the latter case we should do that.
|
||||
|
||||
Introduce pcie_aspm_support_enabled() that can be used by
|
||||
acpi_pci_root_add() to determine whether or not it should report ASPM
|
||||
support to the BIOS through _OSC.
|
||||
|
||||
Cc: stable@kernel.org
|
||||
References: https://bugzilla.kernel.org/show_bug.cgi?id=29722
|
||||
References: https://bugzilla.kernel.org/show_bug.cgi?id=20232
|
||||
Reported-and-tested-by: Ortwin Glück <odi@odi.ch>
|
||||
Reviewed-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
|
||||
Tested-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
|
||||
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
|
||||
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
|
||||
---
|
||||
|
||||
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
|
||||
index 8524939..c7358dd 100644
|
||||
--- a/drivers/acpi/pci_root.c
|
||||
+++ b/drivers/acpi/pci_root.c
|
||||
@@ -564,7 +564,7 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
|
||||
/* Indicate support for various _OSC capabilities. */
|
||||
if (pci_ext_cfg_avail(root->bus->self))
|
||||
flags |= OSC_EXT_PCI_CONFIG_SUPPORT;
|
||||
- if (pcie_aspm_enabled())
|
||||
+ if (pcie_aspm_support_enabled())
|
||||
flags |= OSC_ACTIVE_STATE_PWR_SUPPORT |
|
||||
OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
|
||||
if (pci_msi_enabled())
|
||||
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
|
||||
index 3188cd9..bbdb4fd 100644
|
||||
--- a/drivers/pci/pcie/aspm.c
|
||||
+++ b/drivers/pci/pcie/aspm.c
|
||||
@@ -69,6 +69,7 @@ struct pcie_link_state {
|
||||
};
|
||||
|
||||
static int aspm_disabled, aspm_force, aspm_clear_state;
|
||||
+static bool aspm_support_enabled = true;
|
||||
static DEFINE_MUTEX(aspm_lock);
|
||||
static LIST_HEAD(link_list);
|
||||
|
||||
@@ -896,6 +897,7 @@ static int __init pcie_aspm_disable(char *str)
|
||||
{
|
||||
if (!strcmp(str, "off")) {
|
||||
aspm_disabled = 1;
|
||||
+ aspm_support_enabled = false;
|
||||
printk(KERN_INFO "PCIe ASPM is disabled\n");
|
||||
} else if (!strcmp(str, "force")) {
|
||||
aspm_force = 1;
|
||||
@@ -930,3 +932,8 @@ int pcie_aspm_enabled(void)
|
||||
}
|
||||
EXPORT_SYMBOL(pcie_aspm_enabled);
|
||||
|
||||
+bool pcie_aspm_support_enabled(void)
|
||||
+{
|
||||
+ return aspm_support_enabled;
|
||||
+}
|
||||
+EXPORT_SYMBOL(pcie_aspm_support_enabled);
|
||||
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
||||
index 16c9f2e..96f70d7 100644
|
||||
--- a/include/linux/pci.h
|
||||
+++ b/include/linux/pci.h
|
||||
@@ -1002,12 +1002,11 @@ extern bool pcie_ports_auto;
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_PCIEASPM
|
||||
-static inline int pcie_aspm_enabled(void)
|
||||
-{
|
||||
- return 0;
|
||||
-}
|
||||
+static inline int pcie_aspm_enabled(void) { return 0; }
|
||||
+static inline bool pcie_aspm_support_enabled(void) { return false; }
|
||||
#else
|
||||
extern int pcie_aspm_enabled(void);
|
||||
+extern bool pcie_aspm_support_enabled(void);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PCIEAER
|
|
@ -1,138 +0,0 @@
|
|||
From 141d0d01ab292d4ea3a6d5e96b4048e10e68c1d3 Mon Sep 17 00:00:00 2001
|
||||
From: Kyle McMartin <kyle@mcmartin.ca>
|
||||
Date: Mon, 24 Jan 2011 13:01:57 -0500
|
||||
Subject: [PATCH] runtime_pm_fixups
|
||||
|
||||
---
|
||||
drivers/acpi/bus.c | 3 ++-
|
||||
drivers/acpi/pci_bind.c | 6 ++++++
|
||||
drivers/acpi/power.c | 5 ++++-
|
||||
drivers/acpi/sleep.c | 2 +-
|
||||
drivers/acpi/wakeup.c | 2 +-
|
||||
drivers/pci/pci-acpi.c | 2 +-
|
||||
include/acpi/acpi_bus.h | 2 +-
|
||||
7 files changed, 16 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
|
||||
index 7ced61f..e4e0114 100644
|
||||
--- a/drivers/acpi/bus.c
|
||||
+++ b/drivers/acpi/bus.c
|
||||
@@ -256,7 +256,8 @@ static int __acpi_bus_set_power(struct acpi_device *device, int state)
|
||||
* a lower-powered state.
|
||||
*/
|
||||
if (state < device->power.state) {
|
||||
- if (device->power.flags.power_resources) {
|
||||
+ if (device->power.flags.power_resources &&
|
||||
+ !device->wakeup.run_wake_count) {
|
||||
result = acpi_power_transition(device, state);
|
||||
if (result)
|
||||
goto end;
|
||||
diff --git a/drivers/acpi/pci_bind.c b/drivers/acpi/pci_bind.c
|
||||
index 2ef0409..4b0bb68 100644
|
||||
--- a/drivers/acpi/pci_bind.c
|
||||
+++ b/drivers/acpi/pci_bind.c
|
||||
@@ -32,6 +32,8 @@
|
||||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
|
||||
+#include "internal.h"
|
||||
+
|
||||
#define _COMPONENT ACPI_PCI_COMPONENT
|
||||
ACPI_MODULE_NAME("pci_bind");
|
||||
|
||||
@@ -65,6 +67,7 @@ static int acpi_pci_bind(struct acpi_device *device)
|
||||
acpi_handle handle;
|
||||
struct pci_bus *bus;
|
||||
struct pci_dev *dev;
|
||||
+ int state;
|
||||
|
||||
dev = acpi_get_pci_dev(device->handle);
|
||||
if (!dev)
|
||||
@@ -87,6 +90,9 @@ static int acpi_pci_bind(struct acpi_device *device)
|
||||
device->ops.unbind = acpi_pci_unbind;
|
||||
}
|
||||
|
||||
+ acpi_power_get_inferred_state(device, &state);
|
||||
+ acpi_power_transition(device, state);
|
||||
+
|
||||
/*
|
||||
* Evaluate and parse _PRT, if exists. This code allows parsing of
|
||||
* _PRT objects within the scope of non-bridge devices. Note that
|
||||
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
|
||||
index 9ac2a9f..cd6a8df 100644
|
||||
--- a/drivers/acpi/power.c
|
||||
+++ b/drivers/acpi/power.c
|
||||
@@ -412,7 +412,7 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_state)
|
||||
* State Wake) for the device, if present
|
||||
* 2. Shutdown down the power resources
|
||||
*/
|
||||
-int acpi_disable_wakeup_device_power(struct acpi_device *dev)
|
||||
+int acpi_disable_wakeup_device_power(struct acpi_device *dev, int sleep_state)
|
||||
{
|
||||
int i, err = 0;
|
||||
|
||||
@@ -435,6 +435,9 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev)
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
+ if (sleep_state == ACPI_STATE_S0)
|
||||
+ goto out;
|
||||
+
|
||||
/* Close power resource */
|
||||
for (i = 0; i < dev->wakeup.resources.count; i++) {
|
||||
int ret = acpi_power_off(dev->wakeup.resources.handles[i]);
|
||||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
|
||||
index d6a8cd1..5d68dc0 100644
|
||||
--- a/drivers/acpi/sleep.c
|
||||
+++ b/drivers/acpi/sleep.c
|
||||
@@ -697,7 +697,7 @@ int acpi_pm_device_sleep_wake(struct device *dev, bool enable)
|
||||
|
||||
error = enable ?
|
||||
acpi_enable_wakeup_device_power(adev, acpi_target_sleep_state) :
|
||||
- acpi_disable_wakeup_device_power(adev);
|
||||
+ acpi_disable_wakeup_device_power(adev, acpi_target_sleep_state);
|
||||
if (!error)
|
||||
dev_info(dev, "wake-up capability %s by ACPI\n",
|
||||
enable ? "enabled" : "disabled");
|
||||
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
|
||||
index ed65014..a0cabc3 100644
|
||||
--- a/drivers/acpi/wakeup.c
|
||||
+++ b/drivers/acpi/wakeup.c
|
||||
@@ -73,7 +73,7 @@ void acpi_disable_wakeup_devices(u8 sleep_state)
|
||||
ACPI_GPE_DISABLE);
|
||||
|
||||
if (device_may_wakeup(&dev->dev))
|
||||
- acpi_disable_wakeup_device_power(dev);
|
||||
+ acpi_disable_wakeup_device_power(dev, sleep_state);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
|
||||
index 6fe0772..819fa7a 100644
|
||||
--- a/drivers/pci/pci-acpi.c
|
||||
+++ b/drivers/pci/pci-acpi.c
|
||||
@@ -302,7 +302,7 @@ static int acpi_dev_run_wake(struct device *phys_dev, bool enable)
|
||||
if (!--dev->wakeup.run_wake_count) {
|
||||
acpi_disable_gpe(dev->wakeup.gpe_device,
|
||||
dev->wakeup.gpe_number);
|
||||
- acpi_disable_wakeup_device_power(dev);
|
||||
+ acpi_disable_wakeup_device_power(dev, ACPI_STATE_S0);
|
||||
}
|
||||
} else {
|
||||
error = -EALREADY;
|
||||
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
|
||||
index 78ca429..92d6e86 100644
|
||||
--- a/include/acpi/acpi_bus.h
|
||||
+++ b/include/acpi/acpi_bus.h
|
||||
@@ -379,7 +379,7 @@ struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
|
||||
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
|
||||
|
||||
int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
|
||||
-int acpi_disable_wakeup_device_power(struct acpi_device *dev);
|
||||
+int acpi_disable_wakeup_device_power(struct acpi_device *dev, int state);
|
||||
|
||||
#ifdef CONFIG_PM_OPS
|
||||
int acpi_pm_device_sleep_state(struct device *, int *);
|
||||
--
|
||||
1.7.3.5
|
||||
|
Loading…
Reference in New Issue