Messages in this thread Patch in this message | | | Date | Wed, 8 Apr 2020 16:24:43 +0530 | From | Gautham R Shenoy <> | Subject | Re: [RFC 3/3] Introduce capability for firmware-enabled-stop |
| |
Hi Pratik,
On Wed, Mar 04, 2020 at 09:31:23PM +0530, Pratik Rajesh Sampat wrote: > Design patch that introduces the capability for firmware to handle the > stop states instead. A bit is set based on the discovery of the feature > and correspondingly also the responsibility to handle the stop states. > > The commit does not contain calling into the firmware to utilize > firmware enabled stop. > > Signed-off-by: Pratik Rajesh Sampat <psampat at linux.ibm.com> > --- > arch/powerpc/include/asm/processor.h | 1 + > arch/powerpc/kernel/dt_cpu_ftrs.c | 9 +++++++++ > 2 files changed, 10 insertions(+) > > diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h > index 277dbabafd02..978fab35d133 100644 > --- a/arch/powerpc/include/asm/processor.h > +++ b/arch/powerpc/include/asm/processor.h > @@ -430,6 +430,7 @@ extern unsigned long cpuidle_disable; > enum idle_boot_override {IDLE_NO_OVERRIDE = 0, IDLE_POWERSAVE_OFF}; > > #define STOP_ENABLE 0x00000001 > +#define FIRMWARE_STOP_ENABLE 0x00000010
This could be made a bit in the "version" variable.
> > #define STOP_VERSION_P9 0x1 > #define STOP_VERSION_P9_V1 0x2 > diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c > index 63e30aa49356..e00f8afabc46 100644 > --- a/arch/powerpc/kernel/dt_cpu_ftrs.c > +++ b/arch/powerpc/kernel/dt_cpu_ftrs.c > @@ -313,6 +313,14 @@ static int __init feat_enable_idle_stop_quirk(struct dt_cpu_feature *f) > > return 1; > } > + > +static int __init feat_enable_firmware_stop(struct dt_cpu_feature *f) > +{ > + stop_dep.cpuidle_prop |= FIRMWARE_STOP_ENABLE;
stop_dep.cpuidle_version |= FIRMWARE_STOP_V1; or some such variant.
> + > + return 1; > +} > + > static int __init feat_enable_mmu_hash(struct dt_cpu_feature *f) > { > u64 lpcr; > @@ -608,6 +616,7 @@ static struct dt_cpu_feature_match __initdata > {"alignment-interrupt-dsisr", feat_enable_align_dsisr, 0}, > {"idle-stop", feat_enable_idle_stop, 0}, > {"idle-stop-v1", feat_enable_idle_stop_quirk, 0}, > + {"firmware-stop-supported", feat_enable_firmware_stop, 0}, > {"machine-check-power8", feat_enable_mce_power8, 0}, > {"performance-monitor-power8", feat_enable_pmu_power8, 0}, > {"data-stream-control-register", feat_enable_dscr, CPU_FTR_DSCR}, > -- > 2.24.1 >
| |