]> git.openfabrics.org - ~emulex/infiniband.git/commitdiff
PM / QoS: unconditionally build the feature
authorJean Pihet <jean.pihet@newoldbits.com>
Mon, 13 Feb 2012 15:23:42 +0000 (16:23 +0100)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 13 Feb 2012 15:23:42 +0000 (16:23 +0100)
The PM QoS feature originally didn't depend on CONFIG_PM, which was
mistakenly changed by commit e8db0be1245de16a6cc6365506abc392c3c212d4

    PM QoS: Move and rename the implementation files

Later, commit d020283dc694c9ec31b410f522252f7a8397e67d

    PM / QoS: CPU C-state breakage with PM Qos change

partially fixed that by introducing a static inline definition of
pm_qos_request(), but that still didn't allow user space to use
the PM QoS interface if CONFIG_PM was unset (which had been possible
before).  For this reason, remove the dependency of PM QoS on
CONFIG_PM to make it work (as intended) with CONFIG_PM unset.

[rjw: Replaced the original changelog with a new one.]

Signed-off-by: Jean Pihet <j-pihet@ti.com>
Reported-by: Venkatesh Pallipadi <venki@google.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
include/linux/pm_qos.h
kernel/power/Makefile

index 67c521731f41e9c1d7da6036091e62d322bd5c96..c8a541e13380f7523ed5716de03def3ed25782dc 100644 (file)
@@ -67,7 +67,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,
@@ -82,6 +81,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,
@@ -99,45 +99,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)
index 07e0e28ffba7644b8b97e037d05b9d9aa8e5df46..66d808ec525234bfee1433a4df2c33ff9c399201 100644 (file)
@@ -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