qos: Pass the list of cpus with affected qos to notifer
Send the list of cpus whose qos has been affected along with the changed value. Driver listening in for notifier can use this to apply the qos value for the respective cpus. Change-Id: I8f3c2ea624784c806c55de41cc7c7fcf8ebf02da Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
This commit is contained in:
parent
e4b5be8fb2
commit
9b6ffd790b
|
@ -160,7 +160,8 @@ static inline void pm_qos_set_value(struct pm_qos_constraints *c, s32 value)
|
|||
c->target_value = value;
|
||||
}
|
||||
|
||||
static inline void pm_qos_set_value_for_cpus(struct pm_qos_constraints *c)
|
||||
static inline void pm_qos_set_value_for_cpus(struct pm_qos_constraints *c,
|
||||
struct cpumask *cpus)
|
||||
{
|
||||
struct pm_qos_request *req = NULL;
|
||||
int cpu;
|
||||
|
@ -184,8 +185,11 @@ static inline void pm_qos_set_value_for_cpus(struct pm_qos_constraints *c)
|
|||
}
|
||||
}
|
||||
|
||||
for_each_possible_cpu(cpu)
|
||||
for_each_possible_cpu(cpu) {
|
||||
if (c->target_per_cpu[cpu] != qos_val[cpu])
|
||||
cpumask_set_cpu(cpu, cpus);
|
||||
c->target_per_cpu[cpu] = qos_val[cpu];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -206,6 +210,7 @@ int pm_qos_update_target(struct pm_qos_constraints *c,
|
|||
unsigned long flags;
|
||||
int prev_value, curr_value, new_value;
|
||||
struct plist_node *node = &req->node;
|
||||
struct cpumask cpus;
|
||||
|
||||
spin_lock_irqsave(&pm_qos_lock, flags);
|
||||
prev_value = pm_qos_get_value(c);
|
||||
|
@ -235,15 +240,16 @@ int pm_qos_update_target(struct pm_qos_constraints *c,
|
|||
}
|
||||
|
||||
curr_value = pm_qos_get_value(c);
|
||||
cpumask_clear(&cpus);
|
||||
pm_qos_set_value(c, curr_value);
|
||||
pm_qos_set_value_for_cpus(c);
|
||||
pm_qos_set_value_for_cpus(c, &cpus);
|
||||
|
||||
spin_unlock_irqrestore(&pm_qos_lock, flags);
|
||||
|
||||
if (prev_value != curr_value) {
|
||||
blocking_notifier_call_chain(c->notifiers,
|
||||
(unsigned long)curr_value,
|
||||
NULL);
|
||||
&cpus);
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue