Subject: [PATCH 10/10] ARM: msm: Migrate to common clock framework

From: [email-masked] (Stephen Boyd)
Date: Wed, 26 Sep 2012 11:50:33 -0700

On 09/26/12 11:47, Pankaj Jangra wrote:
> Hi Stephen,
>
> On Fri, Sep 21, 2012 at 7:56 AM, Stephen Boyd <[email-masked]> wrote:
>
>> -static int pc_clk_set_rate(unsigned id, unsigned rate)
>> +static int pc_clk_set_rate(struct clk_hw *hw, unsigned long new_rate,
>> +                          unsigned long p_rate)
>>  {
>> -       /* The rate _might_ be rounded off to the nearest KHz value by the
>> +       struct clk_pcom *p = to_clk_pcom(hw);
>> +       unsigned id = p->id, rate = new_rate;
>> +       int rc;
>> +
>> +       /*
>> +        * The rate _might_ be rounded off to the nearest KHz value by the
>>          * remote function. So a return value of 0 doesn't necessarily mean
>>          * that the exact rate was set successfully.
>>          */
>> -       int rc = msm_proc_comm(PCOM_CLKCTL_RPC_SET_RATE, &id, &rate);
>> -       if (rc < 0)
>> -               return rc;
>> -       else
>> -               return (int)id < 0 ? -EINVAL : 0;
>> -}
>> -
>> -static int pc_clk_set_min_rate(unsigned id, unsigned rate)
>> -{
>> -       int rc = msm_proc_comm(PCOM_CLKCTL_RPC_MIN_RATE, &id, &rate);
>> -       if (rc < 0)
>> -               return rc;
>> +       if (p->flags & CLKFLAG_MIN)
>> +               rc = msm_proc_comm(PCOM_CLKCTL_RPC_MIN_RATE, &id, &rate);
> You are missing if condition here checking the rc ?
>
>>         else
>> -               return (int)id < 0 ? -EINVAL : 0;
>> -}
>> -
>> -static int pc_clk_set_max_rate(unsigned id, unsigned rate)
>> -{
>> -       int rc = msm_proc_comm(PCOM_CLKCTL_RPC_MAX_RATE, &id, &rate);
> and else here i think for the MIN_FLAG if check.
>
>> +               rc = msm_proc_comm(PCOM_CLKCTL_RPC_SET_RATE, &id, &rate);
>>         if (rc < 0)
>>                 return rc;
>>         else
>>                 return (int)id < 0 ? -EINVAL : 0;
>>  }

This is the resulting code:

        if (p->flags & CLKFLAG_MIN)
                rc = msm_proc_comm(PCOM_CLKCTL_RPC_MIN_RATE, &id, &rate);
        else
                rc = msm_proc_comm(PCOM_CLKCTL_RPC_SET_RATE, &id, &rate);
        if (rc < 0)
                return rc;
        else
                return (int)id < 0 ? -EINVAL : 0;

So we check the rc for both cases in the same if condition. Is there
anything wrong?

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation