clk: qcom: rpmh: Simplify clk_rpmh_bcm_send_cmd()
authorStephen Boyd <sboyd@kernel.org>
Mon, 9 Mar 2020 22:12:31 +0000 (15:12 -0700)
committerStephen Boyd <sboyd@kernel.org>
Wed, 25 Mar 2020 02:35:00 +0000 (19:35 -0700)
This function has some duplication in unlocking a mutex and returns in a
few different places. Let's use some if statements to consolidate code
and make this a bit easier to read.

Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
CC: Taniya Das <tdas@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lkml.kernel.org/r/20200309221232.145630-2-sboyd@kernel.org
drivers/clk/qcom/clk-rpmh.c

index bfc29aec3a7842832dc8716415b271ed2afe75fa..b1b277b5568287533cced4a60b4ee968f7d65c5d 100644 (file)
@@ -259,38 +259,33 @@ static int clk_rpmh_bcm_send_cmd(struct clk_rpmh *c, bool enable)
 {
        struct tcs_cmd cmd = { 0 };
        u32 cmd_state;
-       int ret;
+       int ret = 0;
 
        mutex_lock(&rpmh_clk_lock);
-
-       cmd_state = 0;
        if (enable) {
                cmd_state = 1;
                if (c->aggr_state)
                        cmd_state = c->aggr_state;
+       } else {
+               cmd_state = 0;
        }
 
-       if (c->last_sent_aggr_state == cmd_state) {
-               mutex_unlock(&rpmh_clk_lock);
-               return 0;
-       }
-
-       cmd.addr = c->res_addr;
-       cmd.data = BCM_TCS_CMD(1, enable, 0, cmd_state);
+       if (c->last_sent_aggr_state != cmd_state) {
+               cmd.addr = c->res_addr;
+               cmd.data = BCM_TCS_CMD(1, enable, 0, cmd_state);
 
-       ret = clk_rpmh_send(c, RPMH_ACTIVE_ONLY_STATE, &cmd, enable);
-       if (ret) {
-               dev_err(c->dev, "set active state of %s failed: (%d)\n",
-                       c->res_name, ret);
-               mutex_unlock(&rpmh_clk_lock);
-               return ret;
+               ret = clk_rpmh_send(c, RPMH_ACTIVE_ONLY_STATE, &cmd, enable);
+               if (ret) {
+                       dev_err(c->dev, "set active state of %s failed: (%d)\n",
+                               c->res_name, ret);
+               } else {
+                       c->last_sent_aggr_state = cmd_state;
+               }
        }
 
-       c->last_sent_aggr_state = cmd_state;
-
        mutex_unlock(&rpmh_clk_lock);
 
-       return 0;
+       return ret;
 }
 
 static int clk_rpmh_bcm_prepare(struct clk_hw *hw)