Mostly good now, V5 should be the final one. On 9 April 2013 14:02, <Yuantian.Tang@xxxxxxxxxxxxx> wrote: > diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c b/drivers/cpufreq/ppc-corenet-cpufreq.c > +static int corenet_cpufreq_target(struct cpufreq_policy *policy, > + unsigned int target_freq, unsigned int relation) > +{ > + struct cpufreq_freqs freqs; > + unsigned int new; > + struct clk *parent; > + int ret; > + struct cpu_data *data = per_cpu(cpu_data, policy->cpu); > + > + cpufreq_frequency_table_target(policy, data->table, > + target_freq, relation, &new); > + > + if (policy->cur == data->table[new].frequency) > + return 0; > + > + freqs.old = policy->cur; > + freqs.new = data->table[new].frequency; > + freqs.cpu = policy->cpu; You don't need to set freqs.cpu.. > + mutex_lock(&cpufreq_lock); > + cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE); > + > + parent = of_clk_get(data->parent, new); > + ret = clk_set_parent(data->clk, parent); > + if (ret) { > + freqs.new = freqs.old; > + cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); > + mutex_unlock(&cpufreq_lock); > + return ret; > + } > + > + cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); > + mutex_unlock(&cpufreq_lock); What about writing it as: + ret = clk_set_parent(data->clk, parent); + if (ret) + freqs.new = freqs.old; + + cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); + mutex_unlock(&cpufreq_lock); return ret; > + return 0; > +} -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html