powerpc/powernv/idle: Exclude mfspr on HID1, 4, 5 on P9 and above
authorPratik Rajesh Sampat <psampat@linux.ibm.com>
Tue, 21 Jul 2020 15:37:08 +0000 (21:07 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 23 Jul 2020 07:43:36 +0000 (17:43 +1000)
POWER9 onwards the support for the registers HID1, HID4, HID5 has been
receded.
Although mfspr on the above registers worked in Power9, In Power10
simulator is unrecognized. Moving their assignment under the
check for machines lower than Power9

Signed-off-by: Pratik Rajesh Sampat <psampat@linux.ibm.com>
Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200721153708.89057-4-psampat@linux.ibm.com
arch/powerpc/platforms/powernv/idle.c

index ed09f1f..77513a8 100644 (file)
@@ -73,9 +73,6 @@ static int pnv_save_sprs_for_deep_states(void)
         */
        uint64_t lpcr_val       = mfspr(SPRN_LPCR);
        uint64_t hid0_val       = mfspr(SPRN_HID0);
-       uint64_t hid1_val       = mfspr(SPRN_HID1);
-       uint64_t hid4_val       = mfspr(SPRN_HID4);
-       uint64_t hid5_val       = mfspr(SPRN_HID5);
        uint64_t hmeer_val      = mfspr(SPRN_HMEER);
        uint64_t msr_val = MSR_IDLE;
        uint64_t psscr_val = pnv_deepest_stop_psscr_val;
@@ -117,6 +114,9 @@ static int pnv_save_sprs_for_deep_states(void)
 
                        /* Only p8 needs to set extra HID regiters */
                        if (!cpu_has_feature(CPU_FTR_ARCH_300)) {
+                               uint64_t hid1_val = mfspr(SPRN_HID1);
+                               uint64_t hid4_val = mfspr(SPRN_HID4);
+                               uint64_t hid5_val = mfspr(SPRN_HID5);
 
                                rc = opal_slw_set_reg(pir, SPRN_HID1, hid1_val);
                                if (rc != 0)