[Skiboot] [PATCH v2 3/3] occ: Filter out entries from Pmin to Pmax in Pstate table
Shilpasri G Bhat
shilpa.bhat at linux.vnet.ibm.com
Mon Feb 1 20:13:25 AEDT 2016
Parse the entire pstate table provided by OCC and filter out the
entries that are outside the Pmax and Pmin limits.
Signed-off-by: Shilpasri G Bhat <shilpa.bhat at linux.vnet.ibm.com>
---
No changes from v1.
hw/occ.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/hw/occ.c b/hw/occ.c
index 353df74..d8909bc 100644
--- a/hw/occ.c
+++ b/hw/occ.c
@@ -149,7 +149,7 @@ static bool add_cpu_pstate_properties(s8 *pstate_nom)
u32 *dt_id, *dt_freq;
u8 *dt_vdd, *dt_vcs, *dt_core_max = NULL;
bool rc;
- int i;
+ int i, j;
prlog(PR_DEBUG, "OCC: CPU pstate state device tree init\n");
@@ -244,11 +244,16 @@ next:
dt_core_max[i] = occ_data->core_max[i];
}
- for( i=0; i < nr_pstates; i++) {
- dt_id[i] = occ_data->pstates[i].id;
- dt_freq[i] = occ_data->pstates[i].freq_khz/1000;
- dt_vdd[i] = occ_data->pstates[i].vdd;
- dt_vcs[i] = occ_data->pstates[i].vcs;
+ for (i = 0, j = 0; i < MAX_PSTATES && j < nr_pstates; i++) {
+ if (occ_data->pstates[i].id > pmax ||
+ occ_data->pstates[i].id < occ_data->pstate_min)
+ continue;
+
+ dt_id[j] = occ_data->pstates[i].id;
+ dt_freq[j] = occ_data->pstates[i].freq_khz / 1000;
+ dt_vdd[j] = occ_data->pstates[i].vdd;
+ dt_vcs[j] = occ_data->pstates[i].vcs;
+ j++;
}
/* Add the device-tree entries */
--
1.9.3
More information about the Skiboot
mailing list