mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	MIPS: Loongson2: Use clk API instead of direct dereferences
A struct clk value is intended to be an abstract pointer, so it should be manipulated using the various API functions. clk_put is additionally added on the failure paths. The semantic match that finds the first problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e,e1; identifier i; @@ *e = clk_get(...) ... when != e = e1 when any *e->i // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Cc: kernel-janitors@vger.kernel.org Cc: linux-mips@linux-mips.org, Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/4751/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
		
							parent
							
								
									0f3a05cb43
								
							
						
					
					
						commit
						42913c7992
					
				
					 1 changed files with 12 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -107,6 +107,8 @@ static int loongson2_cpufreq_target(struct cpufreq_policy *policy,
 | 
			
		|||
static int loongson2_cpufreq_cpu_init(struct cpufreq_policy *policy)
 | 
			
		||||
{
 | 
			
		||||
	int i;
 | 
			
		||||
	unsigned long rate;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
	if (!cpu_online(policy->cpu))
 | 
			
		||||
		return -ENODEV;
 | 
			
		||||
| 
						 | 
				
			
			@ -117,15 +119,22 @@ static int loongson2_cpufreq_cpu_init(struct cpufreq_policy *policy)
 | 
			
		|||
		return PTR_ERR(cpuclk);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cpuclk->rate = cpu_clock_freq / 1000;
 | 
			
		||||
	if (!cpuclk->rate)
 | 
			
		||||
	rate = cpu_clock_freq / 1000;
 | 
			
		||||
	if (!rate) {
 | 
			
		||||
		clk_put(cpuclk);
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
	ret = clk_set_rate(cpuclk, rate);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		clk_put(cpuclk);
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* clock table init */
 | 
			
		||||
	for (i = 2;
 | 
			
		||||
	     (loongson2_clockmod_table[i].frequency != CPUFREQ_TABLE_END);
 | 
			
		||||
	     i++)
 | 
			
		||||
		loongson2_clockmod_table[i].frequency = (cpuclk->rate * i) / 8;
 | 
			
		||||
		loongson2_clockmod_table[i].frequency = (rate * i) / 8;
 | 
			
		||||
 | 
			
		||||
	policy->cur = loongson2_cpufreq_get(policy->cpu);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue