Message ID | f6d6572ad860d479416108a41f0e20d5cb72ae46.1574699610.git.leonard.crestez@nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | PM: QoS: Restore DEV_PM_QOS_MIN/MAX_FREQUENCY | expand |
On Mon, Nov 25, 2019 at 06:42:18PM +0200, Leonard Crestez wrote: > 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> > --- > 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 > @@ -47,25 +47,10 @@ struct pm_qos_request { > struct pm_qos_flags_request { > struct list_head node; > 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 */ > PM_QOS_MIN, /* return the smallest value */ > PM_QOS_SUM /* return the sum */ > @@ -88,10 +73,48 @@ struct pm_qos_constraints { > struct pm_qos_flags { > struct list_head list; > 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; > struct pm_qos_flags flags; > struct dev_pm_qos_request *resume_latency_req; > @@ -253,31 +276,10 @@ static inline s32 dev_pm_qos_raw_resume_latency(struct device *dev) > { > return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT; > } > #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); > } > > -- > 2.17.1 > Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
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 @@ -47,25 +47,10 @@ struct pm_qos_request { struct pm_qos_flags_request { struct list_head node; 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 */ PM_QOS_MIN, /* return the smallest value */ PM_QOS_SUM /* return the sum */ @@ -88,10 +73,48 @@ struct pm_qos_constraints { struct pm_qos_flags { struct list_head list; 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; struct pm_qos_flags flags; struct dev_pm_qos_request *resume_latency_req; @@ -253,31 +276,10 @@ static inline s32 dev_pm_qos_raw_resume_latency(struct device *dev) { return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT; } #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); }
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> --- include/linux/pm_qos.h | 74 ++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 36 deletions(-)