powerpc/64s: Remove idle workaround code from restore_cpu_cpufeatures
Idle code no longer uses the .cpu_restore CPU operation to restore SPRs, so this workaround is no longer required. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20190711022404.18132-2-npiggin@gmail.com
This commit is contained in:
parent
aa8e21c053
commit
02b02ee1b0
|
@ -69,7 +69,6 @@ static int hv_mode;
|
|||
|
||||
static struct {
|
||||
u64 lpcr;
|
||||
u64 lpcr_clear;
|
||||
u64 hfscr;
|
||||
u64 fscr;
|
||||
u64 pcr;
|
||||
|
@ -79,24 +78,7 @@ static void (*init_pmu_registers)(void);
|
|||
|
||||
static void __restore_cpu_cpufeatures(void)
|
||||
{
|
||||
u64 lpcr;
|
||||
|
||||
/*
|
||||
* LPCR is restored by the power on engine already. It can be changed
|
||||
* after early init e.g., by radix enable, and we have no unified API
|
||||
* for saving and restoring such SPRs.
|
||||
*
|
||||
* This ->restore hook should really be removed from idle and register
|
||||
* restore moved directly into the idle restore code, because this code
|
||||
* doesn't know how idle is implemented or what it needs restored here.
|
||||
*
|
||||
* The best we can do to accommodate secondary boot and idle restore
|
||||
* for now is "or" LPCR with existing.
|
||||
*/
|
||||
lpcr = mfspr(SPRN_LPCR);
|
||||
lpcr |= system_registers.lpcr;
|
||||
lpcr &= ~system_registers.lpcr_clear;
|
||||
mtspr(SPRN_LPCR, lpcr);
|
||||
mtspr(SPRN_LPCR, system_registers.lpcr);
|
||||
if (hv_mode) {
|
||||
mtspr(SPRN_LPID, 0);
|
||||
mtspr(SPRN_HFSCR, system_registers.hfscr);
|
||||
|
@ -310,7 +292,6 @@ static int __init feat_enable_mmu_hash_v3(struct dt_cpu_feature *f)
|
|||
{
|
||||
u64 lpcr;
|
||||
|
||||
system_registers.lpcr_clear |= (LPCR_ISL | LPCR_UPRT | LPCR_HR);
|
||||
lpcr = mfspr(SPRN_LPCR);
|
||||
lpcr &= ~(LPCR_ISL | LPCR_UPRT | LPCR_HR);
|
||||
mtspr(SPRN_LPCR, lpcr);
|
||||
|
|
Loading…
Reference in New Issue