OSDN Git Service

staging: gasket: apex_clock_gating simplify logic, reduce indentation
authorTodd Poynor <toddpoynor@google.com>
Fri, 20 Jul 2018 03:49:08 +0000 (20:49 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Jul 2018 06:50:35 +0000 (08:50 +0200)
Collapse together two checks and return immediately, avoid conditional
indentation for most of function code.

Reported-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Simon Que <sque@chromium.org>
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/gasket/apex_driver.c

index 3a83c3d..a01b1f2 100644 (file)
@@ -666,33 +666,30 @@ static long apex_clock_gating(struct gasket_dev *gasket_dev, ulong arg)
 {
        struct apex_gate_clock_ioctl ibuf;
 
-       if (bypass_top_level)
+       if (bypass_top_level || !allow_sw_clock_gating)
                return 0;
 
-       if (allow_sw_clock_gating) {
-               if (copy_from_user(&ibuf, (void __user *)arg, sizeof(ibuf)))
-                       return -EFAULT;
+       if (copy_from_user(&ibuf, (void __user *)arg, sizeof(ibuf)))
+               return -EFAULT;
 
-               gasket_log_error(
-                       gasket_dev, "%s %llu", __func__, ibuf.enable);
+       gasket_log_error(gasket_dev, "%s %llu", __func__, ibuf.enable);
 
-               if (ibuf.enable) {
-                       /* Quiesce AXI, gate GCB clock. */
-                       gasket_read_modify_write_32(
-                               gasket_dev, APEX_BAR_INDEX,
-                               APEX_BAR2_REG_AXI_QUIESCE, 0x1, 1, 16);
-                       gasket_read_modify_write_32(
-                               gasket_dev, APEX_BAR_INDEX,
-                               APEX_BAR2_REG_GCB_CLOCK_GATE, 0x1, 2, 18);
-               } else {
-                       /* Un-gate GCB clock, un-quiesce AXI. */
-                       gasket_read_modify_write_32(
-                               gasket_dev, APEX_BAR_INDEX,
-                               APEX_BAR2_REG_GCB_CLOCK_GATE, 0x0, 2, 18);
-                       gasket_read_modify_write_32(
-                               gasket_dev, APEX_BAR_INDEX,
-                               APEX_BAR2_REG_AXI_QUIESCE, 0x0, 1, 16);
-               }
+       if (ibuf.enable) {
+               /* Quiesce AXI, gate GCB clock. */
+               gasket_read_modify_write_32(
+                   gasket_dev, APEX_BAR_INDEX,
+                   APEX_BAR2_REG_AXI_QUIESCE, 0x1, 1, 16);
+               gasket_read_modify_write_32(
+                   gasket_dev, APEX_BAR_INDEX,
+                   APEX_BAR2_REG_GCB_CLOCK_GATE, 0x1, 2, 18);
+       } else {
+               /* Un-gate GCB clock, un-quiesce AXI. */
+               gasket_read_modify_write_32(
+                   gasket_dev, APEX_BAR_INDEX,
+                   APEX_BAR2_REG_GCB_CLOCK_GATE, 0x0, 2, 18);
+               gasket_read_modify_write_32(
+                   gasket_dev, APEX_BAR_INDEX,
+                   APEX_BAR2_REG_AXI_QUIESCE, 0x0, 1, 16);
        }
        return 0;
 }