On Tue, Mar 05, 2013 at 12:52:41PM +0800, Viresh Kumar wrote:
+static void put_cluster_clk_and_freq_table(u32 cluster) +{
- if (!atomic_dec_return(&cluster_usage[cluster])) {
 clk_put(clk[cluster]);clk[cluster] = NULL;
What's the point in setting the clk to NULL?
+static int get_cluster_clk_and_freq_table(u32 cluster) +{
- char name[9] = "cluster";
 - int count;
 - if (atomic_inc_return(&cluster_usage[cluster]) != 1)
 return 0;- freq_table[cluster] = arm_bL_ops->get_freq_tbl(cluster, &count);
 - if (!freq_table[cluster])
 goto atomic_dec;- name[7] = cluster + '0';
 - clk[cluster] = clk_get(NULL, name);
 - if (!IS_ERR_OR_NULL(clk[cluster])) {
 
NAK. Two reasons.
1. IS_ERR_OR_NULL. You know about this, it's been on the list several times.
2. Maybe clk_get_sys() rather than clk_get() and use a sensible device name ("cpu-cluster.%u" maybe) rather than a connection name with a NULL device?