aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPratik R. Sampat <psampat@linux.ibm.com>2021-08-02 20:03:54 +0530
committerVasant Hegde <hegdevasant@linux.vnet.ibm.com>2021-08-04 12:59:50 +0530
commit5f670896164383d0d088f8d82b10b4e7e025316b (patch)
tree605af70fd16b0de2427de3c8c46ab7d794a768f1
parent04d1863c95d5be4f22e055ad67ee2c305adba90a (diff)
downloadskiboot-5f670896164383d0d088f8d82b10b4e7e025316b.zip
skiboot-5f670896164383d0d088f8d82b10b4e7e025316b.tar.gz
skiboot-5f670896164383d0d088f8d82b10b4e7e025316b.tar.bz2
POWER9 Cleanups: Don't force clear SPW bits
SLW force-cleared Special wakeup bits that could hold power management. However, SLW should expect these bits to be cleared at this point, hence only read and the report on the SPW bits to find anomalies instead. Signed-off-by: Pratik R. Sampat <psampat@linux.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
-rw-r--r--hw/slw.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/hw/slw.c b/hw/slw.c
index 625ee88..a0145de 100644
--- a/hw/slw.c
+++ b/hw/slw.c
@@ -226,19 +226,15 @@ static bool slw_set_overrides_p9(struct proc_chip *chip, struct cpu_thread *c)
int rc;
uint32_t core = pir_to_core_id(c->pir);
- /* Clear special wakeup bits that could hold power mgt */
- rc = xscom_write(chip->id,
- XSCOM_ADDR_P9_EC_SLAVE(core, EC_PPM_SPECIAL_WKUP_HYP),
- 0);
+ /* Special wakeup bits that could hold power mgt */
+ rc = xscom_read(chip->id,
+ XSCOM_ADDR_P9_EC_SLAVE(core, EC_PPM_SPECIAL_WKUP_HYP),
+ &tmp);
if (rc) {
log_simple_error(&e_info(OPAL_RC_SLW_SET),
- "SLW: Failed to write EC_PPM_SPECIAL_WKUP_HYP\n");
+ "SLW: Failed to read EC_PPM_SPECIAL_WKUP_HYP\n");
return false;
}
- /* Read back for debug */
- rc = xscom_read(chip->id,
- XSCOM_ADDR_P9_EC_SLAVE(core, EC_PPM_SPECIAL_WKUP_HYP),
- &tmp);
if (tmp)
prlog(PR_WARNING,
"SLW: core %d EC_PPM_SPECIAL_WKUP_HYP read 0x%016llx\n",