summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/pm')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C12
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C13
2 files changed, 8 insertions, 17 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C
index 793996e41..05a48f6ed 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C
@@ -62,7 +62,7 @@ fapi2::ReturnCode p9_cpu_special_wakeup_core(
FAPI_INF(">> p9_cpu_special_wakeup_core");
fapi2::ReturnCode l_rc;
fapi2::buffer<uint64_t> l_cpmmrRegVal;
- fapi2::buffer<uint64_t> l_lmcrRegVal;
+ fapi2::buffer<uint64_t> l_lmcrRegVal = 0;
uint8_t l_spWakeUpInProg = 0;
uint8_t l_corePos = 0;
uint8_t l_autoSplWkUpBitPos = 12; //EQ_CME_SCOM_LMCR_C0_AUTO_SPECIAL_WAKEUP_DISABLE
@@ -106,13 +106,9 @@ fapi2::ReturnCode p9_cpu_special_wakeup_core(
l_rc = getScom( l_exTarget, EX_CME_SCOM_LMCR_SCOM, l_lmcrRegVal );
-
- if( (l_rc) && (l_rc != (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
- {
- FAPI_ERR("Failed to SCOM LMCR Reg, EX Pos %d", (l_corePos >> 1 ) );
- return l_rc;
- }
- else if ((l_rc) && (l_rc == (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
+ // Treating any SCOM error as "offline" for the purposes of determining
+ // that auto special wake-up is active.
+ if( l_rc )
{
l_rc = fapi2::FAPI2_RC_SUCCESS;
l_lmcr_fail_state = 1;
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C
index b7016bcd4..8f8ee707b 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C
@@ -63,7 +63,7 @@ fapi2::ReturnCode p9_cpu_special_wakeup_ex(
ProcessingValues_t l_processing_info;
uint8_t l_spWakeUpInProg = 0;
fapi2::buffer<uint64_t> l_cpmmrRegVal;
- fapi2::buffer<uint64_t> l_lmcrRegVal;
+ fapi2::buffer<uint64_t> l_lmcrRegVal = 0;
uint8_t l_autoSplWkUpBitPos = 12; //EQ_CME_SCOM_LMCR_C0_AUTO_SPECIAL_WAKEUP_DISABLE
uint8_t l_corePos = 0;
auto l_eqTarget = i_target.getParent<fapi2::TARGET_TYPE_EQ>();
@@ -90,19 +90,14 @@ fapi2::ReturnCode p9_cpu_special_wakeup_ex(
//Not using FAPI TRY to avoid chances of RC corruption
l_rc = getScom( i_target, EX_CME_SCOM_LMCR_SCOM, l_lmcrRegVal );
-
- if( (l_rc) && (l_rc != (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
- {
- FAPI_ERR("Failed to SCOM LMCR Reg, EX Pos %d", (l_corePos >> 1 ) );
- return l_rc;
- }
- else if ((l_rc) && (l_rc == (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
+ // Treating any SCOM error as "offline" for the purposes of determining
+ // that auto special wake-up is active.
+ if( l_rc )
{
l_rc = fapi2::FAPI2_RC_SUCCESS;
l_lmcr_fail_state = 1;
}
-
if (!l_lmcr_fail_state)
{
for( auto l_core : l_coreList )
OpenPOWER on IntegriCloud