Commit fcdec143 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'acpi-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull more ACPI updates from Rafael Wysocki:
 "These fix two regressions introduced during the 5.0 cycle, in ACPICA
  and in device PM, cause the values returned by _ADR to be stored in 64
  bits and fix two ACPI documentation issues.

  Specifics:

   - Update the ACPICA code in the kernel to upstream revision 20190509
     including one regression fix:
       * Prevent excessive ACPI debug messages from being printed by
         moving the ACPI_DEBUG_DEFAULT definition to the right place
         (Erik Schmauss).

   - Set the enable_for_wake bits for wakeup GPEs during suspend to idle
     to allow acpi_enable_all_wakeup_gpes() to enable them as
     aproppriate and make wakeup devices sighaling events through ACPI
     GPEs work with suspend-to-idle again (Rajat Jain).

   - Use 64 bits to store the return values of _ADR which are assumed to
     be 64-bit by some bus specs and may contain nonzero bits in the
     upper 32 bits part for some devices (Pierre-Louis Bossart).

   - Fix two minor issues with the ACPI documentation (Sakari Ailus)"

* tag 'acpi-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle
  Documentation: ACPI: Direct references are allowed to devices only
  Documentation: ACPI: Use tabs for graph ASL indentation
  ACPICA: Update version to 20190509
  ACPICA: Linux: move ACPI_DEBUG_DEFAULT flag out of ifndef
  ACPI: bus: change _ADR representation to 64 bits
parents bfbfbf73 e3e28670
...@@ -45,8 +45,8 @@ the ANOD object which is also the final target node of the reference. ...@@ -45,8 +45,8 @@ the ANOD object which is also the final target node of the reference.
Name (_DSD, Package () { Name (_DSD, Package () {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "node@0", NOD0 }, Package () { "node@0", "NOD0" },
Package () { "node@1", NOD1 }, Package () { "node@1", "NOD1" },
} }
}) })
Name (NOD0, Package() { Name (NOD0, Package() {
...@@ -58,7 +58,7 @@ the ANOD object which is also the final target node of the reference. ...@@ -58,7 +58,7 @@ the ANOD object which is also the final target node of the reference.
Name (NOD1, Package() { Name (NOD1, Package() {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "anothernode", ANOD }, Package () { "anothernode", "ANOD" },
} }
}) })
Name (ANOD, Package() { Name (ANOD, Package() {
......
...@@ -45,7 +45,7 @@ with "port" and must be followed by the "@" character and the number of the ...@@ -45,7 +45,7 @@ with "port" and must be followed by the "@" character and the number of the
port as its key. The target object it refers to should be called "PRTX", where port as its key. The target object it refers to should be called "PRTX", where
"X" is the number of the port. An example of such a package would be:: "X" is the number of the port. An example of such a package would be::
Package() { "port@4", PRT4 } Package() { "port@4", "PRT4" }
Further on, endpoints are located under the port nodes. The hierarchical Further on, endpoints are located under the port nodes. The hierarchical
data extension key of the endpoint nodes must begin with data extension key of the endpoint nodes must begin with
...@@ -54,7 +54,7 @@ endpoint. The object it refers to should be called "EPXY", where "X" is the ...@@ -54,7 +54,7 @@ endpoint. The object it refers to should be called "EPXY", where "X" is the
number of the port and "Y" is the number of the endpoint. An example of such a number of the port and "Y" is the number of the endpoint. An example of such a
package would be:: package would be::
Package() { "endpoint@0", EP40 } Package() { "endpoint@0", "EP40" }
Each port node contains a property extension key "port", the value of which is Each port node contains a property extension key "port", the value of which is
the number of the port. Each endpoint is similarly numbered with a property the number of the port. Each endpoint is similarly numbered with a property
...@@ -91,7 +91,7 @@ A simple example of this is show below:: ...@@ -91,7 +91,7 @@ A simple example of this is show below::
}, },
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "port@0", PRT0 }, Package () { "port@0", "PRT0" },
} }
}) })
Name (PRT0, Package() { Name (PRT0, Package() {
...@@ -101,7 +101,7 @@ A simple example of this is show below:: ...@@ -101,7 +101,7 @@ A simple example of this is show below::
}, },
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "endpoint@0", EP00 }, Package () { "endpoint@0", "EP00" },
} }
}) })
Name (EP00, Package() { Name (EP00, Package() {
...@@ -121,7 +121,7 @@ A simple example of this is show below:: ...@@ -121,7 +121,7 @@ A simple example of this is show below::
Name (_DSD, Package () { Name (_DSD, Package () {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "port@4", PRT4 }, Package () { "port@4", "PRT4" },
} }
}) })
...@@ -132,7 +132,7 @@ A simple example of this is show below:: ...@@ -132,7 +132,7 @@ A simple example of this is show below::
}, },
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () { Package () {
Package () { "endpoint@0", EP40 }, Package () { "endpoint@0", "EP40" },
} }
}) })
......
...@@ -428,8 +428,10 @@ static ssize_t acpi_device_adr_show(struct device *dev, ...@@ -428,8 +428,10 @@ static ssize_t acpi_device_adr_show(struct device *dev,
{ {
struct acpi_device *acpi_dev = to_acpi_device(dev); struct acpi_device *acpi_dev = to_acpi_device(dev);
return sprintf(buf, "0x%08x\n", if (acpi_dev->pnp.bus_address > U32_MAX)
(unsigned int)(acpi_dev->pnp.bus_address)); return sprintf(buf, "0x%016llx\n", acpi_dev->pnp.bus_address);
else
return sprintf(buf, "0x%08llx\n", acpi_dev->pnp.bus_address);
} }
static DEVICE_ATTR(adr, 0444, acpi_device_adr_show, NULL); static DEVICE_ATTR(adr, 0444, acpi_device_adr_show, NULL);
......
...@@ -977,6 +977,8 @@ static int acpi_s2idle_prepare(void) ...@@ -977,6 +977,8 @@ static int acpi_s2idle_prepare(void)
if (acpi_sci_irq_valid()) if (acpi_sci_irq_valid())
enable_irq_wake(acpi_sci_irq); enable_irq_wake(acpi_sci_irq);
acpi_enable_wakeup_devices(ACPI_STATE_S0);
/* Change the configuration of GPEs to avoid spurious wakeup. */ /* Change the configuration of GPEs to avoid spurious wakeup. */
acpi_enable_all_wakeup_gpes(); acpi_enable_all_wakeup_gpes();
acpi_os_wait_events_complete(); acpi_os_wait_events_complete();
...@@ -1027,6 +1029,8 @@ static void acpi_s2idle_restore(void) ...@@ -1027,6 +1029,8 @@ static void acpi_s2idle_restore(void)
{ {
acpi_enable_all_runtime_gpes(); acpi_enable_all_runtime_gpes();
acpi_disable_wakeup_devices(ACPI_STATE_S0);
if (acpi_sci_irq_valid()) if (acpi_sci_irq_valid())
disable_irq_wake(acpi_sci_irq); disable_irq_wake(acpi_sci_irq);
......
...@@ -230,7 +230,7 @@ struct acpi_device_dir { ...@@ -230,7 +230,7 @@ struct acpi_device_dir {
/* Plug and Play */ /* Plug and Play */
typedef char acpi_bus_id[8]; typedef char acpi_bus_id[8];
typedef unsigned long acpi_bus_address; typedef u64 acpi_bus_address;
typedef char acpi_device_name[40]; typedef char acpi_device_name[40];
typedef char acpi_device_class[20]; typedef char acpi_device_class[20];
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */ /* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20190405 #define ACPI_CA_VERSION 0x20190509
#include <acpi/acconfig.h> #include <acpi/acconfig.h>
#include <acpi/actypes.h> #include <acpi/actypes.h>
......
...@@ -66,6 +66,11 @@ ...@@ -66,6 +66,11 @@
#define ACPI_INIT_FUNCTION __init #define ACPI_INIT_FUNCTION __init
/* Use a specific bugging default separate from ACPICA */
#undef ACPI_DEBUG_DEFAULT
#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO | ACPI_LV_REPAIR)
#ifndef CONFIG_ACPI #ifndef CONFIG_ACPI
/* External globals for __KERNEL__, stubs is needed */ /* External globals for __KERNEL__, stubs is needed */
...@@ -82,11 +87,6 @@ ...@@ -82,11 +87,6 @@
#define ACPI_NO_ERROR_MESSAGES #define ACPI_NO_ERROR_MESSAGES
#undef ACPI_DEBUG_OUTPUT #undef ACPI_DEBUG_OUTPUT
/* Use a specific bugging default separate from ACPICA */
#undef ACPI_DEBUG_DEFAULT
#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO | ACPI_LV_REPAIR)
/* External interface for __KERNEL__, stub is needed */ /* External interface for __KERNEL__, stub is needed */
#define ACPI_EXTERNAL_RETURN_STATUS(prototype) \ #define ACPI_EXTERNAL_RETURN_STATUS(prototype) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment