]> nv-tegra.nvidia Code Review - linux-3.10.git/blobdiff - lib/proportions.c
video: tegra: dc: Add quick for Vizio P series
[linux-3.10.git] / lib / proportions.c
index 4f387a643d723c3853bec845ef0a90018a0e00f0..05df84801b5666438dc49b22a4fce52e6a3c0131 100644 (file)
@@ -83,11 +83,11 @@ int prop_descriptor_init(struct prop_descriptor *pd, int shift)
        pd->index = 0;
        pd->pg[0].shift = shift;
        mutex_init(&pd->mutex);
-       err = percpu_counter_init_irq(&pd->pg[0].events, 0);
+       err = percpu_counter_init(&pd->pg[0].events, 0);
        if (err)
                goto out;
 
-       err = percpu_counter_init_irq(&pd->pg[1].events, 0);
+       err = percpu_counter_init(&pd->pg[1].events, 0);
        if (err)
                percpu_counter_destroy(&pd->pg[0].events);
 
@@ -147,6 +147,7 @@ out:
  * this is used to track the active references.
  */
 static struct prop_global *prop_get_global(struct prop_descriptor *pd)
+__acquires(RCU)
 {
        int index;
 
@@ -160,6 +161,7 @@ static struct prop_global *prop_get_global(struct prop_descriptor *pd)
 }
 
 static void prop_put_global(struct prop_descriptor *pd, struct prop_global *pg)
+__releases(RCU)
 {
        rcu_read_unlock();
 }
@@ -188,10 +190,10 @@ prop_adjust_shift(int *pl_shift, unsigned long *pl_period, int new_shift)
 
 int prop_local_init_percpu(struct prop_local_percpu *pl)
 {
-       spin_lock_init(&pl->lock);
+       raw_spin_lock_init(&pl->lock);
        pl->shift = 0;
        pl->period = 0;
-       return percpu_counter_init_irq(&pl->events, 0);
+       return percpu_counter_init(&pl->events, 0);
 }
 
 void prop_local_destroy_percpu(struct prop_local_percpu *pl)
@@ -224,7 +226,7 @@ void prop_norm_percpu(struct prop_global *pg, struct prop_local_percpu *pl)
        if (pl->period == global_period)
                return;
 
-       spin_lock_irqsave(&pl->lock, flags);
+       raw_spin_lock_irqsave(&pl->lock, flags);
        prop_adjust_shift(&pl->shift, &pl->period, pg->shift);
 
        /*
@@ -245,7 +247,7 @@ void prop_norm_percpu(struct prop_global *pg, struct prop_local_percpu *pl)
                percpu_counter_set(&pl->events, 0);
 
        pl->period = global_period;
-       spin_unlock_irqrestore(&pl->lock, flags);
+       raw_spin_unlock_irqrestore(&pl->lock, flags);
 }
 
 /*
@@ -322,7 +324,7 @@ void prop_fraction_percpu(struct prop_descriptor *pd,
 
 int prop_local_init_single(struct prop_local_single *pl)
 {
-       spin_lock_init(&pl->lock);
+       raw_spin_lock_init(&pl->lock);
        pl->shift = 0;
        pl->period = 0;
        pl->events = 0;
@@ -354,7 +356,7 @@ void prop_norm_single(struct prop_global *pg, struct prop_local_single *pl)
        if (pl->period == global_period)
                return;
 
-       spin_lock_irqsave(&pl->lock, flags);
+       raw_spin_lock_irqsave(&pl->lock, flags);
        prop_adjust_shift(&pl->shift, &pl->period, pg->shift);
        /*
         * For each missed period, we half the local counter.
@@ -365,7 +367,7 @@ void prop_norm_single(struct prop_global *pg, struct prop_local_single *pl)
        else
                pl->events = 0;
        pl->period = global_period;
-       spin_unlock_irqrestore(&pl->lock, flags);
+       raw_spin_unlock_irqrestore(&pl->lock, flags);
 }
 
 /*