Hi Rafael, 2012/2/13 Rafael J. Wysocki <rjw@xxxxxxx>: > 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). Ok thanks! Will look at it as soon as the changes are propagated to linux-pm. > > Thanks, > Rafael > Jean > >> --- >> 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