Merge "qos: Register irq notify after adding the qos request"
This commit is contained in:
commit
40493b8042
1 changed files with 18 additions and 8 deletions
|
@ -596,7 +596,6 @@ void pm_qos_add_request(struct pm_qos_request *req,
|
|||
#ifdef CONFIG_SMP
|
||||
case PM_QOS_REQ_AFFINE_IRQ:
|
||||
if (irq_can_set_affinity(req->irq)) {
|
||||
int ret = 0;
|
||||
struct irq_desc *desc = irq_to_desc(req->irq);
|
||||
struct cpumask *mask = desc->irq_data.common->affinity;
|
||||
|
||||
|
@ -606,13 +605,6 @@ void pm_qos_add_request(struct pm_qos_request *req,
|
|||
req->irq_notify.notify = pm_qos_irq_notify;
|
||||
req->irq_notify.release = pm_qos_irq_release;
|
||||
|
||||
ret = irq_set_affinity_notifier(req->irq,
|
||||
&req->irq_notify);
|
||||
if (ret) {
|
||||
WARN(1, KERN_ERR "IRQ affinity notify set failed\n");
|
||||
req->type = PM_QOS_REQ_ALL_CORES;
|
||||
cpumask_setall(&req->cpus_affine);
|
||||
}
|
||||
} else {
|
||||
req->type = PM_QOS_REQ_ALL_CORES;
|
||||
cpumask_setall(&req->cpus_affine);
|
||||
|
@ -634,6 +626,24 @@ void pm_qos_add_request(struct pm_qos_request *req,
|
|||
trace_pm_qos_add_request(pm_qos_class, value);
|
||||
pm_qos_update_target(pm_qos_array[pm_qos_class]->constraints,
|
||||
req, PM_QOS_ADD_REQ, value);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
if (req->type == PM_QOS_REQ_AFFINE_IRQ &&
|
||||
irq_can_set_affinity(req->irq)) {
|
||||
int ret = 0;
|
||||
|
||||
ret = irq_set_affinity_notifier(req->irq,
|
||||
&req->irq_notify);
|
||||
if (ret) {
|
||||
WARN(1, "IRQ affinity notify set failed\n");
|
||||
req->type = PM_QOS_REQ_ALL_CORES;
|
||||
cpumask_setall(&req->cpus_affine);
|
||||
pm_qos_update_target(
|
||||
pm_qos_array[pm_qos_class]->constraints,
|
||||
req, PM_QOS_UPDATE_REQ, value);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pm_qos_add_request);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue