Re: [v2, 1/3] mwifiex: add a cfg80211 .get_tx_power operation callback

2016-07-05 Thread Kalle Valo
Javier Martinez Canillas  wrote:
> The mwifiex driver implements a cfg80211 .set_tx_power operation handler
> but doesn't have the inverse .get_tx_power callback.
> 
> This not only has the effect that the Tx power can't be reported to user
> space tools such as iwconfig and iwlist but also that the wireless core
> prints a warning when a new wiphy is created due an cfg80211 operation
> being implemented without its counterpart.
> 
> After this patch, the Tx power is properly reported to user-space tools:
> 
> $ iwlist mlan0 txpower
> mlan0 unknown transmit-power information.
> 
>   Current Tx-Power=13 dBm   (19 mW)
> 
> and also the following warning isn't shown anymore on the driver probe:
> 
> WARNING: CPU: 3 PID: 127 at net/wireless/core.c:366 wiphy_new_nm+0x66c/0x6ac
> Modules linked in: mwifiex_sdio mwifiex
> CPU: 3 PID: 127 Comm: kworker/3:1 Tainted: GW   
> 4.7.0-rc1-next-20160531-6-g569df5b983f3
> Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> Workqueue: events request_firmware_work_func
> [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
> [] (show_stack) from [] (dump_stack+0x88/0x9c)
> [] (dump_stack) from [] (__warn+0xe8/0x100)
> [] (__warn) from [] (warn_slowpath_null+0x20/0x28)
> [] (warn_slowpath_null) from [] (wiphy_new_nm+0x66c/0x6ac)
> [] (wiphy_new_nm) from [] 
> (mwifiex_register_cfg80211+0x28/0x3f0 [mwifiex])
> [] (mwifiex_register_cfg80211 [mwifiex]) from [] 
> (mwifiex_fw_dpc+0x2b0/0x474 [mwifiex])
> [] (mwifiex_fw_dpc [mwifiex]) from [] 
> (request_firmware_work_func+0x30/0x58)
> [] (request_firmware_work_func) from [] 
> (process_one_work+0x124/0x338)
> [] (process_one_work) from [] (worker_thread+0x38/0x4d4)
> [] (worker_thread) from [] (kthread+0xdc/0xf4)
> [] (kthread) from [] (ret_from_fork+0x14/0x3c)
> 
> Signed-off-by: Javier Martinez Canillas 
> Tested-by: Enric Balletbo i Serra 

Thanks, 2 patches applied to wireless-drivers-next.git:

7d54bacadce1 mwifiex: add a cfg80211 .get_tx_power operation callback
3ee712857958 mwifiex: add get_antenna support for cfg80211

-- 
Sent by pwcli
https://patchwork.kernel.org/patch/9158855/

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/3] mwifiex: add a cfg80211 .get_tx_power operation callback

2016-06-09 Thread Enric Balletbo Serra
2016-06-06 19:02 GMT+02:00 Javier Martinez Canillas :
> The mwifiex driver implements a cfg80211 .set_tx_power operation handler
> but doesn't have the inverse .get_tx_power callback.
>
> This not only has the effect that the Tx power can't be reported to user
> space tools such as iwconfig and iwlist but also that the wireless core
> prints a warning when a new wiphy is created due an cfg80211 operation
> being implemented without its counterpart.
>
> After this patch, the Tx power is properly reported to user-space tools:
>
> $ iwlist mlan0 txpower
> mlan0 unknown transmit-power information.
>
>   Current Tx-Power=13 dBm   (19 mW)
>
> and also the following warning isn't shown anymore on the driver probe:
>
> WARNING: CPU: 3 PID: 127 at net/wireless/core.c:366 wiphy_new_nm+0x66c/0x6ac
> Modules linked in: mwifiex_sdio mwifiex
> CPU: 3 PID: 127 Comm: kworker/3:1 Tainted: GW   
> 4.7.0-rc1-next-20160531-6-g569df5b983f3
> Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> Workqueue: events request_firmware_work_func
> [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
> [] (show_stack) from [] (dump_stack+0x88/0x9c)
> [] (dump_stack) from [] (__warn+0xe8/0x100)
> [] (__warn) from [] (warn_slowpath_null+0x20/0x28)
> [] (warn_slowpath_null) from [] (wiphy_new_nm+0x66c/0x6ac)
> [] (wiphy_new_nm) from [] 
> (mwifiex_register_cfg80211+0x28/0x3f0 [mwifiex])
> [] (mwifiex_register_cfg80211 [mwifiex]) from [] 
> (mwifiex_fw_dpc+0x2b0/0x474 [mwifiex])
> [] (mwifiex_fw_dpc [mwifiex]) from [] 
> (request_firmware_work_func+0x30/0x58)
> [] (request_firmware_work_func) from [] 
> (process_one_work+0x124/0x338)
> [] (process_one_work) from [] (worker_thread+0x38/0x4d4)
> [] (worker_thread) from [] (kthread+0xdc/0xf4)
> [] (kthread) from [] (ret_from_fork+0x14/0x3c)
>
> Signed-off-by: Javier Martinez Canillas 
> ---
>
>  drivers/net/wireless/marvell/mwifiex/cfg80211.c | 24 
>  1 file changed, 24 insertions(+)
>
> diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c 
> b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> index ff948a92..b17f3d09a2c7 100644
> --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
> @@ -377,6 +377,29 @@ mwifiex_cfg80211_set_tx_power(struct wiphy *wiphy,
>  }
>
>  /*
> + * CFG802.11 operation handler to get Tx power.
> + */
> +static int
> +mwifiex_cfg80211_get_tx_power(struct wiphy *wiphy,
> + struct wireless_dev *wdev,
> + int *dbm)
> +{
> +   struct mwifiex_adapter *adapter = mwifiex_cfg80211_get_adapter(wiphy);
> +   struct mwifiex_private *priv = mwifiex_get_priv(adapter,
> +   MWIFIEX_BSS_ROLE_ANY);
> +   int ret = mwifiex_send_cmd(priv, HostCmd_CMD_RF_TX_PWR,
> +  HostCmd_ACT_GEN_GET, 0, NULL, true);
> +
> +   if (ret < 0)
> +   return ret;
> +
> +   /* tx_power_level is set in HostCmd_CMD_RF_TX_PWR command handler */
> +   *dbm = priv->tx_power_level;
> +
> +   return 0;
> +}
> +
> +/*
>   * CFG802.11 operation handler to set Power Save option.
>   *
>   * The timeout value, if provided, is currently ignored.
> @@ -3940,6 +3963,7 @@ static struct cfg80211_ops mwifiex_cfg80211_ops = {
> .set_default_key = mwifiex_cfg80211_set_default_key,
> .set_power_mgmt = mwifiex_cfg80211_set_power_mgmt,
> .set_tx_power = mwifiex_cfg80211_set_tx_power,
> +   .get_tx_power = mwifiex_cfg80211_get_tx_power,
> .set_bitrate_mask = mwifiex_cfg80211_set_bitrate_mask,
> .start_ap = mwifiex_cfg80211_start_ap,
> .stop_ap = mwifiex_cfg80211_stop_ap,
> --
> 2.5.5
>

This fixes the WARN_ON and makes things work, thanks.

Tested-by: Enric Balletbo i Serra 
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html