[Skiboot] [PATCH v3 3/3] occ: Filter out entries from Pmin to Pmax in Pstate table
Joel Stanley
joel at jms.id.au
Thu Feb 11 15:52:00 AEDT 2016
On Wed, Feb 10, 2016 at 8:09 AM, Shilpasri G Bhat
<shilpa.bhat at linux.vnet.ibm.com> wrote:
> Parse the entire pstate table provided by OCC and filter out the
> entries that are outside the Pmax and Pmin limits.
Can you explain why we need to do this. Why does the OCC give us
values that are outisde Pmax/Pmin?
>
> Signed-off-by: Shilpasri G Bhat <shilpa.bhat at linux.vnet.ibm.com>
> ---
> hw/occ.c | 17 +++++++++++------
> 1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/hw/occ.c b/hw/occ.c
> index 4a764ef..048f3ad 100644
> --- a/hw/occ.c
> +++ b/hw/occ.c
> @@ -153,7 +153,7 @@ static bool add_cpu_pstate_properties(s8 *pstate_nom)
> u8 *dt_vdd, *dt_vcs;
> s8 *dt_core_max = NULL;
> bool rc, ultra_turbo_en;
> - int i;
> + int i, j;
>
> prlog(PR_DEBUG, "OCC: CPU pstate state device tree init\n");
>
> @@ -241,11 +241,16 @@ static bool add_cpu_pstate_properties(s8 *pstate_nom)
> 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