[Skiboot] [PATCH] fast-reboot: occ: Delete OCC child nodes in /ibm, opal/power-mgt
Shilpasri G Bhat
shilpa.bhat at linux.vnet.ibm.com
Wed Feb 28 16:35:17 AEDT 2018
Fast-reboot in P8 fails to re-init OCC data as there are chipwise OCC
nodes which are already present in the /ibm,opal/power-mgt node. These
per-chip nodes hold the voltage IDs for each pstate and these can be
changed on OCC pstate table biasing. So delete these before calling
the re-init code to re-parse and populate the pstate data.
Reported-by: Pridhiviraj Paidipeddi <ppaidipe at linux.vnet.ibm.com>
Signed-off-by: Shilpasri G Bhat <shilpa.bhat at linux.vnet.ibm.com>
---
hw/occ.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/hw/occ.c b/hw/occ.c
index 3e92b9a..37cf73c 100644
--- a/hw/occ.c
+++ b/hw/occ.c
@@ -1664,7 +1664,7 @@ void occ_pstates_init(void)
return;
/* Handle fast reboots */
if (occ_pstates_initialized) {
- struct dt_node *power_mgt;
+ struct dt_node *power_mgt, *child;
int i;
const char *props[] = {
"ibm,pstate-core-max",
@@ -1682,6 +1682,10 @@ void occ_pstates_init(void)
power_mgt = dt_find_by_path(dt_root, "/ibm,opal/power-mgt");
for (i = 0; i < ARRAY_SIZE(props); i++)
dt_check_del_prop(power_mgt, props[i]);
+
+ dt_for_each_child(power_mgt, child)
+ if (!strncmp(child->name, "occ", 3))
+ dt_free(child);
}
switch (proc_gen) {
--
1.8.3.1
More information about the Skiboot
mailing list