diff options
Diffstat (limited to 'drivers/base/power/qos.c')
-rw-r--r-- | drivers/base/power/qos.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/drivers/base/power/qos.c b/drivers/base/power/qos.c index 84756f7f09d9..36b9eb4862cb 100644 --- a/drivers/base/power/qos.c +++ b/drivers/base/power/qos.c | |||
@@ -565,20 +565,32 @@ EXPORT_SYMBOL_GPL(dev_pm_qos_remove_global_notifier); | |||
565 | * dev_pm_qos_add_ancestor_request - Add PM QoS request for device's ancestor. | 565 | * dev_pm_qos_add_ancestor_request - Add PM QoS request for device's ancestor. |
566 | * @dev: Device whose ancestor to add the request for. | 566 | * @dev: Device whose ancestor to add the request for. |
567 | * @req: Pointer to the preallocated handle. | 567 | * @req: Pointer to the preallocated handle. |
568 | * @type: Type of the request. | ||
568 | * @value: Constraint latency value. | 569 | * @value: Constraint latency value. |
569 | */ | 570 | */ |
570 | int dev_pm_qos_add_ancestor_request(struct device *dev, | 571 | int dev_pm_qos_add_ancestor_request(struct device *dev, |
571 | struct dev_pm_qos_request *req, s32 value) | 572 | struct dev_pm_qos_request *req, |
573 | enum dev_pm_qos_req_type type, s32 value) | ||
572 | { | 574 | { |
573 | struct device *ancestor = dev->parent; | 575 | struct device *ancestor = dev->parent; |
574 | int ret = -ENODEV; | 576 | int ret = -ENODEV; |
575 | 577 | ||
576 | while (ancestor && !ancestor->power.ignore_children) | 578 | switch (type) { |
577 | ancestor = ancestor->parent; | 579 | case DEV_PM_QOS_RESUME_LATENCY: |
580 | while (ancestor && !ancestor->power.ignore_children) | ||
581 | ancestor = ancestor->parent; | ||
578 | 582 | ||
583 | break; | ||
584 | case DEV_PM_QOS_LATENCY_TOLERANCE: | ||
585 | while (ancestor && !ancestor->power.set_latency_tolerance) | ||
586 | ancestor = ancestor->parent; | ||
587 | |||
588 | break; | ||
589 | default: | ||
590 | ancestor = NULL; | ||
591 | } | ||
579 | if (ancestor) | 592 | if (ancestor) |
580 | ret = dev_pm_qos_add_request(ancestor, req, | 593 | ret = dev_pm_qos_add_request(ancestor, req, type, value); |
581 | DEV_PM_QOS_RESUME_LATENCY, value); | ||
582 | 594 | ||
583 | if (ret < 0) | 595 | if (ret < 0) |
584 | req->dev = NULL; | 596 | req->dev = NULL; |