mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
qcacld-3.0: Refactor WE_PPS_* processing
One of the HDD functions with the highest cyclomatic complexity is __iw_setint_getnone(). The handing of all of the WE_PPS_* sub-ioctls has a complexity greater than 1, so refactor that logic into separate functions to help reduce the complexity of __iw_setint_getnone(). Change-Id: I2abde9c5e300302c7948049027d2db88c893211a CRs-Fixed: 2341123
This commit is contained in:
parent
e890acc0a7
commit
d0477f2b7a
1 changed files with 103 additions and 111 deletions
|
|
@ -4505,6 +4505,99 @@ static int hdd_we_clear_stats(struct hdd_adapter *adapter, int option)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int hdd_we_packet_power_save(struct hdd_adapter *adapter,
|
||||
packet_power_save id,
|
||||
const char *id_string,
|
||||
int value)
|
||||
{
|
||||
int errno;
|
||||
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
hdd_err_rl("Not supported in mode %d", adapter->device_mode);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdd_debug("%s %d", id_string, value);
|
||||
errno = wma_cli_set_command(adapter->session_id, id, value, PPS_CMD);
|
||||
if (errno)
|
||||
hdd_err("Failed to set firmware, errno %d", errno);
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
||||
#define hdd_we_packet_power_save(adapter, id, value) \
|
||||
hdd_we_packet_power_save(adapter, id, #id, value)
|
||||
|
||||
static int hdd_we_pps_paid_match(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_PAID_MATCH,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_gid_match(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_GID_MATCH,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_early_tim_clear(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_EARLY_TIM_CLEAR,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_early_dtim_clear(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_EARLY_DTIM_CLEAR,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_eof_pad_delim(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_EOF_PAD_DELIM,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_macaddr_mismatch(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_MACADDR_MISMATCH,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_delim_crc_fail(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_DELIM_CRC_FAIL,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_gid_nsts_zero(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_GID_NSTS_ZERO,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_rssi_check(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_RSSI_CHECK,
|
||||
value);
|
||||
}
|
||||
|
||||
static int hdd_we_pps_5g_ebt(struct hdd_adapter *adapter, int value)
|
||||
{
|
||||
return hdd_we_packet_power_save(adapter,
|
||||
WMI_VDEV_PPS_5G_EBT,
|
||||
value);
|
||||
}
|
||||
|
||||
/**
|
||||
* iw_setint_getnone() - Generic "set integer" private ioctl handler
|
||||
* @dev: device upon which the ioctl was received
|
||||
|
|
@ -4942,145 +5035,44 @@ static int __iw_setint_getnone(struct net_device *dev,
|
|||
break;
|
||||
|
||||
case WE_PPS_PAID_MATCH:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
hdd_debug("WMI_VDEV_PPS_PAID_MATCH val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_PAID_MATCH,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_paid_match(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_GID_MATCH:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_GID_MATCH val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_GID_MATCH,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_gid_match(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_EARLY_TIM_CLEAR:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug(" WMI_VDEV_PPS_EARLY_TIM_CLEAR val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_EARLY_TIM_CLEAR,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_early_tim_clear(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_EARLY_DTIM_CLEAR:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_EARLY_DTIM_CLEAR val %d",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_EARLY_DTIM_CLEAR,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_early_dtim_clear(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_EOF_PAD_DELIM:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_EOF_PAD_DELIM val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_EOF_PAD_DELIM,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_eof_pad_delim(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_MACADDR_MISMATCH:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_MACADDR_MISMATCH val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_MACADDR_MISMATCH,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_macaddr_mismatch(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_DELIM_CRC_FAIL:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_DELIM_CRC_FAIL val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_DELIM_CRC_FAIL,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_delim_crc_fail(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_GID_NSTS_ZERO:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_GID_NSTS_ZERO val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_GID_NSTS_ZERO,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_gid_nsts_zero(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_RSSI_CHECK:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
hdd_debug("WMI_VDEV_PPS_RSSI_CHECK val %d ",
|
||||
set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_RSSI_CHECK,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_rssi_check(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_PPS_5G_EBT:
|
||||
{
|
||||
if (adapter->device_mode != QDF_STA_MODE) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
hdd_debug("WMI_VDEV_PPS_5G_EBT val %d", set_value);
|
||||
ret = wma_cli_set_command(adapter->session_id,
|
||||
WMI_VDEV_PPS_5G_EBT,
|
||||
set_value, PPS_CMD);
|
||||
ret = hdd_we_pps_5g_ebt(adapter, set_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WE_SET_HTSMPS:
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue