Subject: [PULL] clk: at91: sama5d2 materials

From: [email-masked] (Nicolas Ferre)
Date: Fri, 2 Oct 2015 14:58:23 +0200

Le 01/10/2015 22:38, Boris Brezillon a ?crit :
> Hi Stephen,
> 
> On Thu, 1 Oct 2015 12:47:48 -0700
> Stephen Boyd <[email-masked]> wrote:
> 
>> On 08/25, Michael Turquette wrote:
>>> Quoting Boris Brezillon (2015-08-18 01:24:01)
>>>> Stephen, Mike,
>>>>
>>>> Here is a PR for the sama5d2 materials.
>>>> I know we're already late in the release cycle and I'm not sure you can
>>>> take this PR into account for 4.3, so if you can't could you please
>>>> queue it for 4.4?
>>>
>>> Queued for 4.4.
>>>
>>> Thanks,
>>> Mike
>>>
>>>>
>>>> Thanks,
>>>>
>>>> Boris
>>>>
>>>> The following changes since commit c42743f11f58646a50bc4b96da363429dca0c5e6:
>>>>
>>
>> This commit was in clk-next and then got rebased. clk-next isn't
>> stable, please don't base pull requests on it. If you have some
>> dependency on the patches in there then we need to know so that
>> we can provide some branch.
> 
> Yes, sorry about that, I'll base my future PR on linus' master branch.
> 
>>
>> I cherry-picked the 4 patches to clk-next. I had to squash in this fix
>> to get it to compile. Please check.
> 
> Thanks, looks good to me.
> Nicolas, can you test it on a real platform?

Yep, tested and works okay. So for your changes (and for the record
actually):
Tested-by: Nicolas Ferre <[email-masked]>

>> ---8<----
>> diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c
>> index 631123ca6f85..abc80949e1dd 100644
>> --- a/drivers/clk/at91/clk-generated.c
>> +++ b/drivers/clk/at91/clk-generated.c
>> @@ -99,22 +99,22 @@ static int clk_generated_determine_rate(struct clk_hw *hw,
>>  					struct clk_rate_request *req)
>>  {
>>  	struct clk_generated *gck = to_clk_generated(hw);
>> -	struct clk *parent = NULL;
>> +	struct clk_hw *parent = NULL;
>>  	long best_rate = -EINVAL;
>>  	unsigned long tmp_rate, min_rate;
>>  	int best_diff = -1;
>>  	int tmp_diff;
>>  	int i;
>>  
>> -	for (i = 0; i < __clk_get_num_parents(hw->clk); i++) {
>> +	for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
>>  		u32 div;
>>  		unsigned long parent_rate;
>>  
>> -		parent = clk_get_parent_by_index(hw->clk, i);
>> +		parent = clk_hw_get_parent_by_index(hw, i);
>>  		if (!parent)
>>  			continue;
>>  
>> -		parent_rate = __clk_get_rate(parent);
>> +		parent_rate = clk_hw_get_rate(parent);
>>  		min_rate = DIV_ROUND_CLOSEST(parent_rate, GENERATED_MAX_DIV + 1);
>>  		if (!parent_rate ||
>>  		    (gck->range.max && min_rate > gck->range.max))
>> @@ -128,7 +128,7 @@ static int clk_generated_determine_rate(struct clk_hw *hw,
>>  				best_rate = tmp_rate;
>>  				best_diff = tmp_diff;
>>  				req->best_parent_rate = parent_rate;
>> -				req->best_parent_hw = __clk_get_hw(parent);
>> +				req->best_parent_hw = parent;
>>  			}
>>  
>>  			if (!best_diff || tmp_rate < req->rate)
>> @@ -156,7 +156,7 @@ static int clk_generated_set_parent(struct clk_hw *hw, u8 index)
>>  {
>>  	struct clk_generated *gck = to_clk_generated(hw);
>>  
>> -	if (index >= __clk_get_num_parents(hw->clk))
>> +	if (index >= clk_hw_get_num_parents(hw))
>>  		return -EINVAL;
>>  
>>  	gck->parent_id = index;
>>
> 
> 
> 

-- 
Nicolas Ferre