瀏覽代碼

qcacld-3.0: Refactor WE_SET_QPOWER_* processing

One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_QPOWER_* ioctl handling into separate
functions.

Change-Id: Ied945040f1c055e261b611f7265e237c76d5f518
CRs-Fixed: 2345117
Jeff Johnson 6 年之前
父節點
當前提交
cc7776d636
共有 1 個文件被更改,包括 62 次插入31 次删除
  1. 62 31
      core/hdd/src/wlan_hdd_wext.c

+ 62 - 31
core/hdd/src/wlan_hdd_wext.c

@@ -4678,6 +4678,62 @@ static int hdd_we_pps_5g_ebt(struct hdd_adapter *adapter, int value)
 					value);
 }
 
+static int hdd_we_set_qpower(struct hdd_adapter *adapter,
+			     enum wmi_sta_powersave_param id,
+			     const char *id_string,
+			     int value)
+{
+	int errno;
+
+	hdd_debug("%s %d", id_string, value);
+	errno = wma_cli_set_command(adapter->session_id, id, value, QPOWER_CMD);
+	if (errno)
+		hdd_err("Failed to set firmware, errno %d", errno);
+
+	return errno;
+}
+
+#define hdd_we_set_qpower(adapter, id, value) \
+			hdd_we_set_qpower(adapter, id, #id, value)
+
+static int
+hdd_we_set_qpower_max_pspoll_count(struct hdd_adapter *adapter, int value)
+{
+	enum wmi_sta_powersave_param id =
+		WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT;
+
+	return hdd_we_set_qpower(adapter, id, value);
+}
+
+static int
+hdd_we_set_qpower_max_tx_before_wake(struct hdd_adapter *adapter, int value)
+{
+	enum wmi_sta_powersave_param id =
+		WMI_STA_PS_PARAM_QPOWER_MAX_TX_BEFORE_WAKE;
+
+	return hdd_we_set_qpower(adapter, id, value);
+}
+
+static int
+hdd_we_set_qpower_spec_pspoll_wake_interval(struct hdd_adapter *adapter,
+					    int value)
+{
+	enum wmi_sta_powersave_param id =
+		WMI_STA_PS_PARAM_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL;
+
+	return hdd_we_set_qpower(adapter, id, value);
+}
+
+static int
+hdd_we_set_qpower_spec_max_spec_nodata_pspoll(struct hdd_adapter *adapter,
+					      int value)
+{
+	enum wmi_sta_powersave_param id =
+		WMI_STA_PS_PARAM_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL;
+
+	return hdd_we_set_qpower(adapter, id, value);
+}
+
 /**
  * iw_setint_getnone() - Generic "set integer" private ioctl handler
  * @dev: device upon which the ioctl was received
@@ -5122,47 +5178,22 @@ static int __iw_setint_getnone(struct net_device *dev,
 	}
 
 	case WE_SET_QPOWER_MAX_PSPOLL_COUNT:
-	{
-		hdd_debug("WE_SET_QPOWER_MAX_PSPOLL_COUNT val %d",
-		       set_value);
-		ret = wma_cli_set_command(adapter->session_id,
-					  WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT,
-					  set_value, QPOWER_CMD);
+		ret = hdd_we_set_qpower_max_pspoll_count(adapter, set_value);
 		break;
-	}
 
 	case WE_SET_QPOWER_MAX_TX_BEFORE_WAKE:
-	{
-		hdd_debug("WE_SET_QPOWER_MAX_TX_BEFORE_WAKE val %d",
-		       set_value);
-		ret = wma_cli_set_command(
-				adapter->session_id,
-				WMI_STA_PS_PARAM_QPOWER_MAX_TX_BEFORE_WAKE,
-				set_value, QPOWER_CMD);
+		ret = hdd_we_set_qpower_max_tx_before_wake(adapter, set_value);
 		break;
-	}
 
 	case WE_SET_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL:
-	{
-		hdd_debug("WE_SET_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL val %d",
-		       set_value);
-		ret = wma_cli_set_command(
-			adapter->session_id,
-			WMI_STA_PS_PARAM_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL,
-			set_value, QPOWER_CMD);
+		ret = hdd_we_set_qpower_spec_pspoll_wake_interval(adapter,
+								  set_value);
 		break;
-	}
 
 	case WE_SET_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL:
-	{
-		hdd_debug("WE_SET_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL val %d",
-		       set_value);
-		ret = wma_cli_set_command(
-			adapter->session_id,
-			WMI_STA_PS_PARAM_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL,
-			set_value, QPOWER_CMD);
+		ret = hdd_we_set_qpower_spec_max_spec_nodata_pspoll(adapter,
+								    set_value);
 		break;
-	}
 
 	case WE_MCC_CONFIG_LATENCY:
 	{