[PATCH 1/5] staging: ks7010: invert conditional, reduce indent

Tobin C. Harding me at tobin.cc
Mon Feb 27 03:14:44 UTC 2017


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 at tobin.cc>
---
 drivers/staging/ks7010/ks7010_sdio.c | 122 ++++++++++++++++++-----------------
 1 file changed, 62 insertions(+), 60 deletions(-)

diff --git a/drivers/staging/ks7010/ks7010_sdio.c b/drivers/staging/ks7010/ks7010_sdio.c
index 6f9f746..1cf8b12 100644
--- a/drivers/staging/ks7010/ks7010_sdio.c
+++ b/drivers/staging/ks7010/ks7010_sdio.c
@@ -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;
-- 
2.7.4



More information about the devel mailing list