aboutsummaryrefslogtreecommitdiff
path: root/hw
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 /hw
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>
Diffstat (limited to 'hw')
-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",