diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 3fb1c2928ef7..93ce9dc61184 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -4842,6 +4842,119 @@ static int hdd_we_set_txpow_5g(struct hdd_adapter *adapter, int value) value); } +static int hdd_we_set_vdev(struct hdd_adapter *adapter, + int 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, VDEV_CMD); + if (errno) + hdd_err("Failed to set firmware, errno %d", errno); + + return errno; +} + +#define hdd_we_set_vdev(adapter, id, value) \ + hdd_we_set_vdev(adapter, id, #id, value) + +static int hdd_we_set_txrx_fwstats(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMA_VDEV_TXRX_FWSTATS_ENABLE_CMDID, + value); +} + +static int hdd_we_txrx_fwstats_reset(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMA_VDEV_TXRX_FWSTATS_RESET_CMDID, + value); +} + +static int hdd_we_set_htsmps(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMI_STA_SMPS_FORCE_MODE_CMDID, + value); +} + +static int hdd_we_set_early_rx_adjust_enable(struct hdd_adapter *adapter, + int value) +{ + if ((value != 0) && (value != 1)) + return -EINVAL; + + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE, + value); +} + +static int hdd_we_set_early_rx_tgt_bmiss_num(struct hdd_adapter *adapter, + int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM, + value); +} + +static int hdd_we_set_early_rx_bmiss_sample_cycle(struct hdd_adapter *adapter, + int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE, + value); +} + +static int hdd_we_set_early_rx_slop_step(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_SLOP_STEP, + value); +} + +static int hdd_we_set_early_rx_init_slop(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_INIT_SLOP, + value); +} + +static int hdd_we_set_early_rx_adjust_pause(struct hdd_adapter *adapter, + int value) +{ + if ((value != 0) && (value != 1)) + return -EINVAL; + + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE, + value); +} + +static int hdd_we_set_early_rx_drift_sample(struct hdd_adapter *adapter, + int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_EARLY_RX_DRIFT_SAMPLE, + value); +} + +static int hdd_we_set_dcm(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_HE_DCM, + value); +} + +static int hdd_we_set_range_ext(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_vdev(adapter, + WMI_VDEV_PARAM_HE_RANGE_EXT, + value); +} + /** * iw_setint_getnone() - Generic "set integer" private ioctl handler * @dev: device upon which the ioctl was received @@ -5141,22 +5254,12 @@ static int __iw_setint_getnone(struct net_device *dev, } case WE_SET_TXRX_FWSTATS: - { - hdd_debug("WE_SET_TXRX_FWSTATS val %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMA_VDEV_TXRX_FWSTATS_ENABLE_CMDID, - set_value, VDEV_CMD); + ret = hdd_we_set_txrx_fwstats(adapter, set_value); break; - } case WE_TXRX_FWSTATS_RESET: - { - hdd_debug("WE_TXRX_FWSTATS_RESET val %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMA_VDEV_TXRX_FWSTATS_RESET_CMDID, - set_value, VDEV_CMD); + ret = hdd_we_txrx_fwstats_reset(adapter, set_value); break; - } case WE_DUMP_STATS: { @@ -5210,13 +5313,8 @@ static int __iw_setint_getnone(struct net_device *dev, break; case WE_SET_HTSMPS: - { - hdd_debug("WE_SET_HTSMPS val %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_STA_SMPS_FORCE_MODE_CMDID, - set_value, VDEV_CMD); + ret = hdd_we_set_htsmps(adapter, set_value); break; - } case WE_SET_QPOWER_MAX_PSPOLL_COUNT: ret = hdd_we_set_qpower_max_pspoll_count(adapter, set_value); @@ -5258,74 +5356,36 @@ static int __iw_setint_getnone(struct net_device *dev, sme_update_connect_debug(mac_handle, set_value); break; } + case WE_SET_EARLY_RX_ADJUST_ENABLE: - { - hdd_debug("SET early_rx enable val %d", set_value); - if ((set_value == 0) || (set_value == 1)) - ret = wma_cli_set_command( - adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE, - set_value, VDEV_CMD); - else - ret = -EINVAL; + ret = hdd_we_set_early_rx_adjust_enable(adapter, set_value); break; - } + case WE_SET_EARLY_RX_TGT_BMISS_NUM: - { - hdd_debug("SET early_rx bmiss val %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM, - set_value, VDEV_CMD); + ret = hdd_we_set_early_rx_tgt_bmiss_num(adapter, set_value); break; - } + case WE_SET_EARLY_RX_BMISS_SAMPLE_CYCLE: - { - hdd_debug("SET early_rx bmiss sample cycle %d", - set_value); - ret = wma_cli_set_command( - adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE, - set_value, VDEV_CMD); + ret = hdd_we_set_early_rx_bmiss_sample_cycle(adapter, + set_value); break; - } + case WE_SET_EARLY_RX_SLOP_STEP: - { - hdd_debug("SET early_rx bmiss slop step val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_SLOP_STEP, - set_value, VDEV_CMD); + ret = hdd_we_set_early_rx_slop_step(adapter, set_value); break; - } + case WE_SET_EARLY_RX_INIT_SLOP: - { - hdd_debug("SET early_rx init slop step val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_INIT_SLOP, - set_value, VDEV_CMD); + ret = hdd_we_set_early_rx_init_slop(adapter, set_value); break; - } + case WE_SET_EARLY_RX_ADJUST_PAUSE: - { - hdd_debug("SET early_rx adjust pause %d", set_value); - if ((set_value == 0) || (set_value == 1)) - ret = wma_cli_set_command( - adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE, - set_value, VDEV_CMD); - else - ret = -EINVAL; + ret = hdd_we_set_early_rx_adjust_pause(adapter, set_value); break; - } + case WE_SET_EARLY_RX_DRIFT_SAMPLE: - { - hdd_debug("SET early_rx drift sample %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_VDEV_PARAM_EARLY_RX_DRIFT_SAMPLE, - set_value, VDEV_CMD); + ret = hdd_we_set_early_rx_drift_sample(adapter, set_value); break; - } + case WE_SET_SCAN_DISABLE: { if (!mac_handle) @@ -5376,18 +5436,15 @@ static int __iw_setint_getnone(struct net_device *dev, case WE_SET_11AX_RATE: ret = hdd_set_11ax_rate(adapter, set_value, NULL); break; + case WE_SET_DCM: - hdd_debug("Set WMI_VDEV_PARAM_HE_DCM: %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_VDEV_PARAM_HE_DCM, set_value, - VDEV_CMD); + ret = hdd_we_set_dcm(adapter, set_value); break; + case WE_SET_RANGE_EXT: - hdd_debug("Set WMI_VDEV_PARAM_HE_RANGE_EXT: %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_VDEV_PARAM_HE_RANGE_EXT, - set_value, VDEV_CMD); + ret = hdd_we_set_range_ext(adapter, set_value); break; + case WE_SET_PDEV_RESET: ret = hdd_handle_pdev_reset(adapter, set_value); break;