Thread (42 messages) 42 messages, 3 authors, 2011-08-16

Re: [PATCH 05/15] PM QoS: generalize and export the constraints management code

From: Jean Pihet <hidden>
Date: 2011-08-16 06:44:20

On Tue, Aug 16, 2011 at 6:08 AM, mark gross [off-list ref] wrote:
On Sun, Aug 14, 2011 at 03:37:43PM +0200, Rafael J. Wysocki wrote:
quoted
On Sunday, August 14, 2011, Jean Pihet wrote:
quoted
Hi Rafael, Mark,

On Sat, Aug 13, 2011 at 10:34 PM, Rafael J. Wysocki [off-list ref] wrote:
quoted
On Saturday, August 13, 2011, mark gross wrote:
quoted
On Thu, Aug 11, 2011 at 05:06:42PM +0200, jean.pihet@newoldbits.com wrote:
quoted
From: Jean Pihet <redacted>

In preparation for the per-device constratins support:
- rename update_target to pm_qos_update_target
- generalize and export pm_qos_update_target for usage by the upcoming
per-device latency constraints framework:
   . operate on struct pm_qos_constraints for constraints management,
   . introduce an 'action' parameter for constraints add/update/remove,
   . the return value indicates if the aggregated constraint value has
     changed,
- update the internal code to operate on struct pm_qos_constraints
- add a NULL pointer check in the API functions

Signed-off-by: Jean Pihet <redacted>
...
quoted
quoted
quoted
+/* Action requested to pm_qos_update_target */
+enum pm_qos_req_action {
+   PM_QOS_ADD_REQ,         /* Add a new request */
+   PM_QOS_UPDATE_REQ,      /* Update an existing request */
+   PM_QOS_REMOVE_REQ       /* Remove an existing request */
+};
+
What do you need this enum for?  The function names *_update_*, *_add_*,
and  *_remove_* seem to be pretty redundant if you have to pass an enum
that could possibly conflict with the function name.
quoted
 #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);
The action for update_target better damn well be "PM_QOS_UPDATE_REQ" or
there is something strange going on....  BTW what shold this function do
if the pm_qos_req_action was *not* the UPDATE one?
The meaning of pm_qos_update_target is 'update the PM QoS target
constraints lists'. As described in the changelog the intention of
this patch is to implement the constraints lists management logic in
update_target and simplify the API functions (add/update/remove). It
is also exported for the upcoming (patch 06/15]) to use it as well.
The enums are fine by me and they allow us to simplify the code
quite a bit.
Ok, but they look a bit sloppy to me as we now have an API that says
"add" we can actually pass in an enum that says "remove".
We have an API that says 'update target' that we pass in a parameter
that says 'add request', 'update request' or 'remove request'.
If it is required I could just rename the internal function
update_target, in a later patch.
--mark
Jean
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help