Message ID | 20200829033947.2167817-6-bryan.odonoghue@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Kalle Valo |
Headers | show |
Series | wcn36xx: PHY modifications to support 80MHz operation | expand |
Hi Bryan, On Sat, 29 Aug 2020 at 05:39, Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote: > > For the 80MHz channel we need to set the PHY mode to one of four PHY modes > that span the 80MHz range. What about 40Mhz bonding? > > This patch latches the hw_value PHY field previously defined for 5GHz > channels directly to the parameter passed to the firmware. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > drivers/net/wireless/ath/wcn36xx/smd.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c > index 729708d96586..4b967f8ba949 100644 > --- a/drivers/net/wireless/ath/wcn36xx/smd.c > +++ b/drivers/net/wireless/ath/wcn36xx/smd.c > @@ -1493,6 +1493,7 @@ int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn, struct ieee80211_vif *vif, > struct wcn36xx_hal_config_bss_params_v1 *bss; > struct wcn36xx_hal_config_bss_params bss_v0; > struct wcn36xx_hal_config_sta_params_v1 *sta; > + struct cfg80211_chan_def *chandef; > int ret; > > msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL); > @@ -1536,7 +1537,13 @@ int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn, struct ieee80211_vif *vif, > bss->dtim_period = bss_v0.dtim_period; > bss->tx_channel_width_set = bss_v0.tx_channel_width_set; > bss->oper_channel = bss_v0.oper_channel; > - bss->ext_channel = bss_v0.ext_channel; > + > + if (wcn->hw->conf.chandef.width == NL80211_CHAN_WIDTH_80) { > + chandef = &wcn->hw->conf.chandef; > + bss->ext_channel = HW_VALUE_PHY(chandef->chan->hw_value); > + } else { > + bss->ext_channel = bss_v0.ext_channel; > + } > > bss->reserved = bss_v0.reserved; > > -- > 2.27.0 >
On 31/08/2020 11:08, Loic Poulain wrote: > Hi Bryan, > > On Sat, 29 Aug 2020 at 05:39, Bryan O'Donoghue > <bryan.odonoghue@linaro.org> wrote: >> >> For the 80MHz channel we need to set the PHY mode to one of four PHY modes >> that span the 80MHz range. > > What about 40Mhz bonding? The existing code handles 40MHz HT in wcn36xx_smd_join()
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c index 729708d96586..4b967f8ba949 100644 --- a/drivers/net/wireless/ath/wcn36xx/smd.c +++ b/drivers/net/wireless/ath/wcn36xx/smd.c @@ -1493,6 +1493,7 @@ int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn, struct ieee80211_vif *vif, struct wcn36xx_hal_config_bss_params_v1 *bss; struct wcn36xx_hal_config_bss_params bss_v0; struct wcn36xx_hal_config_sta_params_v1 *sta; + struct cfg80211_chan_def *chandef; int ret; msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL); @@ -1536,7 +1537,13 @@ int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn, struct ieee80211_vif *vif, bss->dtim_period = bss_v0.dtim_period; bss->tx_channel_width_set = bss_v0.tx_channel_width_set; bss->oper_channel = bss_v0.oper_channel; - bss->ext_channel = bss_v0.ext_channel; + + if (wcn->hw->conf.chandef.width == NL80211_CHAN_WIDTH_80) { + chandef = &wcn->hw->conf.chandef; + bss->ext_channel = HW_VALUE_PHY(chandef->chan->hw_value); + } else { + bss->ext_channel = bss_v0.ext_channel; + } bss->reserved = bss_v0.reserved;
For the 80MHz channel we need to set the PHY mode to one of four PHY modes that span the 80MHz range. This patch latches the hw_value PHY field previously defined for 5GHz channels directly to the parameter passed to the firmware. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- drivers/net/wireless/ath/wcn36xx/smd.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)