| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Leonard Crestez <leonard.crestez@nxp.com> |
| Date: Tue, 26 Nov 2019 17:17:12 +0200 |
| Subject: UPSTREAM: PM / QoS: Reorder pm_qos/freq_qos/dev_pm_qos structs |
| |
| This allows dev_pm_qos to embed freq_qos structs, which is done in the |
| next patch. Separate commit to make it easier to review. |
| |
| Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> |
| Reviewed-by: Matthias Kaehlcke <mka@chromium.org> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| |
| Bug: 147443391 |
| Change-Id: Ic37e8a77aa401e10be040f89af83701c422c0790 |
| (cherry picked from commit 342035f66c866f4ad750477b21b210e98d1f6818) |
| Signed-off-by: Todd Kjos <tkjos@google.com> |
| --- |
| include/linux/pm_qos.h | 74 ++++++++++++++++++++++-------------------- |
| 1 file changed, 38 insertions(+), 36 deletions(-) |
| |
| diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h |
| index 24a6263c9931..678fec6da5b9 100644 |
| --- a/include/linux/pm_qos.h |
| +++ b/include/linux/pm_qos.h |
| @@ -49,21 +49,6 @@ struct pm_qos_flags_request { |
| s32 flags; /* Do not change to 64 bit */ |
| }; |
| |
| -enum dev_pm_qos_req_type { |
| - DEV_PM_QOS_RESUME_LATENCY = 1, |
| - DEV_PM_QOS_LATENCY_TOLERANCE, |
| - DEV_PM_QOS_FLAGS, |
| -}; |
| - |
| -struct dev_pm_qos_request { |
| - enum dev_pm_qos_req_type type; |
| - union { |
| - struct plist_node pnode; |
| - struct pm_qos_flags_request flr; |
| - } data; |
| - struct device *dev; |
| -}; |
| - |
| enum pm_qos_type { |
| PM_QOS_UNITIALIZED, |
| PM_QOS_MAX, /* return the largest value */ |
| @@ -90,6 +75,44 @@ struct pm_qos_flags { |
| s32 effective_flags; /* Do not change to 64 bit */ |
| }; |
| |
| + |
| +#define FREQ_QOS_MIN_DEFAULT_VALUE 0 |
| +#define FREQ_QOS_MAX_DEFAULT_VALUE S32_MAX |
| + |
| +enum freq_qos_req_type { |
| + FREQ_QOS_MIN = 1, |
| + FREQ_QOS_MAX, |
| +}; |
| + |
| +struct freq_constraints { |
| + struct pm_qos_constraints min_freq; |
| + struct blocking_notifier_head min_freq_notifiers; |
| + struct pm_qos_constraints max_freq; |
| + struct blocking_notifier_head max_freq_notifiers; |
| +}; |
| + |
| +struct freq_qos_request { |
| + enum freq_qos_req_type type; |
| + struct plist_node pnode; |
| + struct freq_constraints *qos; |
| +}; |
| + |
| + |
| +enum dev_pm_qos_req_type { |
| + DEV_PM_QOS_RESUME_LATENCY = 1, |
| + DEV_PM_QOS_LATENCY_TOLERANCE, |
| + DEV_PM_QOS_FLAGS, |
| +}; |
| + |
| +struct dev_pm_qos_request { |
| + enum dev_pm_qos_req_type type; |
| + union { |
| + struct plist_node pnode; |
| + struct pm_qos_flags_request flr; |
| + } data; |
| + struct device *dev; |
| +}; |
| + |
| struct dev_pm_qos { |
| struct pm_qos_constraints resume_latency; |
| struct pm_qos_constraints latency_tolerance; |
| @@ -255,27 +278,6 @@ static inline s32 dev_pm_qos_raw_resume_latency(struct device *dev) |
| } |
| #endif |
| |
| -#define FREQ_QOS_MIN_DEFAULT_VALUE 0 |
| -#define FREQ_QOS_MAX_DEFAULT_VALUE S32_MAX |
| - |
| -enum freq_qos_req_type { |
| - FREQ_QOS_MIN = 1, |
| - FREQ_QOS_MAX, |
| -}; |
| - |
| -struct freq_constraints { |
| - struct pm_qos_constraints min_freq; |
| - struct blocking_notifier_head min_freq_notifiers; |
| - struct pm_qos_constraints max_freq; |
| - struct blocking_notifier_head max_freq_notifiers; |
| -}; |
| - |
| -struct freq_qos_request { |
| - enum freq_qos_req_type type; |
| - struct plist_node pnode; |
| - struct freq_constraints *qos; |
| -}; |
| - |
| static inline int freq_qos_request_active(struct freq_qos_request *req) |
| { |
| return !IS_ERR_OR_NULL(req->qos); |