* [PATCH 0/3] Fix issues with connect and get_channel implementation
@ 2018-03-09 18:15 Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 1/3] Revert "mwifiex: fix incorrect ht capability problem" Ganapathi Bhat
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Ganapathi Bhat @ 2018-03-09 18:15 UTC (permalink / raw)
To: linux-wireless
Cc: Brian Norris, Cathy Luo, Xinming Hu, Zhiyuan Yang, James Cao,
Mangesh Malusare, Ganapathi Bhat
First change reverts one of our earlier patch, which did change
the hardware info stored in driver. Second patch improves the
first(reverted) patch. Third change adds a new command, which
fixes an issue with get_channel implementation. Three patches
needed to make sure the driver association are working as
expected.
Ganapathi Bhat (3):
Revert "mwifiex: fix incorrect ht capability problem"
mwifiex: fix incorrect ht capability problem
mwifiex: get_channel from firmware
drivers/net/wireless/marvell/mwifiex/11n.c | 30 ++++++++++++
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 40 ++++++++++------
drivers/net/wireless/marvell/mwifiex/decl.h | 17 +++++++
drivers/net/wireless/marvell/mwifiex/fw.h | 7 +++
drivers/net/wireless/marvell/mwifiex/main.h | 16 ++++++-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 22 +++++++++
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 19 ++++++++
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 56 +++++-----------------
8 files changed, 148 insertions(+), 59 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] Revert "mwifiex: fix incorrect ht capability problem"
2018-03-09 18:15 [PATCH 0/3] Fix issues with connect and get_channel implementation Ganapathi Bhat
@ 2018-03-09 18:15 ` Ganapathi Bhat
2018-03-13 16:54 ` [1/3] " Kalle Valo
2018-03-09 18:15 ` [PATCH 2/3] mwifiex: fix incorrect ht capability problem Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 3/3] mwifiex: get_channel from firmware Ganapathi Bhat
2 siblings, 1 reply; 7+ messages in thread
From: Ganapathi Bhat @ 2018-03-09 18:15 UTC (permalink / raw)
To: linux-wireless
Cc: Brian Norris, Cathy Luo, Xinming Hu, Zhiyuan Yang, James Cao,
Mangesh Malusare, Ganapathi Bhat
This reverts commit bcc920e8f08336cbbdcdba7c4449c27137e6b4b9.
Drivers gets hardware info and updates ht_cap field of
wiphy->bands during initialization. Once updated during init,
ht_cap must not be modified as it reflects the capability
supported by hardwawre. Above patch tries to modify the ht_cap
field and this results in wrongly advertising capabilities during
association.
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
---
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 44 +-----------------------
1 file changed, 1 insertion(+), 43 deletions(-)
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
index a6077ab..ed66f12 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
@@ -146,7 +146,6 @@ int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
size_t beacon_ie_len;
struct mwifiex_bss_priv *bss_priv = (void *)bss->priv;
const struct cfg80211_bss_ies *ies;
- int ret;
rcu_read_lock();
ies = rcu_dereference(bss->ies);
@@ -190,48 +189,7 @@ int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
if (bss_desc->cap_info_bitmap & WLAN_CAPABILITY_SPECTRUM_MGMT)
bss_desc->sensed_11h = true;
- ret = mwifiex_update_bss_desc_with_ie(priv->adapter, bss_desc);
- if (ret)
- return ret;
-
- /* Update HT40 capability based on current channel information */
- if (bss_desc->bcn_ht_oper && bss_desc->bcn_ht_cap) {
- u8 ht_param = bss_desc->bcn_ht_oper->ht_param;
- u8 radio = mwifiex_band_to_radio_type(bss_desc->bss_band);
- struct ieee80211_supported_band *sband =
- priv->wdev.wiphy->bands[radio];
- int freq = ieee80211_channel_to_frequency(bss_desc->channel,
- radio);
- struct ieee80211_channel *chan =
- ieee80211_get_channel(priv->adapter->wiphy, freq);
-
- switch (ht_param & IEEE80211_HT_PARAM_CHA_SEC_OFFSET) {
- case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
- if (chan->flags & IEEE80211_CHAN_NO_HT40PLUS) {
- sband->ht_cap.cap &=
- ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_40;
- } else {
- sband->ht_cap.cap |=
- IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
- IEEE80211_HT_CAP_SGI_40;
- }
- break;
- case IEEE80211_HT_PARAM_CHA_SEC_BELOW:
- if (chan->flags & IEEE80211_CHAN_NO_HT40MINUS) {
- sband->ht_cap.cap &=
- ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
- sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_40;
- } else {
- sband->ht_cap.cap |=
- IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
- IEEE80211_HT_CAP_SGI_40;
- }
- break;
- }
- }
-
- return 0;
+ return mwifiex_update_bss_desc_with_ie(priv->adapter, bss_desc);
}
void mwifiex_dnld_txpwr_table(struct mwifiex_private *priv)
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] mwifiex: fix incorrect ht capability problem
2018-03-09 18:15 [PATCH 0/3] Fix issues with connect and get_channel implementation Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 1/3] Revert "mwifiex: fix incorrect ht capability problem" Ganapathi Bhat
@ 2018-03-09 18:15 ` Ganapathi Bhat
2018-03-14 9:51 ` Kalle Valo
2018-03-09 18:15 ` [PATCH 3/3] mwifiex: get_channel from firmware Ganapathi Bhat
2 siblings, 1 reply; 7+ messages in thread
From: Ganapathi Bhat @ 2018-03-09 18:15 UTC (permalink / raw)
To: linux-wireless
Cc: Brian Norris, Cathy Luo, Xinming Hu, Zhiyuan Yang, James Cao,
Mangesh Malusare, Ganapathi Bhat
IEEE80211_CHAN_NO_HT40PLUS and IEEE80211_CHAN_NO_HT40PLUS channel
flags tell if HT40 operation is allowed on a channel or not.
This patch ensures ht_capability information is modified
accordingly so that we don't end up creating a HT40 connection
when it's not allowed for current regulatory domain.
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
---
drivers/net/wireless/marvell/mwifiex/11n.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/drivers/net/wireless/marvell/mwifiex/11n.c b/drivers/net/wireless/marvell/mwifiex/11n.c
index 8772e39..feebfdc 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n.c
@@ -341,6 +341,36 @@ int mwifiex_cmd_11n_cfg(struct mwifiex_private *priv,
le16_to_cpu(ht_cap->header.len));
mwifiex_fill_cap_info(priv, radio_type, &ht_cap->ht_cap);
+ /* Update HT40 capability from current channel information */
+ if (bss_desc->bcn_ht_oper) {
+ u8 ht_param = bss_desc->bcn_ht_oper->ht_param;
+ u8 radio =
+ mwifiex_band_to_radio_type(bss_desc->bss_band);
+ int freq =
+ ieee80211_channel_to_frequency(bss_desc->channel,
+ radio);
+ struct ieee80211_channel *chan =
+ ieee80211_get_channel(priv->adapter->wiphy, freq);
+
+ switch (ht_param & IEEE80211_HT_PARAM_CHA_SEC_OFFSET) {
+ case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
+ if (chan->flags & IEEE80211_CHAN_NO_HT40PLUS) {
+ ht_cap->ht_cap.cap_info &=
+ ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
+ ht_cap->ht_cap.cap_info &=
+ ~IEEE80211_HT_CAP_SGI_40;
+ }
+ break;
+ case IEEE80211_HT_PARAM_CHA_SEC_BELOW:
+ if (chan->flags & IEEE80211_CHAN_NO_HT40MINUS) {
+ ht_cap->ht_cap.cap_info &=
+ ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
+ ht_cap->ht_cap.cap_info &=
+ ~IEEE80211_HT_CAP_SGI_40;
+ }
+ break;
+ }
+ }
*buffer += sizeof(struct mwifiex_ie_types_htcap);
ret_len += sizeof(struct mwifiex_ie_types_htcap);
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] mwifiex: get_channel from firmware
2018-03-09 18:15 [PATCH 0/3] Fix issues with connect and get_channel implementation Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 1/3] Revert "mwifiex: fix incorrect ht capability problem" Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 2/3] mwifiex: fix incorrect ht capability problem Ganapathi Bhat
@ 2018-03-09 18:15 ` Ganapathi Bhat
2 siblings, 0 replies; 7+ messages in thread
From: Ganapathi Bhat @ 2018-03-09 18:15 UTC (permalink / raw)
To: linux-wireless
Cc: Brian Norris, Cathy Luo, Xinming Hu, Zhiyuan Yang, James Cao,
Mangesh Malusare, Ganapathi Bhat
At present driver gets chan_type by referring to
IEEE80211_HT_PARAM_CHA_SEC_OFFSET, in ASSOC response. Sometimes
AP shows IEEE80211_HT_PARAM_CHA_SEC_OFFSET as above/below in
assoc response, even if the association is done on HT20 channel
only. So, it will be accurate to get econdary channel offset from
firmware.
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
---
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 40 ++++++++++++++--------
drivers/net/wireless/marvell/mwifiex/decl.h | 17 +++++++++
drivers/net/wireless/marvell/mwifiex/fw.h | 7 ++++
drivers/net/wireless/marvell/mwifiex/main.h | 16 ++++++++-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 22 ++++++++++++
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 19 ++++++++++
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 12 +++++++
7 files changed, 117 insertions(+), 16 deletions(-)
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index ce4432c..7f7e9de 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -95,18 +95,32 @@ u8 mwifiex_chan_type_to_sec_chan_offset(enum nl80211_channel_type chan_type)
/* This function maps IEEE HT secondary channel type to NL80211 channel type
*/
-u8 mwifiex_sec_chan_offset_to_chan_type(u8 second_chan_offset)
+u8 mwifiex_get_chan_type(struct mwifiex_private *priv)
{
- switch (second_chan_offset) {
- case IEEE80211_HT_PARAM_CHA_SEC_NONE:
- return NL80211_CHAN_HT20;
- case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
- return NL80211_CHAN_HT40PLUS;
- case IEEE80211_HT_PARAM_CHA_SEC_BELOW:
- return NL80211_CHAN_HT40MINUS;
- default:
- return NL80211_CHAN_HT20;
+ struct mwifiex_channel_band channel_band;
+ int ret;
+
+ ret = mwifiex_get_chan_info(priv, &channel_band);
+
+ if (!ret) {
+ switch (channel_band.band_config.chan_width) {
+ case CHAN_BW_20MHZ:
+ if (IS_11N_ENABLED(priv))
+ return NL80211_CHAN_HT20;
+ else
+ return NL80211_CHAN_NO_HT;
+ case CHAN_BW_40MHZ:
+ if (channel_band.band_config.chan2_offset ==
+ SEC_CHAN_ABOVE)
+ return NL80211_CHAN_HT40PLUS;
+ else
+ return NL80211_CHAN_HT40MINUS;
+ default:
+ return NL80211_CHAN_HT20;
+ }
}
+
+ return NL80211_CHAN_HT20;
}
/*
@@ -3937,7 +3951,6 @@ static int mwifiex_cfg80211_get_channel(struct wiphy *wiphy,
struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev);
struct mwifiex_bssdescriptor *curr_bss;
struct ieee80211_channel *chan;
- u8 second_chan_offset;
enum nl80211_channel_type chan_type;
enum nl80211_band band;
int freq;
@@ -3954,10 +3967,7 @@ static int mwifiex_cfg80211_get_channel(struct wiphy *wiphy,
chan = ieee80211_get_channel(wiphy, freq);
if (priv->ht_param_present) {
- second_chan_offset = priv->assoc_resp_ht_param &
- IEEE80211_HT_PARAM_CHA_SEC_OFFSET;
- chan_type = mwifiex_sec_chan_offset_to_chan_type
- (second_chan_offset);
+ chan_type = mwifiex_get_chan_type(priv);
cfg80211_chandef_create(chandef, chan, chan_type);
} else {
cfg80211_chandef_create(chandef, chan,
diff --git a/drivers/net/wireless/marvell/mwifiex/decl.h b/drivers/net/wireless/marvell/mwifiex/decl.h
index 188e4c3..46696ea 100644
--- a/drivers/net/wireless/marvell/mwifiex/decl.h
+++ b/drivers/net/wireless/marvell/mwifiex/decl.h
@@ -294,4 +294,21 @@ enum rdwr_status {
RDWR_STATUS_DONE = 2
};
+enum mwifiex_chan_width {
+ CHAN_BW_20MHZ = 0,
+ CHAN_BW_10MHZ,
+ CHAN_BW_40MHZ,
+ CHAN_BW_80MHZ,
+ CHAN_BW_8080MHZ,
+ CHAN_BW_160MHZ,
+ CHAN_BW_5MHZ,
+};
+
+enum mwifiex_chan_offset {
+ SEC_CHAN_NONE = 0,
+ SEC_CHAN_ABOVE = 1,
+ SEC_CHAN_5MHZ = 2,
+ SEC_CHAN_BELOW = 3
+};
+
#endif /* !_MWIFIEX_DECL_H_ */
diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
index 9c2cdef..c5dc518 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -411,6 +411,7 @@ enum MWIFIEX_802_11_PRIVACY_FILTER {
#define HostCmd_CMD_TDLS_OPER 0x0122
#define HostCmd_CMD_FW_DUMP_EVENT 0x0125
#define HostCmd_CMD_SDIO_SP_RX_AGGR_CFG 0x0223
+#define HostCmd_CMD_STA_CONFIGURE 0x023f
#define HostCmd_CMD_CHAN_REGION_CFG 0x0242
#define HostCmd_CMD_PACKET_AGGR_CTRL 0x0251
@@ -2285,6 +2286,11 @@ struct host_cmd_ds_pkt_aggr_ctrl {
__le16 tx_aggr_align;
} __packed;
+struct host_cmd_ds_sta_configure {
+ __le16 action;
+ u8 tlv_buffer[0];
+} __packed;
+
struct host_cmd_ds_command {
__le16 command;
__le16 size;
@@ -2361,6 +2367,7 @@ struct host_cmd_ds_command {
struct host_cmd_ds_gtk_rekey_params rekey;
struct host_cmd_ds_chan_region_cfg reg_cfg;
struct host_cmd_ds_pkt_aggr_ctrl pkt_aggr_ctrl;
+ struct host_cmd_ds_sta_configure sta_cfg;
} params;
} __packed;
diff --git a/drivers/net/wireless/marvell/mwifiex/main.h b/drivers/net/wireless/marvell/mwifiex/main.h
index f550528..19a23f8 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.h
+++ b/drivers/net/wireless/marvell/mwifiex/main.h
@@ -517,6 +517,18 @@ enum mwifiex_iface_work_flags {
MWIFIEX_IFACE_WORK_CARD_RESET,
};
+struct mwifiex_band_config {
+ u8 chan_band:2;
+ u8 chan_width:2;
+ u8 chan2_offset:2;
+ u8 scan_mode:2;
+} __packed;
+
+struct mwifiex_channel_band {
+ struct mwifiex_band_config band_config;
+ u8 channel;
+};
+
struct mwifiex_private {
struct mwifiex_adapter *adapter;
u8 bss_type;
@@ -1546,7 +1558,7 @@ int mwifiex_check_network_compatibility(struct mwifiex_private *priv,
struct mwifiex_bssdescriptor *bss_desc);
u8 mwifiex_chan_type_to_sec_chan_offset(enum nl80211_channel_type chan_type);
-u8 mwifiex_sec_chan_offset_to_chan_type(u8 second_chan_offset);
+u8 mwifiex_get_chan_type(struct mwifiex_private *priv);
struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
const char *name,
@@ -1673,6 +1685,8 @@ u8 mwifiex_adjust_data_rate(struct mwifiex_private *priv,
int mwifiex_get_wakeup_reason(struct mwifiex_private *priv, u16 action,
int cmd_type,
struct mwifiex_ds_wakeup_reason *wakeup_reason);
+int mwifiex_get_chan_info(struct mwifiex_private *priv,
+ struct mwifiex_channel_band *channel_band);
int mwifiex_ret_wakeup_reason(struct mwifiex_private *priv,
struct host_cmd_ds_command *resp,
struct host_cmd_ds_wakeup_reason *wakeup_reason);
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
index 211e47d..4ed10cf 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -1898,6 +1898,25 @@ static int mwifiex_cmd_get_wakeup_reason(struct mwifiex_private *priv,
return 0;
}
+static int mwifiex_cmd_get_chan_info(struct host_cmd_ds_command *cmd,
+ u16 cmd_action)
+{
+ struct host_cmd_ds_sta_configure *sta_cfg_cmd = &cmd->params.sta_cfg;
+ struct host_cmd_tlv_channel_band *tlv_band_channel =
+ (struct host_cmd_tlv_channel_band *)sta_cfg_cmd->tlv_buffer;
+
+ cmd->command = cpu_to_le16(HostCmd_CMD_STA_CONFIGURE);
+ cmd->size = cpu_to_le16(sizeof(*sta_cfg_cmd) +
+ sizeof(*tlv_band_channel) + S_DS_GEN);
+ sta_cfg_cmd->action = cpu_to_le16(cmd_action);
+ memset(tlv_band_channel, 0, sizeof(*tlv_band_channel));
+ tlv_band_channel->header.type = cpu_to_le16(TLV_TYPE_CHANNELBANDLIST);
+ tlv_band_channel->header.len = cpu_to_le16(sizeof(*tlv_band_channel) -
+ sizeof(struct mwifiex_ie_types_header));
+
+ return 0;
+}
+
/* This function check if the command is supported by firmware */
static int mwifiex_is_cmd_supported(struct mwifiex_private *priv, u16 cmd_no)
{
@@ -2210,6 +2229,9 @@ int mwifiex_sta_prepare_cmd(struct mwifiex_private *priv, uint16_t cmd_no,
cmd_ptr->command = cpu_to_le16(cmd_no);
cmd_ptr->size = cpu_to_le16(S_DS_GEN);
break;
+ case HostCmd_CMD_STA_CONFIGURE:
+ ret = mwifiex_cmd_get_chan_info(cmd_ptr, cmd_action);
+ break;
default:
mwifiex_dbg(priv->adapter, ERROR,
"PREP_CMD: unknown cmd- %#x\n", cmd_no);
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
index 1bd4e13..69e3b62 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
@@ -1170,6 +1170,22 @@ static int mwifiex_ret_pkt_aggr_ctrl(struct mwifiex_private *priv,
return 0;
}
+static int mwifiex_ret_get_chan_info(struct mwifiex_private *priv,
+ struct host_cmd_ds_command *resp,
+ struct mwifiex_channel_band *channel_band)
+{
+ struct host_cmd_ds_sta_configure *sta_cfg_cmd = &resp->params.sta_cfg;
+ struct host_cmd_tlv_channel_band *tlv_band_channel;
+
+ tlv_band_channel =
+ (struct host_cmd_tlv_channel_band *)sta_cfg_cmd->tlv_buffer;
+ memcpy(&channel_band->band_config, &tlv_band_channel->band_config,
+ sizeof(struct mwifiex_band_config));
+ channel_band->channel = tlv_band_channel->channel;
+
+ return 0;
+}
+
/*
* This function handles the command responses.
*
@@ -1393,6 +1409,9 @@ int mwifiex_process_sta_cmdresp(struct mwifiex_private *priv, u16 cmdresp_no,
case HostCmd_CMD_CHAN_REGION_CFG:
ret = mwifiex_ret_chan_region_cfg(priv, resp);
break;
+ case HostCmd_CMD_STA_CONFIGURE:
+ ret = mwifiex_ret_get_chan_info(priv, resp, data_buf);
+ break;
default:
mwifiex_dbg(adapter, ERROR,
"CMD_RESP: unknown cmd response %#x\n",
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
index ed66f12..5414b75 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
@@ -1481,3 +1481,15 @@ int mwifiex_get_wakeup_reason(struct mwifiex_private *priv, u16 action,
return status;
}
+
+int mwifiex_get_chan_info(struct mwifiex_private *priv,
+ struct mwifiex_channel_band *channel_band)
+{
+ int status = 0;
+
+ status = mwifiex_send_cmd(priv, HostCmd_CMD_STA_CONFIGURE,
+ HostCmd_ACT_GEN_GET, 0, channel_band,
+ MWIFIEX_SYNC_CMD);
+
+ return status;
+}
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [1/3] Revert "mwifiex: fix incorrect ht capability problem"
2018-03-09 18:15 ` [PATCH 1/3] Revert "mwifiex: fix incorrect ht capability problem" Ganapathi Bhat
@ 2018-03-13 16:54 ` Kalle Valo
0 siblings, 0 replies; 7+ messages in thread
From: Kalle Valo @ 2018-03-13 16:54 UTC (permalink / raw)
To: Ganapathi Bhat
Cc: linux-wireless, Brian Norris, Cathy Luo, Xinming Hu, Zhiyuan Yang,
James Cao, Mangesh Malusare, Ganapathi Bhat
Ganapathi Bhat <gbhat@marvell.com> wrote:
> This reverts commit bcc920e8f08336cbbdcdba7c4449c27137e6b4b9.
>
> Drivers gets hardware info and updates ht_cap field of
> wiphy->bands during initialization. Once updated during init,
> ht_cap must not be modified as it reflects the capability
> supported by hardwawre. Above patch tries to modify the ht_cap
> field and this results in wrongly advertising capabilities during
> association.
>
> Signed-off-by: Cathy Luo <cluo@marvell.com>
> Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
3 patches applied to wireless-drivers-next.git, thanks.
53a7094204b7 Revert "mwifiex: fix incorrect ht capability problem"
77423fa73927 mwifiex: fix incorrect ht capability problem
28bf8312a983 mwifiex: get_channel from firmware
--
https://patchwork.kernel.org/patch/10271595/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] mwifiex: fix incorrect ht capability problem
2018-03-09 18:15 ` [PATCH 2/3] mwifiex: fix incorrect ht capability problem Ganapathi Bhat
@ 2018-03-14 9:51 ` Kalle Valo
2018-03-15 7:33 ` [EXT] " Ganapathi Bhat
0 siblings, 1 reply; 7+ messages in thread
From: Kalle Valo @ 2018-03-14 9:51 UTC (permalink / raw)
To: Ganapathi Bhat
Cc: linux-wireless, Brian Norris, Cathy Luo, Xinming Hu, Zhiyuan Yang,
James Cao, Mangesh Malusare
Ganapathi Bhat <gbhat@marvell.com> writes:
> IEEE80211_CHAN_NO_HT40PLUS and IEEE80211_CHAN_NO_HT40PLUS channel
> flags tell if HT40 operation is allowed on a channel or not.
>
> This patch ensures ht_capability information is modified
> accordingly so that we don't end up creating a HT40 connection
> when it's not allowed for current regulatory domain.
>
> Signed-off-by: Cathy Luo <cluo@marvell.com>
> Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
kbuild bot reported sparse warnings from this patch:
drivers/net/wireless/marvell/mwifiex/11n.c:358:65: sparse: invalid assignment: &=
drivers/net/wireless/marvell/mwifiex/11n.c:358:65: left side has type restricted __le16
drivers/net/wireless/marvell/mwifiex/11n.c:358:65: right side has type int
drivers/net/wireless/marvell/mwifiex/11n.c:360:65: sparse: invalid assignment: &=
drivers/net/wireless/marvell/mwifiex/11n.c:360:65: left side has type restricted __le16
drivers/net/wireless/marvell/mwifiex/11n.c:360:65: right side has type int
drivers/net/wireless/marvell/mwifiex/11n.c:366:65: sparse: invalid assignment: &=
drivers/net/wireless/marvell/mwifiex/11n.c:366:65: left side has type restricted __le16
drivers/net/wireless/marvell/mwifiex/11n.c:366:65: right side has type int
drivers/net/wireless/marvell/mwifiex/11n.c:368:65: sparse: invalid assignment: &=
drivers/net/wireless/marvell/mwifiex/11n.c:368:65: left side has type restricted __le16
drivers/net/wireless/marvell/mwifiex/11n.c:368:65: right side has type int
Please submit a followup patch to fix those.
--
Kalle Valo
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [EXT] Re: [PATCH 2/3] mwifiex: fix incorrect ht capability problem
2018-03-14 9:51 ` Kalle Valo
@ 2018-03-15 7:33 ` Ganapathi Bhat
0 siblings, 0 replies; 7+ messages in thread
From: Ganapathi Bhat @ 2018-03-15 7:33 UTC (permalink / raw)
To: Kalle Valo
Cc: linux-wireless@vger.kernel.org, Brian Norris, Cathy Luo,
Xinming Hu, Zhiyuan Yang, James Cao, Mangesh Malusare
Hi Kalle,
> Ganapathi Bhat <gbhat@marvell.com> writes:
>
> > IEEE80211_CHAN_NO_HT40PLUS and IEEE80211_CHAN_NO_HT40PLUS
> channel
> > flags tell if HT40 operation is allowed on a channel or not.
> >
> > This patch ensures ht_capability information is modified accordingly
> > so that we don't end up creating a HT40 connection when it's not
> > allowed for current regulatory domain.
> >
> > Signed-off-by: Cathy Luo <cluo@marvell.com>
> > Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
>
> kbuild bot reported sparse warnings from this patch:
>
> drivers/net/wireless/marvell/mwifiex/11n.c:358:65: sparse: invalid
> assignment: &=
> drivers/net/wireless/marvell/mwifiex/11n.c:358:65: left side has type
> restricted __le16
> drivers/net/wireless/marvell/mwifiex/11n.c:358:65: right side has type int
> drivers/net/wireless/marvell/mwifiex/11n.c:360:65: sparse: invalid
> assignment: &=
> drivers/net/wireless/marvell/mwifiex/11n.c:360:65: left side has type
> restricted __le16
> drivers/net/wireless/marvell/mwifiex/11n.c:360:65: right side has type int
> drivers/net/wireless/marvell/mwifiex/11n.c:366:65: sparse: invalid
> assignment: &=
> drivers/net/wireless/marvell/mwifiex/11n.c:366:65: left side has type
> restricted __le16
> drivers/net/wireless/marvell/mwifiex/11n.c:366:65: right side has type int
> drivers/net/wireless/marvell/mwifiex/11n.c:368:65: sparse: invalid
> assignment: &=
> drivers/net/wireless/marvell/mwifiex/11n.c:368:65: left side has type
> restricted __le16
> drivers/net/wireless/marvell/mwifiex/11n.c:368:65: right side has type int
>
> Please submit a followup patch to fix those.
Sorry for the errors. Yes we have submitted a follow up fix.
>
> --
> Kalle Valo
Regards,
Ganapathi
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-03-15 7:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-09 18:15 [PATCH 0/3] Fix issues with connect and get_channel implementation Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 1/3] Revert "mwifiex: fix incorrect ht capability problem" Ganapathi Bhat
2018-03-13 16:54 ` [1/3] " Kalle Valo
2018-03-09 18:15 ` [PATCH 2/3] mwifiex: fix incorrect ht capability problem Ganapathi Bhat
2018-03-14 9:51 ` Kalle Valo
2018-03-15 7:33 ` [EXT] " Ganapathi Bhat
2018-03-09 18:15 ` [PATCH 3/3] mwifiex: get_channel from firmware Ganapathi Bhat
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).