[GIT] ACPI patches for 2.6.38-merge

From: Len Brown
Date: Thu Jan 13 2011 - 22:51:17 EST


Hi Linus,

please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git release

AML can now talk to IPMI (some power meters use this)
Thermal sub-system can now send events to user-space (MRST uses this)
Progress deleting some crufty ACPI /procfs code, more is planned.
Rafael has been giving the wakeup events, GPE's and NVS lots of TLC.
ACPICA update is largely to sync with Rafael's Linux updates.
APEI update uses just printk for kernel/user interface:-)

This will update the files shown below.

thanks!

Len Brown
Intel Open Source Technology Center


ps. individual patches are available on linux-acpi@xxxxxxxxxxxxxxx
and a consolidated plain patch is available here:
http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/2.6.37/acpi-release-20101209-2.6.37.diff.gz

Documentation/ABI/stable/thermal-notification | 4 +
Documentation/IPMI.txt | 27 +
Documentation/acpi/apei/output_format.txt | 122 +++++
Documentation/feature-removal-schedule.txt | 11 +
Documentation/kernel-parameters.txt | 5 -
Documentation/thermal/sysfs-api.txt | 12 +
arch/ia64/include/asm/io.h | 5 +
arch/x86/kernel/acpi/boot.c | 1 +
arch/x86/kernel/dumpstack.c | 1 +
arch/x86/kernel/e820.c | 1 +
drivers/acpi/Kconfig | 18 +-
drivers/acpi/Makefile | 3 +-
drivers/acpi/ac.c | 3 +-
drivers/acpi/acpi_ipmi.c | 525 +++++++++++++++++++
drivers/acpi/acpica/Makefile | 2 +-
drivers/acpi/acpica/acevents.h | 21 +-
drivers/acpi/acpica/acglobal.h | 7 +-
drivers/acpi/acpica/achware.h | 2 +-
drivers/acpi/acpica/aclocal.h | 13 +-
drivers/acpi/acpica/evevent.c | 12 +-
drivers/acpi/acpica/evgpe.c | 265 +++++++----
drivers/acpi/acpica/evgpeblk.c | 33 +-
drivers/acpi/acpica/evgpeinit.c | 25 +-
drivers/acpi/acpica/evgpeutil.c | 39 ++
drivers/acpi/acpica/evmisc.c | 94 ++--
drivers/acpi/acpica/evxface.c | 77 +++-
drivers/acpi/acpica/evxfevnt.c | 600 ----------------------
drivers/acpi/acpica/evxfgpe.c | 669 +++++++++++++++++++++++++
drivers/acpi/acpica/hwgpe.c | 32 +-
drivers/acpi/acpica/utglobal.c | 3 +-
drivers/acpi/apei/apei-internal.h | 2 +
drivers/acpi/apei/cper.c | 311 ++++++++++++
drivers/acpi/apei/ghes.c | 431 +++++++++++++----
drivers/acpi/battery.c | 16 +
drivers/acpi/bus.c | 153 +++---
drivers/acpi/button.c | 9 +-
drivers/acpi/dock.c | 2 +-
drivers/acpi/ec.c | 5 +-
drivers/acpi/fan.c | 27 +-
drivers/acpi/glue.c | 5 +-
drivers/acpi/internal.h | 13 +-
{kernel/power => drivers/acpi}/nvs.c | 20 +-
drivers/acpi/osl.c | 17 +-
drivers/acpi/power.c | 128 +++--
drivers/acpi/proc.c | 41 +--
drivers/acpi/processor_driver.c | 80 +---
drivers/acpi/processor_throttling.c | 190 +++-----
drivers/acpi/sbs.c | 2 +
drivers/acpi/scan.c | 70 ++-
drivers/acpi/sleep.c | 13 +-
drivers/acpi/sysfs.c | 19 +-
drivers/acpi/thermal.c | 5 +-
drivers/acpi/video.c | 104 +----
drivers/acpi/video_detect.c | 57 +--
drivers/acpi/wakeup.c | 22 +-
drivers/char/ipmi/ipmi_msghandler.c | 27 +
drivers/char/ipmi/ipmi_si_intf.c | 23 +-
drivers/gpu/drm/Kconfig | 1 -
drivers/gpu/stub/Kconfig | 1 -
drivers/platform/x86/fujitsu-laptop.c | 4 +-
drivers/pnp/Makefile | 6 +-
drivers/pnp/core.c | 7 +-
drivers/pnp/driver.c | 7 +-
drivers/pnp/isapnp/Makefile | 6 +-
drivers/pnp/pnpacpi/Makefile | 3 +-
drivers/pnp/pnpacpi/core.c | 93 +++-
drivers/pnp/pnpbios/Makefile | 5 +-
drivers/thermal/Kconfig | 1 +
drivers/thermal/thermal_sys.c | 120 ++++-
include/acpi/acpi_bus.h | 12 +-
include/acpi/acpixf.h | 20 +-
include/acpi/actypes.h | 54 ++-
include/acpi/processor.h | 6 +
include/linux/acpi.h | 10 +
include/linux/cper.h | 86 +++-
include/linux/ipmi.h | 38 ++
include/linux/ipmi_smi.h | 8 +
include/linux/suspend.h | 17 -
include/linux/thermal.h | 47 ++-
kernel/panic.c | 1 +
kernel/power/Kconfig | 5 -
kernel/power/Makefile | 1 -
lib/ioremap.c | 2 +
mm/vmalloc.c | 1 +
84 files changed, 3374 insertions(+), 1612 deletions(-)
create mode 100644 Documentation/ABI/stable/thermal-notification
create mode 100644 Documentation/acpi/apei/output_format.txt
create mode 100644 drivers/acpi/acpi_ipmi.c
create mode 100644 drivers/acpi/acpica/evxfgpe.c
rename {kernel/power => drivers/acpi}/nvs.c (86%)

through these commits:

Alan Cox (1):
thermal: make ops constant

Huang Ying (4):
Add CPER PCIe error section structure and constants definition
ACPI, APEI, Add APEI generic error status printing support
ACPI, APEI, Report GHES error information via printk
ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support

Jiri Slaby (1):
PM: Fix oops in suspend/hibernate code related to failing ioremap()

Len Brown (1):
ACPI: Use ioremap_cache()

Lin Ming (9):
ACPICA: Move GPE functions to new file evxfgpe.c
ACPICA: Rename some function and variable names
ACPICA: New GPE handler callback definition
ACPICA: Remove unused function declarations
ACPICA: Fix local variable mess in acpi_ev_asynch_execute_gpe_method
ACPICA: Implicit notify support
ACPICA: Global event handler
ACPICA: Misc comments to minimize code divergence
ACPICA: Update version to 20101209

R.Durgadoss (1):
thermal: Add event notification to thermal framework

Rafael J. Wysocki (28):
PM / ACPI: Move NVS saving and restoring code to drivers/acpi
ACPI / PM: Update file information and the list of includes in nvs.c
ACPI / PM: Make suspend_nvs_save() use acpi_os_map_memory()
ACPI / ACPICA: Fix global lock acquisition
ACPI / PM: Do not enable multiple devices to wake up simultaneously
ACPI / PM: Use device wakeup flags for handling ACPI wakeup devices
ACPI / PM: Drop special ACPI wakeup flags
ACPI / PM: Report wakeup events from buttons
ACPI / PM: Blacklist Averatec machine known to require acpi_sleep=nonvs
PNP / ACPI: Use DEVICE_ACPI_HANDLE() for device ACPI handle access
ACPI / PM: Prevent acpi_power_get_inferred_state() from making changes
ACPI / PM: Add functions for manipulating lists of power resources
ACPI / PM: Introduce function for refcounting device power resources
ACPI / PM: Introduce __acpi_bus_get_power()
ACPI / PM: Add function for device power state initialization
ACPI / PM: Add function for updating device power state consistently
ACPI / PM: Register acpi_power_driver early
ACPI / PM: Register power resource devices as soon as they are needed
ACPI / Fan: Rework the handling of power resources
Platform / x86: Make fujitsu_laptop use acpi_bus_update_power()
ACPI / PM: Drop acpi_bus_get_power()
ACPI / PM: Drop acpi_power_nocheck
ACPI / PM: Rename acpi_power_off_device()
ACPI / PM: Check status of power resources under mutexes
ACPI: Always check if _PRW is present before trying to evaluate it
ACPI: Drop device flag wake_capable
ACPI / Battery: Update information on info notification and resume
ACPI / PM: Fix build problems for !CONFIG_ACPI related to NVS rework

Thomas Renninger (3):
PNP: Compile all pnp built-in stuff in one module namespace
PNP: Set up pnp_debug via module and not via boot param.
ACPI: fix resource check message

Zhang Rui (6):
ACPI processor: remove processor throttling control procfs I/F
ACPI video: remove output switching control
ACPI video: check cap._DDC flag before getting EDID
ACPI video: introduce module parameter video.use_bios_initial_backlight
ACPI: update CONFIG_ACPI_PROCFS description
ACPI: delete CONFIG_ACPI_PROCFS_POWER and power procfs I/F in 2.6.39

Zhao Yakui (5):
IPMI: Add one interface to get more info of low-level IPMI device
IPMI: Add the document description of ipmi_get_smi_info
IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller
ACPI: Check the returned value of set_cpus_allowed_ptr before T-state operation
ACPI: Reevaluate whether the T-state is supported or not after cpu is online/offline

with this log:

commit 4263d9a3ae4d15785897d0543bb59316c84ee605
Merge: eab001b 6fed05c
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 16:11:46 2011 -0500

Merge branch 'suspend-ioremap-cache' into release

commit 6fed05c9c9812b5882bc708f4da4fa8d5df2875c
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Wed Jan 12 22:03:20 2011 +0100

ACPI / PM: Fix build problems for !CONFIG_ACPI related to NVS rework

The recent rework of the NVS saving/restoring code introduced two
build issues for !CONFIG_ACPI, a warning in drivers/acpi/internal.h
and an error in arch/x86/kernel/e820.c.

Fix them by providing suitable static inline definitions of the
relevant functions.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Acked-by: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit eab001bf88f68653e87a7d90124a2241131dbeda
Merge: 156d821 106d1a0
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 12:16:14 2011 -0500

Merge branch 'misc' into test

commit 106d1a0ab2a354b97df3e232be7dedbfaf8e901d
Author: Thomas Renninger <trenn@xxxxxxx>
Date: Mon Dec 20 12:11:45 2010 +0100

ACPI: fix resource check message

printk("%pR",...)
is for formatting struct resource only.
But the list built up in drivers/acpi/osl.c uses it's own struct:
struct acpi_res_list {}

Without this patch you can see wrongly formatted resources (SMRG is of IO type):

ACPI: resource 0000:00:1f.3 [io 0x0400-0x041f] conflicts with AC
PI region SMRG [mem 0x00000400-0x0000040f 64bit pref disabled]

https://bugzilla.kernel.org/show_bug.cgi?id=26342

Signed-off-by: Thomas Renninger <trenn@xxxxxxx>
CC: Matthew Wilcox <matthew@xxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 156d821270e131dee7d89fc4aa385f0f9b1900ea
Merge: 3e09898 5b275ce
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:14:15 2011 -0500

Merge branch 'misc' into release

commit 3e098984073795bff5e5e3edbc1f5b0514c47c92
Merge: da8aeb9 99fd189
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:09:35 2011 -0500

Merge branch 'bugzilla-21212' into release

commit da8aeb92d4853f37e281f11fddf61f9c7d84c3cd
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:42:27 2011 +0100

ACPI / Battery: Update information on info notification and resume

A notification event 0x81 from an ACPI battery device requires us to
re-read the battery information structure. Follow this requirement
and remove and re-create the battery's attibutes in sysfs so that
they reflect the reporting units used by the battery at the moment
(those units may actually change sometimes at run time, which happens
on some Thinkpads).

The approach used in this patch was suggested by Matthew Garrett.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Reported-by: Matthew Garrett <mjg@xxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit d57d09a480e1db38eeee7629c81289b00f338a15
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:41:27 2011 +0100

ACPI: Drop device flag wake_capable

The wake_capable ACPI device flag is not necessary, because it is
only used in scan.c for recording the information that _PRW is
present for the given device. That information is only used by
acpi_add_single_object() to decide whether or not to call
acpi_bus_get_wakeup_device_flags(), so the flag may be dropped
if the _PRW check is moved to acpi_bus_get_wakeup_device_flags().
Moreover, acpi_bus_get_wakeup_device_flags() always returns 0,
so it really should be void.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 86e4e20e8a5301ff7104a4f40f35fd5bee408186
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:40:00 2011 +0100

ACPI: Always check if _PRW is present before trying to evaluate it

Before evaluating _PRW for devices that are reported as inactive or
not present by their _STA control methods we should check if those
methods are actually present (otherwise the evaulation of _PRW will
obviously fail and a scary message will be printed unnecessarily).

Reported-by: Andreas Mohr <andi@xxxxxxxx>
Reported-by: Maciej Rutecki <maciej.rutecki@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit d0515d9fec68bace144fda57a69f4268fb875209
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:38:57 2011 +0100

ACPI / PM: Check status of power resources under mutexes

It certainly is not a good idea to execute _ON or _OFF and _STA
for the same power resource at the same time which may happen in
some circumstances in theory. To prevent that from happening,
read the power state of each power resource under its mutex, as
that will prevent the state from being changed at the same time.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 36237fa0a711c309a38d7a7a9aed727e0eb76449
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:38:04 2011 +0100

ACPI / PM: Rename acpi_power_off_device()

Rename acpi_power_off_device() to acpi_power_off() in analogy with
acpi_power_on().

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 63e8078a12ed287f40f39082ff87e8db6621dab9
Merge: 4b63bd3 4464ed3
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:03:39 2011 -0500

Merge branch 'kconfig-text' into release

commit 4b63bd35eb4e7959b0f7be17634689d34311524b
Merge: 03b6e6e e92b297
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:03:13 2011 -0500

Merge branch 'ipmi' into release

commit 03b6e6e58d9dd5f3068288653810db3c15fde929
Merge: 9e0c20b 81e88fd
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:02:22 2011 -0500

Merge branch 'apei' into release

commit 9e0c20bceb611917a7546172ac617d07e5af0cfa
Merge: fe3ded5 8206955
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:02:10 2011 -0500

Merge branch 'acpi-video' into release

commit fe3ded5078e957d80c43837e1966429cf0029c10
Merge: 77cff3b 5a344a5
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:01:08 2011 -0500

Merge branch 'throttling' into release

commit 77cff3b0d6349cc0212056238108b827b3cc353b
Merge: c1b2dab 4cb1872
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:00:44 2011 -0500

Merge branch 'thermal' into release

commit c1b2dab96f3c1cb051b85d82d7e70e12e9b930f2
Merge: 6d1f23f 6d855fc
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 05:00:07 2011 -0500

Merge branch 'procfs-cleanup' into release

commit 6d1f23f204c9e4638bd30ff3a768c47e40cd3ac0
Merge: 633379a cdefba0
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 04:59:44 2011 -0500

Merge branch 'pnp' into release

commit 633379a0f9f16362835d7a3fde141d3a95fd6c97
Merge: d16675e cc8e7a3
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 04:58:51 2011 -0500

Merge branch 'bugzilla-15100' into release

commit d16675e1f1de98cc73ae77c6df26154ffae6230a
Merge: fb4af41 6d5bbf0
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 04:56:08 2011 -0500

Merge branch 'suspend-ioremap-cache' into release

commit fb4af417cce9ff87abf33a6bb9a0cf613e285364
Merge: 07bf280 7b33070
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 04:55:46 2011 -0500

Merge branch 'wakeup-etc-rafael' into release

commit 07bf280521bb06bc8e64f0b998fc391253fcb959
Merge: 1ae5ec9 53eac70
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Jan 12 04:55:28 2011 -0500

Merge branch 'power-resource' into release

commit 53eac700b0df1fef8c957b9eedfd7f48120425e3
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Sat Dec 11 23:45:30 2010 +0100

ACPI / PM: Drop acpi_power_nocheck

Since acpi_bus_set_power() should not use __acpi_bus_get_power() to
update the device's device->power.state field before changing its
power state (this may cause device->power.state to be inconsistent
with the device power resources' reference counters), remove this
call from it. In consequence, the acpi_power_nocheck variable is not
necessary any more, so it can be dropped along with the DMI table
used for setting that variable for HP Pavilion 05.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit f6767dcf2a4f6e62960912d0affec1e15a246191
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Sat Dec 11 23:44:39 2010 +0100

ACPI / PM: Drop acpi_bus_get_power()

There are no more users of acpi_bus_get_power(), so it can be
dropped. Moreover, it should be dropped, because it modifies
the device->power.state field of an ACPI device without updating
the reference counters of the device's power resources, which is
wrong.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 40b7397579e006c0f9cf4de58e9ccc350e06308f
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Sat Dec 11 23:43:26 2010 +0100

Platform / x86: Make fujitsu_laptop use acpi_bus_update_power()

Use the new function acpi_bus_update_power(), which is safer than
acpi_bus_get_power(), for getting device power state in
acpi_fujitsu_add() and acpi_fujitsu_hotkey_add().

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Reported-and-Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 488a76c52606199100adf09c8eb7cbedbd94e9d9
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:11:24 2010 +0100

ACPI / Fan: Rework the handling of power resources

Use the new function acpi_bus_update_power() for manipulating power
resources used by ACPI fan devices, which allows them to be put into
the right state during initialization and resume. Consequently,
remove the flags.force_power_state field from struct acpi_device,
which is not necessary any more.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit bf325f9538d8c89312be305b9779edbcb436af00
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:10:44 2010 +0100

ACPI / PM: Register power resource devices as soon as they are needed

Depending on the organization of the ACPI namespace, power resource
device objects may generally be scanned after the "regular" device
objects that they are referred from through _PRn. This, in turn, may
cause acpi_bus_get_power_flags() to attempt to access them through
acpi_bus_init_power() before they are registered (and initialized by
acpi_power_driver). [This is not a theoretical issue, it actually
happens for one PnP device on my testbed HP nx6325.]

To fix this problem, make acpi_bus_get_power_flags() attempt to
register power resource devices as soon as they have been found in
the _PRn output for any other devices.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 97d9a9e9f5ee68f20005ca5aa77c6b684e7cace8
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:10:02 2010 +0100

ACPI / PM: Register acpi_power_driver early

The ACPI device driver used for handling power resources,
acpi_power_driver, creates a struct acpi_power_resource object for
each ACPI device representing a power resource. These objects are
then used when setting and reading the power states of devices using
the corresponding power resources. Unfortunately, acpi_power_driver
is registered after acpi_scan_init() that may add devices using the
power resources before acpi_power_driver has a chance to create
struct acpi_power_resource objects for them (specifically, the power
resources may be referred to during the scanning process through
acpi_bus_get_power() before they have been initialized).

As the first step towards fixing this issue, move the registration
of acpi_power_driver into acpi_scan_init() so that power resource
devices can be initialized by it as soon as they have been found in
the namespace.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 25eed40720fc9005c63a1f436e5f8a78836c26ff
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:09:15 2010 +0100

ACPI / PM: Add function for updating device power state consistently

Add function acpi_bus_update_power() for reading the actual power
state of an ACPI device and updating its device->power.state field
in such a way that its power resources' reference counters will
remain consistent with that field.

For this purpose introduce __acpi_bus_set_power() setting the
power state of an ACPI device without updating its
device->power.state field and make acpi_bus_set_power() and
acpi_bus_update_power() use it (acpi_bus_set_power() retains the
current behavior for now).

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit ade3e7fef794781c0798d0cf0f046123842ba550
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:08:36 2010 +0100

ACPI / PM: Add function for device power state initialization

Add function acpi_bus_init_power() for getting the initial power
state of an ACPI device and reference counting its power resources
as appropriate.

Make acpi_bus_get_power_flags() use the new function instead of
acpi_bus_get_power() that updates device->power.state without
reference counting the device's power resources.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 5e6d4fe4296782f1f095575b8213a97c3e925a16
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:07:56 2010 +0100

ACPI / PM: Introduce __acpi_bus_get_power()

It sometimes is necessary to get the power state of an ACPI device
without updating its device->power.state field, for example to
avoid inconsistencies between device->power.state and the reference
counters of the device's power resources. For this purpose introduce
__acpi_bus_get_power() that will return the given device's power
state via a pointer (instead of modifying device->power.state)
and make acpi_bus_get_power() use it.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 30d3df41b32b1ea63d3ebc52ef5644cbe41520f4
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:06:55 2010 +0100

ACPI / PM: Introduce function for refcounting device power resources

Introduce function acpi_power_on_resources() that reference counts
and possibly turns on ACPI power resources for a given device and
a given power state of it.

This function will be used for reference counting device power
resources during initialization.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit d2ef555b57292cd818934636ac8e3414cc2a6762
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:06:09 2010 +0100

ACPI / PM: Add functions for manipulating lists of power resources

ACPI device power resources should be reference counted during
device initialization, so that their reference counters are always
up to date. It is convenient to do that with the help of a function
that will reference count and possibly turn on power resources in
a given list, so introduce that function, acpi_power_on_list().
For symmetry, introduce acpi_power_off_list() for performing the
reverse operation and use the both of them to simplify
acpi_power_transition().

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 32a00d274e877eab3ea7ab196b75c9be5170d25e
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Nov 25 00:05:17 2010 +0100

ACPI / PM: Prevent acpi_power_get_inferred_state() from making changes

acpi_power_get_inferred_state() should not update
device->power.state behind the back of its caller, so make it return
the state via a pointer instead.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 1ae5ec903f71c0ffa583ec54d17415892036ee18
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 27 09:07:43 2010 +0800

ACPICA: Update version to 20101209

Version 20101209.

Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit da50337373c90c15c6db6ed4239e87c5a3806f9a
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:39:37 2010 +0800

ACPICA: Misc comments to minimize code divergence

Modify/add some comments to minimize ACPICA/linux GPE code divergence.

Acked-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit a0fcdb237fcd4eaa7e5009b28ef5be07415f287d
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:39:26 2010 +0800

ACPICA: Global event handler

The global event handler is called whenever a general purpose
or fixed ACPI event occurs.

Also update Linux OSL to collect events counter with
global event handler.

Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit bba63a296ffab20e08d9e8252d2f0d99050ac859
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:39:17 2010 +0800

ACPICA: Implicit notify support

This feature provides an automatic device notification for wake devices
when a wakeup GPE occurs and there is no corresponding GPE method or
handler. Rather than ignoring such a GPE, an implicit AML Notify
operation is performed on the parent device object.
This feature is not part of the ACPI specification and is provided for
Windows compatibility only.

Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 5a284cd75d635e3c5db0210dc9a9a44c6839f460
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:39:07 2010 +0800

ACPICA: Fix local variable mess in acpi_ev_asynch_execute_gpe_method

Change the local variable in acpi_ev_asynch_execute_gpe_method()
back into a pointer as ACPICA code base does.

Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 84f6b2a681cd2cc55ecc3fa94bfbe672d7ef4126
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:38:55 2010 +0800

ACPICA: Remove unused function declarations

Acked-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 8b6cd8ad18def34bfc5045b2a0234329bf94cf78
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:38:46 2010 +0800

ACPICA: New GPE handler callback definition

The new GPE handler callback has 2 additional parameters, gpe_device and
gpe_number.

typedef
u32 (*acpi_gpe_handler) (acpi_handle gpe_device, u32 gpe_number, void *context);

Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 3a37898d507794cfc68a092303e02651d3f01308
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:36:15 2010 +0800

ACPICA: Rename some function and variable names

Some function and variable names are renamed to be consistent with
ACPICA code base.

acpi_raw_enable_gpe -> acpi_ev_add_gpe_reference
acpi_raw_disable_gpe -> acpi_ev_remove_gpe_reference
acpi_gpe_can_wake -> acpi_setup_gpe_for_wake
acpi_gpe_wakeup -> acpi_set_gpe_wake_mask
acpi_update_gpes -> acpi_update_all_gpes
acpi_all_gpes_initialized -> acpi_gbl_all_gpes_initialized
acpi_handler_info -> acpi_gpe_handler_info
...

Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 3cfd53d53f700a225716294842b1a843326dea21
Author: Lin Ming <ming.m.lin@xxxxxxxxx>
Date: Mon Dec 13 13:36:02 2010 +0800

ACPICA: Move GPE functions to new file evxfgpe.c

Create a new file evxfgpe.c and move GPE specific functions to it.

Acked-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 81e88fdc432a1552401d6e91a984dcccce72b8dc
Author: Huang Ying <ying.huang@xxxxxxxxx>
Date: Wed Jan 12 14:44:55 2011 +0800

ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support

Generic Hardware Error Source provides a way to report platform
hardware errors (such as that from chipset). It works in so called
"Firmware First" mode, that is, hardware errors are reported to
firmware firstly, then reported to Linux by firmware. This way, some
non-standard hardware error registers or non-standard hardware link
can be checked by firmware to produce more valuable hardware error
information for Linux.

This patch adds POLL/IRQ/NMI notification types support.

Because the memory area used to transfer hardware error information
from BIOS to Linux can be determined only in NMI, IRQ or timer
handler, but general ioremap can not be used in atomic context, so a
special version of atomic ioremap is implemented for that.

Known issue:

- Error information can not be printed for recoverable errors notified
via NMI, because printk is not NMI-safe. Will fix this via delay
printing to IRQ context via irq_work or make printk NMI-safe.

v2:

- adjust printk format per comments.

Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx>
Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 6d855fcdd24d2491455527c4999b4d04363f1980
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Jan 10 11:16:30 2011 +0800

ACPI: delete CONFIG_ACPI_PROCFS_POWER and power procfs I/F in 2.6.39

sysfs I/F for ACPI power devices, including AC and Battery,
has been working in upstream kenrel since 2.6.24, Sep 2007.
In 2.6.37, we made the sysfs I/F always built in and this option
disabled by default.
Now, we plan to remove this option and the ACPI power procfs
interface in 2.6.39.

First, update the feature-removal-schedule to announce this change.
Second, add runtime warnings in ACPI AC/Battery/SBS driver, so that
users will notice this change even if "make oldconfig" is used.

Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 4464ed3b05de7a41ae55c74109cec8aeb138ce14
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Jan 10 11:16:26 2011 +0800

ACPI: update CONFIG_ACPI_PROCFS description

Update CONFIG_ACPI_PROCFS description because the processor,
video and thermal zone procfs I/F have been removed.

Some ACPI drivers, e.g. button, have their procfs I/F always built in,
because we don't have sysfs I/F replacement at the moment.
But once we finish developing the sysfs I/F for these driver,
we need CONFIG_ACPI_PROCFS to enabled/disable the corresponding procfs I/F.

So just updating the description rather than removing this option,
although there is no procfs I/F depends on it for now.

Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 4cb18728709683c91a5f6f8d5f337bfb498b089a
Author: R.Durgadoss <durgadoss.r@xxxxxxxxx>
Date: Wed Oct 27 03:33:29 2010 +0530

thermal: Add event notification to thermal framework

This patch adds event notification support to the generic
thermal sysfs framework in the kernel. The notification is in the
form of a netlink event.

Signed-off-by: R.Durgadoss <durgadoss.r@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit cc8e7a355c1ec64b06a5b8126c47c5cb47f44fce
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Mon Jan 10 21:23:16 2011 +0100

PNP / ACPI: Use DEVICE_ACPI_HANDLE() for device ACPI handle access

The PNP ACPI driver squirrels the ACPI handles of PNP devices' ACPI
companions, but this isn't correct, because those handles should be
accessed using the DEVICE_ACPI_HANDLE() macro operating on struct
device objects.

Using DEVICE_ACPI_HANDLE() in the PNP ACPI driver instead of the
driver's own copies of the ACPI handles allows us to avoid a problem
with docking stations where a machine docked before suspend to RAM
and undocked while suspended crashes during the subsequent resume (in
that case the ACPI companion of the PNP device in question doesn't
exist any more while the device is being resumed). It also allows us
to avoid the problem where suspend to RAM fails when the machine was
undocked while suspended before (again, the ACPI companion of the PNP
device is not present any more while it is being suspended).

This change doesn't fix all of the the PNP ACPI driver's problems
with PNP devices in docking stations (generally speaking, the driver
has no idea that devices can come and go and doesn't even attempt to
handle such events), but at least it makes suspend work for the
users of docking stations who don't use the PNP devices located in
there.

References: https://bugzilla.kernel.org/show_bug.cgi?id=15100

Reported-and-tested-by: Toralf Förster <toralf.foerster@xxxxxx>
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Acked-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 5a344a505093dd65f82f338ffdb7208321b3630e
Author: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Date: Mon Jan 10 16:35:45 2011 +0800

ACPI: Reevaluate whether the T-state is supported or not after cpu is online/offline

After one CPU is offlined, it is unnecessary to switch T-state for it.
So it will be better that the throttling is disabled after the cpu
is offline.
At the same time after one cpu is online, we should check whether
the T-state is supported and then set the corresponding T-state
flag.

Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit daef1f35ea1e2cca125eecd5f078f40b55eb9105
Author: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Date: Mon Jan 10 16:35:44 2011 +0800

ACPI: Check the returned value of set_cpus_allowed_ptr before T-state operation

Now before it executes the T-state operation on one CPU, it will try to
migrate to the target CPU. Especially this is required on the system that
uses the MSR_IA32_THERMAL_CONTROL register to switch T-state.
But unfortunately it doesn't check whether the migration is successful or not.
In such case we will get/set the incorrect T-state on the offline CPU as
it fails in the migration to the offline CPU.

Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 7b330707dddab1ad772898c1c82516342a551173
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:37:01 2011 +0100

ACPI / PM: Blacklist Averatec machine known to require acpi_sleep=nonvs

Apparently, Averatec AV1020-ED2 does not resume correctly without
acpi_sleep=nonvs, so add it to the ACPI sleep blacklist.

References: https://bugzilla.kernel.org/show_bug.cgi?id=16396#c86
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 1f83511bd8f44b8a9e2d82263b2c95f26a625fcc
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:36:01 2011 +0100

ACPI / PM: Report wakeup events from buttons

Since ACPI buttons and lids can be configured to wake up the system
from sleep states, report wakeup events from these devices.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 7fa69baf29de8c77a6b32c054df2abb8f11f8aa4
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:35:10 2011 +0100

ACPI / PM: Drop special ACPI wakeup flags

Drop special ACPI wakeup flags, wakeup.state.enabled and
wakeup.flags.always_enabled, that aren't necessary any more after
we've started to use standard device wakeup flags for handling ACPI
wakeup devices.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit f2b56bc808addb908a5bf435d9b942c02af9a7c4
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:34:22 2011 +0100

ACPI / PM: Use device wakeup flags for handling ACPI wakeup devices

There are ACPI devices (buttons and the laptop lid) that can wake up
the system from sleep states and have no "physical" companion
devices. The ACPI subsystem uses two flags, wakeup.state.enabled and
wakeup.flags.always_enabled, for handling those devices, but they
are not accessible through the standard device wakeup infrastructure.
User space can only control them via the /proc/acpi/wakeup interface
that is not really convenient (e.g. the way in which devices are
enabled to wake up the system is not portable between different
systems, because it requires one to know the devices' "names" used in
the system's ACPI tables).

To address this problem, use standard device wakeup flags instead of
the special ACPI flags for handling those devices. In particular,
use device_set_wakeup_capable() to mark the ACPI wakeup devices
during initialization and use device_set_wakeup_enable() to allow
or disallow them to wake up the system from sleep states. Rework
the /proc/acpi/wakeup interface to take these changes into account.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit b014f4f1aad3f25d5c7d877a394869645ea0c96b
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:33:30 2011 +0100

ACPI / PM: Do not enable multiple devices to wake up simultaneously

If a device is enabled to wake up the system from sleep states via
/proc/acpi/wakeup and there are other devices associated with the
same wakeup GPE, all of these devices are automatically enabled to
wake up the system. This isn't correct, because the fact the GPE is
shared need not imply that wakeup power has to be enabled for all the
devices at the same time (i.e. it is possible that one device will
have its wakeup power enabled and it will wake up the system from a
sleep state if the shared wakeup GPE is enabled, while another device
having its wakeup power disabled will not wake up the system even
though the GPE is enabled). Rework acpi_system_write_wakeup_device()
so that it only enables wakeup for one device at a time.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 9cd031441a4fd09273b7c2beb337d0b2683d104c
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Thu Jan 6 23:32:23 2011 +0100

ACPI / ACPICA: Fix global lock acquisition

There are two problems with the ACPICA's current implementation of
the global lock acquisition. First, acpi_ev_global_lock_handler(),
which in fact is an interface to the outside of the kernel, doesn't
validate its input, so it only works correctly if the other side
(i.e. the ACPI firmware) is fully specification-compliant (as far
as the global lock is concerned). Unfortunately, that's known not
to be the case on some systems (i.e. we get spurious global lock
signaling interrupts without the pending flag set on some systems).
Second, acpi_ev_global_lock_handler() attempts to acquire the global
lock on behalf of a thread waiting for it without checking if there
actually is such a thread. Both of these shortcomings need to be
addressed to prevent all possible race conditions from happening.

Rework acpi_ev_global_lock_handler() so that it doesn't try to
acquire the global lock and make it signal the availability of the
global lock to the waiting thread instead. Make sure that the
availability of the global lock can only be signaled when there
is a thread waiting for it and that it can't be signaled more than
once in a row (to keep acpi_gbl_global_lock_semaphore in balance).

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 6d5bbf00d251cc73223a71422d69e069dc2e0b8d
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Fri Jan 7 01:46:40 2011 +0100

ACPI: Use ioremap_cache()

Although the temporary boot-time ACPI table mappings
were set up with CPU caching enabled, the permanent table
mappings and AML run-time region memory accesses were
set up with ioremap(), which on x86 is a synonym for
ioremap_nocache().

Changing this to ioremap_cache() improves performance as
seen when accessing the tables via acpidump,
or /sys/firmware/acpi/tables. It should also improve
AML run-time performance.

No change on ia64.

Reported-by: Jack Steiner <steiner@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>

commit ca9b600be38c73b7d25acfb8b7e4e9a9e941d881
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Fri Jan 7 01:45:58 2011 +0100

ACPI / PM: Make suspend_nvs_save() use acpi_os_map_memory()

It turns out that the NVS memory region that suspend_nvs_save()
attempts to map has been already mapped by acpi_os_map_memory(), so
suspend_nvs_save() should better use acpi_os_map_memory() for mapping
memory to avoid conflicts.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit d146df18c13d16e321efa8ef9b57c95c3bec1722
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Fri Jan 7 01:44:28 2011 +0100

ACPI / PM: Update file information and the list of includes in nvs.c

The file information and the list of include in drivers/acpi/nvs.c
are outdated, so update them.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 976513dbfc1547c7b1822566923058655f0c32fd
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date: Fri Jan 7 01:43:44 2011 +0100

PM / ACPI: Move NVS saving and restoring code to drivers/acpi

The saving of the ACPI NVS area during hibernation and suspend and
restoring it during the subsequent resume is entirely specific to
ACPI, so move it to drivers/acpi and drop the CONFIG_SUSPEND_NVS
configuration option which is redundant.

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 26fcaf60fe3861409eb4c455c5c0d0f00f599b08
Author: Jiri Slaby <jslaby@xxxxxxx>
Date: Fri Jan 7 01:42:31 2011 +0100

PM: Fix oops in suspend/hibernate code related to failing ioremap()

When ioremap() fails (which might happen for some reason), we nicely
oops in suspend_nvs_save() due to NULL dereference by memcpy() in there.
Fail gracefully instead.

Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit e92b297cc72ade7a58eaec7e01c906d856f8ab6e
Author: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Date: Wed Dec 8 10:10:18 2010 +0800

IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller

ACPI 4.0 spec adds the ACPI IPMI opregion, which means that the ACPI AML
code can also communicate with the BMC controller. This is to install
the ACPI IPMI opregion and enable the ACPI to access the BMC controller
through the IPMI message.

It will create IPMI user interface for every IPMI device detected
in ACPI namespace and install the corresponding IPMI opregion space handler.
Then it can enable ACPI to access the BMC controller through the IPMI
message.

The following describes how to process the IPMI request in IPMI space handler:
1. format the IPMI message based on the request in AML code.
IPMI system address. Now the address type is SYSTEM_INTERFACE_ADDR_TYPE
IPMI net function & command
IPMI message payload
2. send the IPMI message by using the function of ipmi_request_settime
3. wait for the completion of IPMI message. It can be done in different
routes: One is in handled in IPMI user recv callback function. Another is
handled in timeout function.
4. format the IPMI response and return it to ACPI AML code.

At the same time it also addes the module dependency. The ACPI IPMI opregion
will depend on the IPMI subsystem.

Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
cc: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 37bf501bdda1d5d6ea73ce29d4b00d291b6f3811
Author: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Date: Wed Dec 8 10:10:17 2010 +0800

IPMI: Add the document description of ipmi_get_smi_info

Add the document description about how to use ipmi_get_smi_info.

Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 16f4232ce4d6855361b4eb56262f4a202295c978
Author: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Date: Wed Dec 8 10:10:16 2010 +0800

IPMI: Add one interface to get more info of low-level IPMI device

The IPMI smi_watcher will be used to catch the IPMI interface as they
come or go. In order to communicate with the correct IPMI device, it
should be confirmed whether it is what we wanted especially on the
system with multiple IPMI devices. But the new_smi callback function
of smi_watcher provides very limited info(only the interface number
and dev pointer) and there is no detailed info about the low level
interface. For example: which mechansim registers the IPMI
interface(ACPI, PCI, DMI and so on).

This is to add one interface that can get more info of low-level IPMI
device. For example: the ACPI device handle will be returned for the
pnp_acpi IPMI device.

Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 99fd1895ef603f1a0fa9af478c96c637a7b4529d
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Dec 6 15:04:27 2010 +0800

ACPI video: introduce module parameter video.use_bios_initial_backlight

Introduce module parameter video.use_bios_initial_backlight.

Some BIOSes claim they use the minimum backlight at boot,
and this may bring dimming screen after boot.
https://bugzilla.kernel.org/show_bug.cgi?id=21212

use video.use_bios_initl_backlight=0 to use
the maximum backlight level after boot.

Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 82069552555cf951d9ade5c1aec61dd40b0765b5
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Dec 6 15:04:24 2010 +0800

ACPI video: check cap._DDC flag before getting EDID

cap._DDC is defined but never used.
Check this flag now and don't try to get EDID for video output devices with this flag cleared.

Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 677bd810eedce61edf15452491781ff046b92edc
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Dec 6 15:04:21 2010 +0800

ACPI video: remove output switching control

Remove the ACPI video output switching control as it never works.

With the patch applied,
ACPI video driver still catches the video output notification,
but it does nothing but raises the notification to userspace.

Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit cef6e8a3790d6bdc305496629c357a56001d59a6
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Dec 6 15:04:15 2010 +0800

ACPI processor: remove processor throttling control procfs I/F

Remove deprecated ACPI process procfs I/F for throttling control.

This is because the t-state control should only be done in kernel,
when system is in a overheating state.

Now users can only change the processor t-state indirectly,
by poking the cooling device sysfs I/F of the processor.

Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 32c361f574f85fa47600d84900598e2efc99082e
Author: Huang Ying <ying.huang@xxxxxxxxx>
Date: Tue Dec 7 10:22:31 2010 +0800

ACPI, APEI, Report GHES error information via printk

printk is one of the methods to report hardware errors to user space.
This patch implements hardware error reporting for GHES via printk.

Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit f59c55d04b43bd72df8efa692dd07224fe94d1ac
Author: Huang Ying <ying.huang@xxxxxxxxx>
Date: Tue Dec 7 10:22:30 2010 +0800

ACPI, APEI, Add APEI generic error status printing support

In APEI, Hardware error information reported by firmware to Linux
kernel is in the data structure of APEI generic error status (struct
acpi_hes_generic_status). While now printk is used by Linux kernel to
report hardware error information to user space.

So, this patch adds printing support for the data structure, so that
the corresponding hardware error information can be reported to user
space via printk.

PCIe AER information printing is not implemented yet. Will refactor the
original PCIe AER information printing code to avoid code duplicating.

The output format is as follow:

<error record> :=
APEI generic hardware error status
severity: <integer>, <severity string>
section: <integer>, severity: <integer>, <severity string>
flags: <integer>
<section flags strings>
fru_id: <uuid string>
fru_text: <string>
section_type: <section type string>
<section data>

<severity string>* := recoverable | fatal | corrected | info

<section flags strings># :=
[primary][, containment warning][, reset][, threshold exceeded]\
[, resource not accessible][, latent error]

<section type string> := generic processor error | memory error | \
PCIe error | unknown, <uuid string>

<section data> :=
<generic processor section data> | <memory section data> | \
<pcie section data> | <null>

<generic processor section data> :=
[processor_type: <integer>, <proc type string>]
[processor_isa: <integer>, <proc isa string>]
[error_type: <integer>
<proc error type strings>]
[operation: <integer>, <proc operation string>]
[flags: <integer>
<proc flags strings>]
[level: <integer>]
[version_info: <integer>]
[processor_id: <integer>]
[target_address: <integer>]
[requestor_id: <integer>]
[responder_id: <integer>]
[IP: <integer>]

<proc type string>* := IA32/X64 | IA64

<proc isa string>* := IA32 | IA64 | X64

<processor error type strings># :=
[cache error][, TLB error][, bus error][, micro-architectural error]

<proc operation string>* := unknown or generic | data read | data write | \
instruction execution

<proc flags strings># :=
[restartable][, precise IP][, overflow][, corrected]

<memory section data> :=
[error_status: <integer>]
[physical_address: <integer>]
[physical_address_mask: <integer>]
[node: <integer>]
[card: <integer>]
[module: <integer>]
[bank: <integer>]
[device: <integer>]
[row: <integer>]
[column: <integer>]
[bit_position: <integer>]
[requestor_id: <integer>]
[responder_id: <integer>]
[target_id: <integer>]
[error_type: <integer>, <mem error type string>]

<mem error type string>* :=
unknown | no error | single-bit ECC | multi-bit ECC | \
single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
target abort | parity error | watchdog timeout | invalid address | \
mirror Broken | memory sparing | scrub corrected error | \
scrub uncorrected error

<pcie section data> :=
[port_type: <integer>, <pcie port type string>]
[version: <integer>.<integer>]
[command: <integer>, status: <integer>]
[device_id: <integer>:<integer>:<integer>.<integer>
slot: <integer>
secondary_bus: <integer>
vendor_id: <integer>, device_id: <integer>
class_code: <integer>]
[serial number: <integer>, <integer>]
[bridge: secondary_status: <integer>, control: <integer>]

<pcie port type string>* := PCIe end point | legacy PCI end point | \
unknown | unknown | root port | upstream switch port | \
downstream switch port | PCIe to PCI/PCI-X bridge | \
PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
root complex event collector

Where, [] designate corresponding content is optional

All <field string> description with * has the following format:

field: <integer>, <field string>

Where value of <integer> should be the position of "string" in <field
string> description. Otherwise, <field string> will be "unknown".

All <field strings> description with # has the following format:

field: <integer>
<field strings>

Where each string in <fields strings> corresponding to one set bit of
<integer>. The bit position is the position of "string" in <field
strings> description.

For more detailed explanation of every field, please refer to UEFI
specification version 2.3 or later, section Appendix N: Common
Platform Error Record.

Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit c9aa308fd5c373faeda588cfb02b04f116904613
Author: Huang Ying <ying.huang@xxxxxxxxx>
Date: Tue Dec 7 10:22:29 2010 +0800

Add CPER PCIe error section structure and constants definition

On some machine, PCIe error is reported via APEI (ACPI Platform Error
Interface). The error data is passed from firmware to Linux via CPER
PCIe error section structure.

This patch adds CPER PCIe error section structure and constants
definition.

Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 5b275ce27077d6463ca28c9671dce7c2c1f622e2
Author: Alan Cox <alan@xxxxxxxxxxxxxxx>
Date: Thu Nov 11 15:27:29 2010 +0000

thermal: make ops constant

And while touching that function definition do something about the disaster
of formatting there.

Signed-off-by: Alan Cox <alan@xxxxxxxxxxxxxxx>
Acked-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit cdefba03e44bd3b3311a3849a81ec7030dfa1519
Author: Thomas Renninger <trenn@xxxxxxx>
Date: Mon Oct 25 21:11:16 2010 +0200

PNP: Set up pnp_debug via module and not via boot param.

Cleanup only, no functional change (pnp.debug can be enabled
and disabled at runtime, but that's not a real enhancement).

This one depends on another PNP cleanup patch:
PNP: Compile all pnp built-in stuff in one module namespace

Signed-off-by: Thomas Renninger <trenn@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 803711afdbea5c6a6dd2b46eca76097f6d50fb53
Author: Thomas Renninger <trenn@xxxxxxx>
Date: Mon Oct 25 21:11:15 2010 +0200

PNP: Compile all pnp built-in stuff in one module namespace

This is cleanup mostly, nothing urgent.
I came up with it when looking at dynamic debug which can
enable pr_debug messages at runtime or boot param
for a specific module.

Advantages:
- Any pnp code can make use of the moduleparam.h interface, the modules
will show up as pnp.param.
- Passing pnp.ddebug as kernel boot param will enable all pnp debug messages
with my previous patch and CONFIG_DYNAMIC_DEBUG enabled.

Signed-off-by: Thomas Renninger <trenn@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>