linux_dsm_epyc7002/arch/powerpc/include/asm
Vaidyanathan Srinivasan b3d627a5f2 cpufreq: powernv: cpufreq driver for powernv platform
Backend driver to dynamically set voltage and frequency on
IBM POWER non-virtualized platforms.  Power management SPRs
are used to set the required PState.

This driver works in conjunction with cpufreq governors
like 'ondemand' to provide a demand based frequency and
voltage setting on IBM POWER non-virtualized platforms.

PState table is obtained from OPAL v3 firmware through device
tree.

powernv_cpufreq back-end driver would parse the relevant device-tree
nodes and initialise the cpufreq subsystem on powernv platform.

The code was originally written by svaidy@linux.vnet.ibm.com. Over
time it was modified to accomodate bug-fixes as well as updates to the
the cpu-freq core. Relevant portions of the change logs corresponding
to those modifications are noted below:

 * The policy->cpus needs to be populated in a hotplug-invariant
   manner instead of using cpu_sibling_mask() which varies with
   cpu-hotplug. This is because the cpufreq core code copies this
   content into policy->related_cpus mask which should not vary on
   cpu-hotplug. [Authored by srivatsa.bhat@linux.vnet.ibm.com]

 * Create a helper routine that can return the cpu-frequency for the
   corresponding pstate_id. Also, cache the values of the pstate_max,
   pstate_min and pstate_nominal and nr_pstates in a static structure
   so that they can be reused in the future to perform any
   validations. [Authored by ego@linux.vnet.ibm.com]

 * Create a driver attribute named cpuinfo_nominal_freq which creates
   a sysfs read-only file named cpuinfo_nominal_freq. Export the
   frequency corresponding to the nominal_pstate through this
   interface.

     Nominal frequency is the highest non-turbo frequency for the
   platform.  This is generally used for setting governor policies
   from user space for optimal energy efficiency. [Authored by
   ego@linux.vnet.ibm.com]

 * Implement a powernv_cpufreq_get(unsigned int cpu) method which will
   return the current operating frequency. Export this via the sysfs
   interface cpuinfo_cur_freq by setting powernv_cpufreq_driver.get to
   powernv_cpufreq_get(). [Authored by ego@linux.vnet.ibm.com]

[Change log updated by ego@linux.vnet.ibm.com]

Reviewed-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-04-07 14:35:27 +02:00
..
8xx_immap.h
agp.h
archrandom.h powerpc: Implement arch_get_random_long/int() for powernv 2013-10-11 16:50:19 +11:00
asm-compat.h powerpc: Fix little endian lppaca, slb_shadow and dtl_entry 2013-08-14 15:33:35 +10:00
asm-offsets.h
async_tx.h
atomic.h
backlight.h
barrier.h arch: Introduce smp_load_acquire(), smp_store_release() 2014-01-12 10:37:17 +01:00
bitops.h powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power7. 2013-12-05 16:04:39 +11:00
bootx.h
btext.h powerpc/pmac: Early debug output on screen on 64-bit macs 2013-08-14 14:57:40 +10:00
bug.h
bugs.h
cache.h powerpc: purge all the prefetched instructions for the coherent icache flush 2013-12-02 14:13:47 +11:00
cacheflush.h powerpc: Remove the symbol __flush_icache_range 2013-08-14 14:56:44 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc: Use generic checksum code in little endian 2013-10-11 16:48:39 +11:00
cmpxchg.h powerpc: Add support for the optimised lockref implementation 2014-01-28 14:45:43 +11:00
code-patching.h powerpc: Move the patch_exception to a common place 2013-12-02 14:06:54 +11:00
compat.h powerpc/compat: 32-bit little endian machine name is ppcle, not ppc 2014-03-24 10:16:04 +11:00
context_tracking.h
cpm1.h
cpm2.h
cpm.h
cputable.h powerpc: Add a cpu feature CPU_FTR_PMAO_BUG 2014-03-24 09:48:24 +11:00
cputhreads.h
cputime.h
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h
delay.h
device.h powerpc: Add iommu domain pointer to device archdata 2013-08-14 11:38:34 +02:00
disassemble.h KVM: PPC: E500: exit to user space on "ehpriv 1" instruction 2013-10-17 14:49:39 +02:00
div64.h
dma-mapping.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
dma.h
edac.h
eeh_event.h
eeh.h powerpc/eeh: Cleanup on eeh_subsystem_enabled 2014-02-17 11:19:39 +11:00
ehv_pic.h
elf.h powerpc: Set eflags correctly for ELF ABIv2 core dumps. 2013-11-21 09:19:18 +11:00
emergency-restart.h
emulated_ops.h powerpc: Fix PPC_EMULATED_STATS build break with sync patch 2013-10-28 22:08:55 -05:00
epapr_hcalls.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
exception-64e.h powerpc/booke64: Use SPRG_TLB_EXFRAME on bolted handlers 2014-03-19 19:57:15 -05:00
exception-64s.h powerpc/book3s: Fix CFAR clobbering issue in machine check handler. 2014-03-24 10:16:09 +11:00
exec.h
fadump.h
fb.h
feature-fixups.h
firmware.h
fixmap.h powerpc: use generic fixmap.h 2014-01-23 16:36:54 -08:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h
fsl_hcalls.h
fsl_lbc.h powerpc/85xx: handle the eLBC error interrupt if it exists in dts 2014-01-10 17:19:27 -06:00
fsl_pamu_stash.h iommu/fsl: Add additional iommu attributes required by the PAMU driver. 2013-08-14 11:38:34 +02:00
ftrace.h
futex.h
gpio.h
grackle.h
hardirq.h powerpc: Make irq_stat.timers_irqs counting more specific 2013-12-02 14:14:50 +11:00
heathrow.h
highmem.h
hugetlb.h powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
hvcall.h powerpc: Add hvcalls for 24x7 and gpci (Get Performance Counter Info) 2014-03-24 09:48:28 +11:00
hvconsole.h
hvcserver.h
hvsi.h powerpc/hvsi: Fix endian issues in HVSI driver 2013-10-11 16:48:53 +11:00
hw_breakpoint.h
hw_irq.h powerpc: Access local paca after hard irq disabled 2013-07-24 14:18:44 +10:00
hydra.h
i8259.h
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc: Add real mode cache inhibited IO accessors 2013-12-05 16:08:21 +11:00
iommu.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
ipic.h
irq_regs.h
irq.h powerpc/irq: Run softirqs off the top of the irq stack 2013-09-25 14:15:36 +10:00
irqflags.h powerpc/ppc64: Rename SOFT_DISABLE_INTS with RECONCILE_IRQ_STATE 2013-08-14 14:57:47 +10:00
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
Kbuild locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h
kprobes.h
kvm_44x.h
kvm_asm.h Second batch of KVM updates. Some minor x86 fixes, 2014-01-31 08:37:32 -08:00
kvm_book3s_32.h KVM: PPC: Book3S PR: Allocate kvm_vcpu structs from kvm_vcpu_cache 2013-10-17 14:45:05 +02:00
kvm_book3s_64.h kvm: powerpc: book3s: Add a new config variable CONFIG_KVM_BOOK3S_HV_POSSIBLE 2013-10-17 15:18:28 +02:00
kvm_book3s_asm.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
kvm_book3s.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
kvm_booke_hv_asm.h powerpc/booke64: Use SPRG_TLB_EXFRAME on bolted handlers 2014-03-19 19:57:15 -05:00
kvm_booke.h KVM: PPC: Book3S: MMIO emulation support for little endian guests 2014-01-27 16:00:39 +01:00
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S HV: Add new state for transactional memory 2014-01-27 16:01:20 +01:00
kvm_para.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
kvm_ppc.h kvm/ppc: IRQ disabling cleanup 2014-01-27 16:00:55 +01:00
libata-portmap.h
linkage.h
local64.h
local.h
lppaca.h powerpc: Make slb_shadow a local 2013-12-09 11:40:25 +11:00
lv1call.h
machdep.h powerpc/pseries: Use remove_memory() to remove memory 2014-03-07 15:53:13 +11:00
macio.h
mc146818rtc.h
mce.h powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
mediabay.h
mman.h
mmu_context.h
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/e6500: Make TLB lock recursive 2014-03-19 19:57:13 -05:00
mmu-hash32.h
mmu-hash64.h powerpc: Book 3S MMU little endian support 2013-10-11 16:48:26 +11:00
mmu.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
mmzone.h
module.h powerpc/modules: Module CRC relocation fix causes perf issues 2013-07-24 14:18:43 +10:00
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx_psc.h
mpc52xx.h
mpc85xx.h powerpc/85xx: Add support for 85xx cpu type detection 2013-08-23 19:01:03 -05:00
mpc5121.h powerpc/512x: clk: support MPC5121/5123/5125 SoC variants 2014-01-12 18:59:36 +01:00
mpc8260.h
mpic_msgr.h
mpic_timer.h
mpic.h powerpc/msi: Fix compile error on mpc83xx 2013-08-07 18:38:04 -05:00
msi_bitmap.h
mutex.h
nvram.h
ohare.h
opal.h Merge branch 'powernv-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-04-02 13:47:29 -07:00
oprofile_impl.h
paca.h powerpc/booke64: Critical and machine check exception support 2014-03-19 19:57:27 -05:00
page_32.h
page_64.h
page.h powerpc: Fix 64K page size support for PPC44x 2013-10-30 16:00:51 +11:00
parport.h
pasemi_dma.h
pci-bridge.h powerpc/pci: Don't use bitfield for force_32bit_msi 2013-08-14 11:50:25 +10:00
pci.h PCI: use weak functions for MSI arch-specific functions 2013-08-12 15:26:39 +00:00
percpu.h
perf_event_fsl_emb.h powerpc/perf: increase the perf HW events to 6 2013-08-07 18:38:03 -05:00
perf_event_server.h powerpc/perf: Define perf_event_print_debug() to print PMU register values 2014-03-24 09:48:23 +11:00
perf_event.h
pgalloc-32.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc-64.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc.h
pgtable-ppc32.h
pgtable-ppc64-4k.h
pgtable-ppc64-64k.h
pgtable-ppc64.h powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
pgtable.h mm: Use ptep/pmdp_set_numa() for updating _PAGE_NUMA bit 2014-02-17 11:19:36 +11:00
plpar_wrappers.h pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
ppc4xx_ocm.h
ppc4xx.h
ppc_asm.h Merge remote-tracking branch 'scott/next' into next 2014-01-15 14:22:35 +11:00
ppc-opcode.h powerpc/bpf: Fix DIVWU instruction opcode 2013-10-31 16:19:20 +11:00
ppc-pci.h
probes.h
processor.h powerpc/powernv: Add context management for Fast Sleep 2014-03-05 15:56:31 +11:00
prom.h DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
ps3.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h powerpc: book3e: _PAGE_LENDIAN must be _PAGE_ENDIAN 2013-10-17 14:49:37 +02:00
pte-common.h
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h
pte-hash64.h powerpc/mm: Enable _PAGE_NUMA for book3s 2013-12-09 11:40:30 +11:00
ptrace.h powerpc: Increase stack redzone for 64-bit userspace to 512 bytes 2014-02-28 18:06:26 +11:00
qe_ic.h
qe.h
reg_8xx.h
reg_a2.h
reg_booke.h powerpc/fsl: add E6500 PVR and SPRN_PWRMGTCR0 define 2014-01-07 19:29:23 -06:00
reg_fsl_emb.h powerpc/perf: Add e6500 PMU driver 2013-08-07 18:38:04 -05:00
reg.h cpufreq: powernv: cpufreq driver for powernv platform 2014-04-07 14:35:27 +02:00
rheap.h
rio.h
rtas.h powerpc/pseries: Update dynamic cache nodes for suspend/resume operation 2014-03-07 15:54:49 +11:00
rtc.h
runlatch.h
scatterlist.h
scom.h powerpc/scom: Enable 64-bit addresses 2013-11-06 14:13:49 +11:00
sections.h powerpc: Fix kdump hang issue on p8 with relocation on exception enabled. 2014-02-11 11:24:47 +11:00
serial.h
setjmp.h
setup.h powerpc: Clean up panic_timeout usage 2013-11-26 12:12:28 +01:00
sfp-machine.h powerpc: Put FP/VSX and VR state into structures 2013-10-11 17:26:49 +11:00
shmparam.h
signal.h
smp.h powerpc: Implement tick broadcast IPI as a fixed IPI message 2014-03-05 15:55:04 +11:00
smu.h
sparsemem.h
spinlock_types.h
spinlock.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h switch elf_coredump_extra_notes_write() to dump_emit() 2013-11-09 00:16:24 -05:00
sstep.h
string.h powerpc: Use generic memcpy code in little endian 2013-10-11 16:48:40 +11:00
swab.h
swiotlb.h
switch_to.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
synch.h
syscall.h
syscalls.h
systbl.h powerpc: Wire up sched_setattr and sched_getattr syscalls 2014-01-29 17:13:05 +11:00
tce.h
termios.h
thread_info.h powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
time.h powerpc: Implement tick broadcast IPI as a fixed IPI message 2014-03-05 15:55:04 +11:00
timex.h powerpc/8xx: mfspr SPRN_TBRx in lieu of mftb/mftbu is not supported 2013-11-22 16:56:48 -06:00
tlb.h
tlbflush.h
tm.h powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
topology.h sched: Remove unused mc_capable() and smt_capable() 2014-03-11 12:05:45 +01:00
trace.h
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h
uaccess.h
ucc_fast.h
ucc_slow.h
ucc.h
udbg.h powerpc: Cleanup udbg_16550 and add support for LPC PIO-only UARTs 2013-08-14 14:58:15 +10:00
uic.h
unaligned.h powerpc: Make unaligned accesses endian-safe for powerpc 2013-12-30 14:02:29 +11:00
uninorth.h
unistd.h powerpc: Wire up sched_setattr and sched_getattr syscalls 2014-01-29 17:13:05 +11:00
uprobes.h uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
user.h
vdso_datapage.h
vdso.h powerpc: Link VDSOs at 0x0 2014-02-17 11:19:37 +11:00
vga.h
vio.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
word-at-a-time.h powerpc: word-at-a-time optimization for 64-bit Little Endian 2013-10-31 16:19:16 +11:00
wsp.h
xics.h
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h powerpc: Add VMX optimised xor for RAID5 2013-10-30 16:02:28 +11:00