linux/include/acpi
Srinivas Pandruvada eeb2d80d50 ACPI / LPIT: Add Low Power Idle Table (LPIT) support
Add functionality to read LPIT table, which provides:

 - Sysfs interface to read residency counters via
   /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
   /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us

Here the count "low_power_idle_cpu_residency_us" shows the time spent
by CPU package in low power state.  This is read via MSR interface,
which points to MSR for PKG C10.

Here the count "low_power_idle_system_residency_us" show the count the
system was in low power state. This is read via MMIO interface. This
is mapped to SLP_S0 residency on modern Intel systems. This residency
is achieved only when CPU is in PKG C10 and all functional blocks are
in low power state.

It is possible that none of the above counters present or anyone of the
counter present or all counters present.

For example: On my Kabylake system both of the above counters present.
After suspend to idle these counts updated and prints:

 6916179
 6998564

This counter can be read by tools like turbostat to display. Or it can
be used to debug, if modern systems are reaching desired low power state.

 - Provides an interface to read residency counter memory address

   This address can be used to get the base address of PMC memory
   mapped IO.  This is utilized by intel_pmc_core driver to print
   more debug information.

In addition, to avoid code duplication to read iomem, removed the read of
iomem from acpi_os_read_memory() in osl.c and made a common function
acpi_os_read_iomem(). This new function is used for reading iomem in
in both osl.c and acpi_lpit.c.

Link: http://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-10-11 15:38:10 +02:00
..
platform ACPICA: CLib: Add short multiply/shift support 2017-08-03 23:34:16 +02:00
acbuffer.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acconfig.h ACPICA: iasl: add ASL conversion tool 2017-04-28 21:56:10 +02:00
acexcep.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acnames.h ACPICA: Resources: Allow _DMA method in walk resources 2017-08-03 23:34:17 +02:00
acoutput.h ACPICA: Source tree: Update copyright notices to 2017 2017-02-09 14:47:02 +01:00
acpi_bus.h ACPI / bus: Make ACPI_HANDLE() work for non-GPL code again 2017-09-19 22:42:31 +02:00
acpi_drivers.h Revert "ACPI, PCI, IRQ: remove redundant code in acpi_irq_penalty_init()" 2016-07-02 01:38:34 +02:00
acpi_io.h ACPI / osl: Remove deprecated acpi_get_table_with_size()/early_acpi_os_unmap_memory() 2016-12-21 02:36:38 +01:00
acpi_lpat.h ACPI / LPAT: Common table processing functions 2015-01-29 21:02:10 +08:00
acpi_numa.h ACPI: NUMA: add missing include in acpi_numa.h 2017-07-24 22:27:43 +02:00
acpi.h ACPICA: EFI/EDK2: Sort acpi.h inclusion order 2017-08-03 23:34:16 +02:00
acpiosxf.h ACPI / LPIT: Add Low Power Idle Table (LPIT) support 2017-10-11 15:38:10 +02:00
acpixf.h ACPICA: Update version to 20170728 2017-08-03 23:34:18 +02:00
acrestyp.h ACPICA: Divergences: reduce access size definitions 2017-08-03 23:34:15 +02:00
actbl1.h ACPICA: Add support for new SRAT subtable 2017-06-12 14:58:38 +02:00
actbl2.h ACPICA: iASL: Add support for the SDEI table 2017-08-03 23:34:15 +02:00
actbl3.h ACPICA: Add support for new PCCT subtables 2017-06-12 14:58:39 +02:00
actbl.h ACPICA: Tables: Add deferred table verification support 2017-07-20 16:38:25 +02:00
actypes.h Merge branches 'acpi-scan' and 'acpi-pm' 2017-09-03 23:53:19 +02:00
acuuid.h ACPICA: Added two new UUID values 2017-06-12 14:50:34 +02:00
apei.h ACPI / APEI: Suppress message if HEST not present 2017-08-30 03:11:21 +02:00
button.h ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED() 2015-09-15 03:05:45 +02:00
cppc_acpi.h ACPI / CPPC: add sysfs entries for CPPC perf capabilities 2017-04-18 23:37:50 +02:00
ghes.h ACPI: APEI: fix the wrong iteration of generic error status block 2017-08-24 03:29:46 +02:00
hed.h ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
pcc.h mailbox: PCC: Fix return value of pcc_mbox_request_channel() 2016-10-17 14:26:49 +02:00
pdc_intel.h ACPI: Enable bit 11 in _PDC to advertise hw coord 2009-02-07 00:41:14 -05:00
processor.h ACPI / processor: Make acpi_processor_ppc_has_changed() void 2016-11-21 14:35:42 +01:00
reboot.h Add the ability to reset the machine using the RESET_REG in ACPI's FADT table. 2008-07-16 23:27:08 +02:00
video.h ACPI / video: Move ACPI_VIDEO_NOTIFY_* defines to acpi/video.h 2016-11-16 23:07:43 +01:00