aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/power/qos.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/power/qos.c')
-rw-r--r--drivers/base/power/qos.c22
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 */
570int dev_pm_qos_add_ancestor_request(struct device *dev, 571int 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;