OSDN Git Service

staging: ks7010: invert conditional, reduce indent
authorTobin C. Harding <me@tobin.cc>
Mon, 27 Feb 2017 03:14:44 +0000 (14:14 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Mar 2017 08:17:05 +0000 (09:17 +0100)
Function _ks_wlan_hw_power_save has 5 levels of indentation. Reducing
the amount of indentation may make code clearer to read. Also a number
of other checkpatch warnings may be removed if we first reduce the
level of indentation in this function.

Invert conditional and return from function if new conditional
evaluates to true. Repeat on subsequent conditional. Reduce
indentation without changing the program logic.

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks7010_sdio.c

index 6f9f746..1cf8b12 100644 (file)
@@ -176,70 +176,72 @@ static int _ks_wlan_hw_power_save(struct ks_wlan_private *priv)
        if (priv->reg.powermgt == POWMGT_ACTIVE_MODE)
                return 0;
 
-       if (priv->reg.operation_mode == MODE_INFRASTRUCTURE &&
-           (priv->connect_status & CONNECT_STATUS_MASK) == CONNECT_STATUS) {
-               if (priv->dev_state == DEVICE_STATE_SLEEP) {
-                       switch (atomic_read(&priv->psstatus.status)) {
-                       case PS_SNOOZE: /* 4 */
+       if (priv->reg.operation_mode != MODE_INFRASTRUCTURE ||
+           (priv->connect_status & CONNECT_STATUS_MASK) != CONNECT_STATUS)
+               return 0;
+
+       if (priv->dev_state != DEVICE_STATE_SLEEP)
+               return 0;
+
+       switch (atomic_read(&priv->psstatus.status)) {
+       case PS_SNOOZE: /* 4 */
+               break;
+       default:
+               DPRINTK(5, "\npsstatus.status=%d\npsstatus.confirm_wait=%d\npsstatus.snooze_guard=%d\ncnt_txqbody=%d\n",
+                       atomic_read(&priv->psstatus.status),
+                       atomic_read(&priv->psstatus.confirm_wait),
+                       atomic_read(&priv->psstatus.snooze_guard),
+                       cnt_txqbody(priv));
+
+               if (!atomic_read(&priv->psstatus.confirm_wait)
+                       && !atomic_read(&priv->psstatus.snooze_guard)
+                       && !cnt_txqbody(priv)) {
+                       retval =
+                               ks7010_sdio_read(priv, INT_PENDING,
+                                               &rw_data,
+                                               sizeof(rw_data));
+                       if (retval) {
+                               DPRINTK(1,
+                                       " error : INT_PENDING=%02X\n",
+                                       rw_data);
+                               queue_delayed_work(priv->ks_wlan_hw.ks7010sdio_wq,
+                                               &priv->ks_wlan_hw.rw_wq, 1);
                                break;
-                       default:
-                               DPRINTK(5, "\npsstatus.status=%d\npsstatus.confirm_wait=%d\npsstatus.snooze_guard=%d\ncnt_txqbody=%d\n",
-                                       atomic_read(&priv->psstatus.status),
-                                       atomic_read(&priv->psstatus.confirm_wait),
-                                       atomic_read(&priv->psstatus.snooze_guard),
-                                       cnt_txqbody(priv));
-
-                               if (!atomic_read(&priv->psstatus.confirm_wait)
-                                   && !atomic_read(&priv->psstatus.snooze_guard)
-                                   && !cnt_txqbody(priv)) {
-                                       retval =
-                                           ks7010_sdio_read(priv, INT_PENDING,
-                                                            &rw_data,
-                                                            sizeof(rw_data));
-                                       if (retval) {
-                                               DPRINTK(1,
-                                                       " error : INT_PENDING=%02X\n",
-                                                       rw_data);
-                                               queue_delayed_work(priv->ks_wlan_hw.ks7010sdio_wq,
-                                                                  &priv->ks_wlan_hw.rw_wq, 1);
-                                               break;
-                                       }
-                                       if (!rw_data) {
-                                               rw_data = GCR_B_DOZE;
-                                               retval =
-                                                   ks7010_sdio_write(priv,
-                                                                     GCR_B,
-                                                                     &rw_data,
-                                                                     sizeof(rw_data));
-                                               if (retval) {
-                                                       DPRINTK(1,
-                                                               " error : GCR_B=%02X\n",
-                                                               rw_data);
-                                                       queue_delayed_work
-                                                           (priv->ks_wlan_hw.ks7010sdio_wq,
-                                                            &priv->ks_wlan_hw.rw_wq, 1);
-                                                       break;
-                                               }
-                                               DPRINTK(4,
-                                                       "PMG SET!! : GCR_B=%02X\n",
-                                                       rw_data);
-                                               atomic_set(&priv->psstatus.
-                                                          status, PS_SNOOZE);
-                                               DPRINTK(3,
-                                                       "psstatus.status=PS_SNOOZE\n");
-                                       } else {
-                                               queue_delayed_work(priv->ks_wlan_hw.ks7010sdio_wq,
-                                                                  &priv->ks_wlan_hw.rw_wq, 1);
-                                       }
-                               } else {
-                                       queue_delayed_work(priv->ks_wlan_hw.
-                                                          ks7010sdio_wq,
-                                                          &priv->ks_wlan_hw.rw_wq,
-                                                          0);
+                       }
+                       if (!rw_data) {
+                               rw_data = GCR_B_DOZE;
+                               retval =
+                                       ks7010_sdio_write(priv,
+                                                       GCR_B,
+                                                       &rw_data,
+                                                       sizeof(rw_data));
+                               if (retval) {
+                                       DPRINTK(1,
+                                               " error : GCR_B=%02X\n",
+                                               rw_data);
+                                       queue_delayed_work
+                                               (priv->ks_wlan_hw.ks7010sdio_wq,
+                                                       &priv->ks_wlan_hw.rw_wq, 1);
+                                       break;
                                }
-                               break;
+                               DPRINTK(4,
+                                       "PMG SET!! : GCR_B=%02X\n",
+                                       rw_data);
+                               atomic_set(&priv->psstatus.
+                                       status, PS_SNOOZE);
+                               DPRINTK(3,
+                                       "psstatus.status=PS_SNOOZE\n");
+                       } else {
+                               queue_delayed_work(priv->ks_wlan_hw.ks7010sdio_wq,
+                                               &priv->ks_wlan_hw.rw_wq, 1);
                        }
+               } else {
+                       queue_delayed_work(priv->ks_wlan_hw.
+                                       ks7010sdio_wq,
+                                       &priv->ks_wlan_hw.rw_wq,
+                                       0);
                }
+               break;
        }
 
        return 0;