On Monday, February 13, 2012, Jean Pihet wrote: > The PM QoS feature depends on CONFIG_PM which depends on > PM_SLEEP || PM_RUNTIME. This breaks CPU C-states with kernels > not having these CONFIGs. > > This patch allows the feature in all cases. > > Signed-off-by: Jean Pihet <j-pihet@xxxxxx> > Reported-by: Venkatesh Pallipadi <venki@xxxxxxxxxx> > Cc: Rafael J. Wysocki <rjw@xxxxxxx> > Cc: Mark Gross <markgross@xxxxxxxxxxx> Applied, but I modified the changelog (please have a look at the linux-pm/pm-qos branch for details). Thanks, Rafael > --- > include/linux/pm_qos.h | 41 +---------------------------------------- > kernel/power/Makefile | 3 ++- > 2 files changed, 3 insertions(+), 41 deletions(-) > > diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h > index 4d99e4e..105be69 100644 > --- a/include/linux/pm_qos.h > +++ b/include/linux/pm_qos.h > @@ -63,7 +63,6 @@ static inline int dev_pm_qos_request_active(struct dev_pm_qos_request *req) > return req->dev != 0; > } > > -#ifdef CONFIG_PM > int pm_qos_update_target(struct pm_qos_constraints *c, struct plist_node *node, > enum pm_qos_req_action action, int value); > void pm_qos_add_request(struct pm_qos_request *req, int pm_qos_class, > @@ -78,6 +77,7 @@ int pm_qos_remove_notifier(int pm_qos_class, struct notifier_block *notifier); > int pm_qos_request_active(struct pm_qos_request *req); > s32 pm_qos_read_value(struct pm_qos_constraints *c); > > +#ifdef CONFIG_PM > s32 __dev_pm_qos_read_value(struct device *dev); > s32 dev_pm_qos_read_value(struct device *dev); > int dev_pm_qos_add_request(struct device *dev, struct dev_pm_qos_request *req, > @@ -95,45 +95,6 @@ void dev_pm_qos_constraints_destroy(struct device *dev); > int dev_pm_qos_add_ancestor_request(struct device *dev, > struct dev_pm_qos_request *req, s32 value); > #else > -static inline int pm_qos_update_target(struct pm_qos_constraints *c, > - struct plist_node *node, > - enum pm_qos_req_action action, > - int value) > - { return 0; } > -static inline void pm_qos_add_request(struct pm_qos_request *req, > - int pm_qos_class, s32 value) > - { return; } > -static inline void pm_qos_update_request(struct pm_qos_request *req, > - s32 new_value) > - { return; } > -static inline void pm_qos_remove_request(struct pm_qos_request *req) > - { return; } > - > -static inline int pm_qos_request(int pm_qos_class) > -{ > - switch (pm_qos_class) { > - case PM_QOS_CPU_DMA_LATENCY: > - return PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; > - case PM_QOS_NETWORK_LATENCY: > - return PM_QOS_NETWORK_LAT_DEFAULT_VALUE; > - case PM_QOS_NETWORK_THROUGHPUT: > - return PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE; > - default: > - return PM_QOS_DEFAULT_VALUE; > - } > -} > - > -static inline int pm_qos_add_notifier(int pm_qos_class, > - struct notifier_block *notifier) > - { return 0; } > -static inline int pm_qos_remove_notifier(int pm_qos_class, > - struct notifier_block *notifier) > - { return 0; } > -static inline int pm_qos_request_active(struct pm_qos_request *req) > - { return 0; } > -static inline s32 pm_qos_read_value(struct pm_qos_constraints *c) > - { return 0; } > - > static inline s32 __dev_pm_qos_read_value(struct device *dev) > { return 0; } > static inline s32 dev_pm_qos_read_value(struct device *dev) > diff --git a/kernel/power/Makefile b/kernel/power/Makefile > index 07e0e28..66d808e 100644 > --- a/kernel/power/Makefile > +++ b/kernel/power/Makefile > @@ -1,7 +1,8 @@ > > ccflags-$(CONFIG_PM_DEBUG) := -DDEBUG > > -obj-$(CONFIG_PM) += main.o qos.o > +obj-y += qos.o > +obj-$(CONFIG_PM) += main.o > obj-$(CONFIG_VT_CONSOLE_SLEEP) += console.o > obj-$(CONFIG_FREEZER) += process.o > obj-$(CONFIG_SUSPEND) += suspend.o > _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/linux-pm