Message ID | 20180515100814.491-1-lorenzo.bianconi@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0d45d3fe42efc76b6c4f5a62f8d110c7a2e6f83f |
Delegated to: | Kalle Valo |
Headers | show |
On 2018-05-15 12:08, Lorenzo Bianconi wrote: > According to 802.11-2007 17.3.8.6 (slot time), the slot time should > be increased by 3 us * coverage class. Taking into account coverage > class in slot time configuration allows to increase by an order of > magnitude the throughput on a 4Km link in a noisy environment > > Tested-by: Luca Bisti <luca.bisti@gmail.com> > Tested-by: Gaetano Catalli <gaetano.catalli@gmail.com> > Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Acked-by: Felix Fietkau <nbd@nbd.name>
Lorenzo Bianconi <lorenzo.bianconi@redhat.com> wrote: > According to 802.11-2007 17.3.8.6 (slot time), the slot time should > be increased by 3 us * coverage class. Taking into account coverage > class in slot time configuration allows to increase by an order of > magnitude the throughput on a 4Km link in a noisy environment > > Tested-by: Luca Bisti <luca.bisti@gmail.com> > Tested-by: Gaetano Catalli <gaetano.catalli@gmail.com> > Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> > Acked-by: Felix Fietkau <nbd@nbd.name> Patch applied to wireless-drivers-next.git, thanks. 0d45d3fe42ef mt76x2: apply coverage class on slot time too
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c index d21e4a7c1bb9..9eeb1d7631c2 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c @@ -482,7 +482,10 @@ void mt76x2_set_tx_ackto(struct mt76x2_dev *dev) { u8 ackto, sifs, slottime = dev->slottime; + /* As defined by IEEE 802.11-2007 17.3.8.6 */ slottime += 3 * dev->coverage_class; + mt76_rmw_field(dev, MT_BKOFF_SLOT_CFG, + MT_BKOFF_SLOT_CFG_SLOTTIME, slottime); sifs = mt76_get_field(dev, MT_XIFS_TIME_CFG, MT_XIFS_TIME_CFG_OFDM_SIFS); diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c index 81c58f865c64..539dda8a59e2 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c @@ -247,8 +247,7 @@ mt76x2_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int slottime = info->use_short_slot ? 9 : 20; dev->slottime = slottime; - mt76_rmw_field(dev, MT_BKOFF_SLOT_CFG, - MT_BKOFF_SLOT_CFG_SLOTTIME, slottime); + mt76x2_set_tx_ackto(dev); } mutex_unlock(&dev->mutex);