diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 9ac489d5ca..2f3e2baa62 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -4734,6 +4734,113 @@ hdd_we_set_qpower_spec_max_spec_nodata_pspoll(struct hdd_adapter *adapter, return hdd_we_set_qpower(adapter, id, value); } +static int hdd_we_set_pdev(struct hdd_adapter *adapter, + WMI_PDEV_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, PDEV_CMD); + if (errno) + hdd_err("Failed to set firmware, errno %d", errno); + + return errno; +} + +#define hdd_we_set_pdev(adapter, id, value) \ + hdd_we_set_pdev(adapter, id, #id, value) + +static int hdd_we_set_ani_en_dis(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_ANI_ENABLE, + value); +} + +static int hdd_we_set_ani_poll_period(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_ANI_POLL_PERIOD, + value); +} + +static int hdd_we_set_ani_listen_period(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_ANI_LISTEN_PERIOD, + value); +} + +static int hdd_we_set_ani_ofdm_level(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_ANI_OFDM_LEVEL, + value); +} + +static int hdd_we_set_ani_cck_level(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_ANI_CCK_LEVEL, + value); +} + +static int hdd_we_set_dynamic_bw(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_DYNAMIC_BW, + value); +} + +static int hdd_we_set_cts_cbw(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_CTS_CBW, + value); +} + +static int hdd_we_set_tx_chainmask(struct hdd_adapter *adapter, int value) +{ + int errno; + + errno = hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_TX_CHAIN_MASK, + value); + if (errno) + return errno; + + return hdd_set_antenna_mode(adapter, adapter->hdd_ctx, value); +} + +static int hdd_we_set_rx_chainmask(struct hdd_adapter *adapter, int value) +{ + int errno; + + errno = hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_RX_CHAIN_MASK, + value); + if (errno) + return errno; + + return hdd_set_antenna_mode(adapter, adapter->hdd_ctx, value); +} + +static int hdd_we_set_txpow_2g(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_TXPOWER_LIMIT2G, + value); +} + +static int hdd_we_set_txpow_5g(struct hdd_adapter *adapter, int value) +{ + return hdd_we_set_pdev(adapter, + WMI_PDEV_PARAM_TXPOWER_LIMIT5G, + value); +} + /** * iw_setint_getnone() - Generic "set integer" private ioctl handler * @dev: device upon which the ioctl was received @@ -4879,73 +4986,32 @@ static int __iw_setint_getnone(struct net_device *dev, break; case WE_SET_ANI_EN_DIS: - { - hdd_debug("WMI_PDEV_PARAM_ANI_ENABLE val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_ANI_ENABLE, - set_value, PDEV_CMD); + ret = hdd_we_set_ani_en_dis(adapter, set_value); break; - } case WE_SET_ANI_POLL_PERIOD: - { - hdd_debug("WMI_PDEV_PARAM_ANI_POLL_PERIOD val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_ANI_POLL_PERIOD, - set_value, PDEV_CMD); + ret = hdd_we_set_ani_poll_period(adapter, set_value); break; - } case WE_SET_ANI_LISTEN_PERIOD: - { - hdd_debug("WMI_PDEV_PARAM_ANI_LISTEN_PERIOD val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_ANI_LISTEN_PERIOD, - set_value, PDEV_CMD); + ret = hdd_we_set_ani_listen_period(adapter, set_value); break; - } case WE_SET_ANI_OFDM_LEVEL: - { - hdd_debug("WMI_PDEV_PARAM_ANI_OFDM_LEVEL val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_ANI_OFDM_LEVEL, - set_value, PDEV_CMD); + ret = hdd_we_set_ani_ofdm_level(adapter, set_value); break; - } case WE_SET_ANI_CCK_LEVEL: - { - hdd_debug("WMI_PDEV_PARAM_ANI_CCK_LEVEL val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_ANI_CCK_LEVEL, - set_value, PDEV_CMD); + ret = hdd_we_set_ani_cck_level(adapter, set_value); break; - } case WE_SET_DYNAMIC_BW: - { - hdd_debug("WMI_PDEV_PARAM_DYNAMIC_BW val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_DYNAMIC_BW, - set_value, PDEV_CMD); + ret = hdd_we_set_dynamic_bw(adapter, set_value); break; - } case WE_SET_CTS_CBW: - { - hdd_debug("WE_SET_CTS_CBW val %d", set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_CTS_CBW, - set_value, PDEV_CMD); + ret = hdd_we_set_cts_cbw(adapter, set_value); break; - } case WE_SET_11N_RATE: ret = hdd_we_set_11n_rate(adapter, set_value); @@ -4969,46 +5035,20 @@ static int __iw_setint_getnone(struct net_device *dev, break; case WE_SET_TX_CHAINMASK: - { - hdd_debug("WMI_PDEV_PARAM_TX_CHAIN_MASK val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_TX_CHAIN_MASK, - set_value, PDEV_CMD); - ret = hdd_set_antenna_mode(adapter, hdd_ctx, set_value); + ret = hdd_we_set_tx_chainmask(adapter, set_value); break; - } case WE_SET_RX_CHAINMASK: - { - hdd_debug("WMI_PDEV_PARAM_RX_CHAIN_MASK val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_RX_CHAIN_MASK, - set_value, PDEV_CMD); - ret = hdd_set_antenna_mode(adapter, hdd_ctx, set_value); + ret = hdd_we_set_rx_chainmask(adapter, set_value); break; - } case WE_SET_TXPOW_2G: - { - hdd_debug("WMI_PDEV_PARAM_TXPOWER_LIMIT2G val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_TXPOWER_LIMIT2G, - set_value, PDEV_CMD); + ret = hdd_we_set_txpow_2g(adapter, set_value); break; - } case WE_SET_TXPOW_5G: - { - hdd_debug("WMI_PDEV_PARAM_TXPOWER_LIMIT5G val %d", - set_value); - ret = wma_cli_set_command(adapter->session_id, - WMI_PDEV_PARAM_TXPOWER_LIMIT5G, - set_value, PDEV_CMD); + ret = hdd_we_set_txpow_5g(adapter, set_value); break; - } /* Firmware debug log */ case WE_DBGLOG_LOG_LEVEL: