linux_dsm_epyc7002/arch/powerpc/platforms/powernv
Shreyas B. Prabhu bcef83a00d powerpc/powernv: Add platform support for stop instruction
POWER ISA v3 defines a new idle processor core mechanism. In summary,
 a) new instruction named stop is added. This instruction replaces
	instructions like nap, sleep, rvwinkle.
 b) new per thread SPR named Processor Stop Status and Control Register
	(PSSCR) is added which controls the behavior of stop instruction.

PSSCR layout:
----------------------------------------------------------
| PLS | /// | SD | ESL | EC | PSLL | /// | TR | MTL | RL |
----------------------------------------------------------
0      4     41   42    43   44     48    54   56    60

PSSCR key fields:
	Bits 0:3  - Power-Saving Level Status. This field indicates the lowest
	power-saving state the thread entered since stop instruction was last
	executed.

	Bit 42 - Enable State Loss
	0 - No state is lost irrespective of other fields
	1 - Allows state loss

	Bits 44:47 - Power-Saving Level Limit
	This limits the power-saving level that can be entered into.

	Bits 60:63 - Requested Level
	Used to specify which power-saving level must be entered on executing
	stop instruction

This patch adds support for stop instruction and PSSCR handling.

Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: Shreyas B. Prabhu <shreyas@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-07-15 20:18:41 +10:00
..
eeh-powernv.c powerpc/powernv: Use PCI slot reset infrastructure 2016-06-21 15:30:57 +10:00
idle.c powerpc/powernv: Add platform support for stop instruction 2016-07-15 20:18:41 +10:00
Kconfig powerpc/powernv: Add opal-prd channel 2015-06-05 08:32:21 +10:00
Makefile powerpc/powernv: Split cxl code out into a separate file 2016-07-14 20:26:31 +10:00
npu-dma.c powerpc/powernv/npu: Enable NVLink pass through 2016-05-11 21:54:31 +10:00
opal-async.c powerpc/opal: Wake up kopald polling thread before waiting for events 2016-07-08 19:53:26 +10:00
opal-dump.c powernv/opal-dump: Convert to irq domain 2015-05-22 15:14:38 +10:00
opal-elog.c powerpc/powernv: Fix opal-elog interrupt handler 2015-07-06 20:24:36 +10:00
opal-flash.c powerpc/powernv: Add interfaces for flash device access 2015-04-11 20:49:21 +10:00
opal-hmi.c powerpc/powernv: Use the "unknown" checkstop type as a fallback 2016-04-11 20:30:40 +10:00
opal-irqchip.c powerpc/opal-irqchip: Fix deadlock introduced by "Fix double endian conversion" 2015-12-18 22:24:15 +11:00
opal-kmsg.c powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages 2016-01-13 12:35:17 +11:00
opal-lpc.c powerpc/powernv: Properly fix LPC debugfs endianness 2014-10-31 17:09:04 +11:00
opal-memory-errors.c powerpc/powernv: Fix spelling mistake "Retrived" -> "Retrieved" 2016-06-28 13:52:18 +10:00
opal-msglog.c powerpc/powernv: don't create OPAL msglog sysfs entry if memcons init fails 2016-02-22 20:31:55 +11:00
opal-nvram.c powerpc/powernv: Add pstore support on powernv 2015-03-23 14:06:10 +11:00
opal-power.c powerpc/powernv: Add poweroff (EPOW, DPO) events support for PowerNV platform 2015-07-16 13:34:36 +10:00
opal-prd.c powerpc/powernv: Drop owner assignment from platform_driver 2015-11-24 14:21:28 +11:00
opal-rtc.c powerpc/powernv: Only delay opal_rtc_read() retry when necessary 2015-12-27 19:12:40 +11:00
opal-sensor.c powerpc/opal: Add inline function to get rc from an ASYNC_COMP opal_msg 2016-06-29 17:33:18 +10:00
opal-sysparam.c powerpc/opal: Add inline function to get rc from an ASYNC_COMP opal_msg 2016-06-29 17:33:18 +10:00
opal-tracepoints.c powerpc: Introduce asm-prototypes.h 2016-06-16 22:39:54 +10:00
opal-wrappers.S powerpc/powernv: Add driver for operator panel on FSP machines 2016-06-29 17:33:46 +10:00
opal-xscom.c powerpc/powernv: remove FW_FEATURE_OPALv3 and just use FW_FEATURE_OPAL 2015-12-17 22:40:54 +11:00
opal.c powerpc/opal: Wake up kopald polling thread before waiting for events 2016-07-08 19:53:26 +10:00
pci-cxl.c cxl: Add support for interrupts on the Mellanox CX4 2016-07-14 20:27:08 +10:00
pci-ioda.c cxl: Add support for interrupts on the Mellanox CX4 2016-07-14 20:27:08 +10:00
pci.c powerpc/powernv: Functions to get/set PCI slot state 2016-06-21 15:30:58 +10:00
pci.h cxl: Add support for interrupts on the Mellanox CX4 2016-07-14 20:27:08 +10:00
powernv.h powerpc/powernv: move dma_get_required_mask from pnv_phb to pci_controller_ops 2015-08-18 19:32:11 +10:00
rng.c powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* 2015-07-23 19:52:03 +10:00
setup.c powerpc/powernv: set power_save func after the idle states are initialized 2016-06-23 10:46:59 +10:00
smp.c powerpc/powernv: remove FW_FEATURE_OPALv3 and just use FW_FEATURE_OPAL 2015-12-17 22:40:54 +11:00
subcore-asm.S powerpc/powernv: Add support for POWER8 split core on powernv 2014-05-28 13:35:37 +10:00
subcore.c powerpc/powernv: Create separate subcores CPU feature bit 2016-02-22 20:47:46 +11:00
subcore.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00