[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