ACPI / LPSS: Add support for exposing LTR registers to user space
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 6 Mar 2013 22:46:28 +0000 (23:46 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 21 Mar 2013 21:45:15 +0000 (22:45 +0100)
commit2e0f8822d1a6d839e66786e99ce1043e4ad1cd72
treee5e9a7cc54d25d8041d79a62fb8832a294c3f0c7
parentf58b082aed43400c03e53beacc50a9f9eb23ac91
ACPI / LPSS: Add support for exposing LTR registers to user space

Devices on the Intel Lynxpoint Low Power Subsystem (LPSS) have
registers providing access to LTR (Latency Tolerance Reporting)
functionality that allows software to monitor and possibly influence
the aggressiveness of the platform's active-state power management.

For each LPSS device, there are two modes of operation related to LTR,
the auto mode and the software mode.  In the auto mode the LTR is
set up by the platform firmware and managed by hardware.  Software
can only read the LTR register values to monitor the platform's
behavior.  In the software mode it is possible to use LTR to control
the extent to which the platform will use its built-in power
management features.

This changeset adds support for reading the LPSS devices' LTR
registers and exposing their values to user space for monitoring and
diagnostics purposes.  It re-uses the MMIO mappings created to access
the LPSS devices' clock registers for reading the values of the LTR
registers and exposes them to user space through sysfs device
attributes.  Namely, a new atrribute group, lpss_ltr, is created for
each LPSS device.  It contains three new attributes: ltr_mode,
auto_ltr, sw_ltr.  The value of the ltr_mode attribute reflects the
LTR mode being used at the moment (software vs auto) and the other
two contain the actual register values (raw) whose meaning depends
on the LTR mode.  All of these attributes are read-only.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/ABI/testing/sysfs-devices-lpss_ltr [new file with mode: 0644]
drivers/acpi/acpi_lpss.c