* [PATCH 0/3] add set_coverage support to mt7615 driver
@ 2019-11-15 15:05 Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 1/3] mt76: mt76x02: fix coverage_class type Lorenzo Bianconi
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Lorenzo Bianconi @ 2019-11-15 15:05 UTC (permalink / raw)
To: nbd; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
Add the capability to configure ack timeout and slottime to mt7615 driver.
Move coverage_class and slottime fields to mt76_dev structure.
Fix coverage_class definition in mt76x02 driver
Lorenzo Bianconi (3):
mt76: mt76x02: fix coverage_class type
mt76: move coverage_class and slottime in mt76_dev
mt76: mt7615: add set_coverage class support
drivers/net/wireless/mediatek/mt76/mt76.h | 3 ++
.../net/wireless/mediatek/mt76/mt7603/init.c | 2 +-
.../net/wireless/mediatek/mt76/mt7603/mac.c | 6 +--
.../net/wireless/mediatek/mt76/mt7603/main.c | 6 +--
.../wireless/mediatek/mt76/mt7603/mt7603.h | 3 --
.../net/wireless/mediatek/mt76/mt7615/init.c | 1 +
.../net/wireless/mediatek/mt76/mt7615/mac.c | 41 +++++++++++++++++++
.../net/wireless/mediatek/mt76/mt7615/main.c | 20 +++++++++
.../wireless/mediatek/mt76/mt7615/mt7615.h | 4 ++
.../net/wireless/mediatek/mt76/mt7615/regs.h | 21 ++++++++++
drivers/net/wireless/mediatek/mt76/mt76x02.h | 3 --
.../net/wireless/mediatek/mt76/mt76x02_util.c | 10 ++---
12 files changed, 102 insertions(+), 18 deletions(-)
--
2.21.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] mt76: mt76x02: fix coverage_class type
2019-11-15 15:05 [PATCH 0/3] add set_coverage support to mt7615 driver Lorenzo Bianconi
@ 2019-11-15 15:05 ` Lorenzo Bianconi
2019-11-20 11:24 ` Felix Fietkau
2019-11-15 15:05 ` [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 3/3] mt76: mt7615: add set_coverage class support Lorenzo Bianconi
2 siblings, 1 reply; 9+ messages in thread
From: Lorenzo Bianconi @ 2019-11-15 15:05 UTC (permalink / raw)
To: nbd; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
Fix coverage_class definition in mt76x02_dev data structure since
coverage_class can be negative to enable dynack (just supported by
ath9k)
Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt76x02.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02.h b/drivers/net/wireless/mediatek/mt76/mt76x02.h
index 0ca0bbfe8769..cdc1cbd1d392 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02.h
@@ -110,7 +110,7 @@ struct mt76x02_dev {
bool no_2ghz;
- u8 coverage_class;
+ s16 coverage_class;
u8 slottime;
struct mt76x02_dfs_pattern_detector dfs_pd;
--
2.21.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev
2019-11-15 15:05 [PATCH 0/3] add set_coverage support to mt7615 driver Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 1/3] mt76: mt76x02: fix coverage_class type Lorenzo Bianconi
@ 2019-11-15 15:05 ` Lorenzo Bianconi
2019-11-20 11:20 ` Felix Fietkau
2019-11-15 15:05 ` [PATCH 3/3] mt76: mt7615: add set_coverage class support Lorenzo Bianconi
2 siblings, 1 reply; 9+ messages in thread
From: Lorenzo Bianconi @ 2019-11-15 15:05 UTC (permalink / raw)
To: nbd; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
Move coverage_class and slottime fields from driver specific data
structure to mt76_dev since they are used by all drivers
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt76.h | 3 +++
drivers/net/wireless/mediatek/mt76/mt7603/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 6 +++---
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 6 +++---
drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h | 3 ---
drivers/net/wireless/mediatek/mt76/mt76x02.h | 3 ---
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 10 +++++-----
7 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index 4116ad7928da..07a1b808a142 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -507,6 +507,9 @@ struct mt76_dev {
u8 antenna_mask;
u16 chainmask;
+ s16 coverage_class;
+ u8 slottime;
+
struct tasklet_struct pre_tbtt_tasklet;
int beacon_int;
u8 beacon_mask;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/init.c b/drivers/net/wireless/mediatek/mt76/mt7603/init.c
index 0696dbf28c5b..26eaf03baa08 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/init.c
@@ -539,7 +539,7 @@ int mt7603_register_device(struct mt7603_dev *dev)
if (mt76_rr(dev, MT_EFUSE_BASE + 0x64) & BIT(4))
dev->mt76.antenna_mask = 1;
- dev->slottime = 9;
+ dev->mt76.slottime = 9;
ret = mt7603_init_hardware(dev);
if (ret)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
index 812d081ad943..2c7c69106a20 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
@@ -47,7 +47,7 @@ void mt7603_mac_set_timing(struct mt7603_dev *dev)
FIELD_PREP(MT_TIMEOUT_VAL_CCA, 48);
u32 ofdm = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, 60) |
FIELD_PREP(MT_TIMEOUT_VAL_CCA, 24);
- int offset = 3 * dev->coverage_class;
+ int offset = 3 * dev->mt76.coverage_class;
u32 reg_offset = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, offset) |
FIELD_PREP(MT_TIMEOUT_VAL_CCA, offset);
int sifs;
@@ -68,9 +68,9 @@ void mt7603_mac_set_timing(struct mt7603_dev *dev)
FIELD_PREP(MT_IFS_EIFS, 360) |
FIELD_PREP(MT_IFS_RIFS, 2) |
FIELD_PREP(MT_IFS_SIFS, sifs) |
- FIELD_PREP(MT_IFS_SLOT, dev->slottime));
+ FIELD_PREP(MT_IFS_SLOT, dev->mt76.slottime));
- if (dev->slottime < 20)
+ if (dev->mt76.slottime < 20)
val = MT7603_CFEND_RATE_DEFAULT;
else
val = MT7603_CFEND_RATE_11B;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/main.c b/drivers/net/wireless/mediatek/mt76/mt7603/main.c
index 6a6bc37b898f..031526bb23a7 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/main.c
@@ -295,8 +295,8 @@ mt7603_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
if (changed & BSS_CHANGED_ERP_SLOT) {
int slottime = info->use_short_slot ? 9 : 20;
- if (slottime != dev->slottime) {
- dev->slottime = slottime;
+ if (slottime != dev->mt76.slottime) {
+ dev->mt76.slottime = slottime;
mt7603_mac_set_timing(dev);
}
}
@@ -635,7 +635,7 @@ mt7603_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
{
struct mt7603_dev *dev = hw->priv;
- dev->coverage_class = coverage_class;
+ dev->mt76.coverage_class = coverage_class;
mt7603_mac_set_timing(dev);
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h b/drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h
index ab54b0612e98..930a1bcab0ef 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h
@@ -118,9 +118,6 @@ struct mt7603_dev {
__le32 rx_ampdu_ts;
u8 rssi_offset[3];
- u8 slottime;
- s16 coverage_class;
-
s8 tx_power_limit;
ktime_t ed_time;
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02.h b/drivers/net/wireless/mediatek/mt76/mt76x02.h
index cdc1cbd1d392..d24c44725b1c 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02.h
@@ -110,9 +110,6 @@ struct mt76x02_dev {
bool no_2ghz;
- s16 coverage_class;
- u8 slottime;
-
struct mt76x02_dfs_pattern_detector dfs_pd;
/* edcca monitor */
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index c0500d8f9a67..74c6552a9874 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -185,7 +185,7 @@ void mt76x02_init_device(struct mt76x02_dev *dev)
dev->mt76.global_wcid.idx = 255;
dev->mt76.global_wcid.hw_key_idx = -1;
- dev->slottime = 9;
+ dev->mt76.slottime = 9;
if (is_mt76x2(dev)) {
dev->mt76.sband_2g.sband.ht_cap.cap |=
@@ -522,10 +522,10 @@ EXPORT_SYMBOL_GPL(mt76x02_conf_tx);
void mt76x02_set_tx_ackto(struct mt76x02_dev *dev)
{
- u8 ackto, sifs, slottime = dev->slottime;
+ u8 ackto, sifs, slottime = dev->mt76.slottime;
/* As defined by IEEE 802.11-2007 17.3.8.6 */
- slottime += 3 * dev->coverage_class;
+ slottime += 3 * dev->mt76.coverage_class;
mt76_rmw_field(dev, MT_BKOFF_SLOT_CFG,
MT_BKOFF_SLOT_CFG_SLOTTIME, slottime);
@@ -544,7 +544,7 @@ void mt76x02_set_coverage_class(struct ieee80211_hw *hw,
struct mt76x02_dev *dev = hw->priv;
mutex_lock(&dev->mt76.mutex);
- dev->coverage_class = coverage_class;
+ dev->mt76.coverage_class = coverage_class;
mt76x02_set_tx_ackto(dev);
mutex_unlock(&dev->mt76.mutex);
}
@@ -656,7 +656,7 @@ void mt76x02_bss_info_changed(struct ieee80211_hw *hw,
if (changed & BSS_CHANGED_ERP_SLOT) {
int slottime = info->use_short_slot ? 9 : 20;
- dev->slottime = slottime;
+ dev->mt76.slottime = slottime;
mt76x02_set_tx_ackto(dev);
}
--
2.21.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] mt76: mt7615: add set_coverage class support
2019-11-15 15:05 [PATCH 0/3] add set_coverage support to mt7615 driver Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 1/3] mt76: mt76x02: fix coverage_class type Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev Lorenzo Bianconi
@ 2019-11-15 15:05 ` Lorenzo Bianconi
2 siblings, 0 replies; 9+ messages in thread
From: Lorenzo Bianconi @ 2019-11-15 15:05 UTC (permalink / raw)
To: nbd; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
Add the capability to configure the acktimeout for mt7615 driver. Moreover
configure slottime according to the value provided by mac80211
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
.../net/wireless/mediatek/mt76/mt7615/init.c | 1 +
.../net/wireless/mediatek/mt76/mt7615/mac.c | 41 +++++++++++++++++++
.../net/wireless/mediatek/mt76/mt7615/main.c | 20 +++++++++
.../wireless/mediatek/mt76/mt7615/mt7615.h | 4 ++
.../net/wireless/mediatek/mt76/mt7615/regs.h | 21 ++++++++++
5 files changed, 87 insertions(+)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/init.c b/drivers/net/wireless/mediatek/mt76/mt7615/init.c
index 553bd4d988f7..54108fbaf1c4 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/init.c
@@ -304,6 +304,7 @@ int mt7615_register_device(struct mt7615_dev *dev)
IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK |
IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ;
dev->dfs_state = -1;
+ dev->mt76.slottime = 9;
ret = mt76_register_device(&dev->mt76, true, mt7615_rates,
ARRAY_SIZE(mt7615_rates));
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
index c77adc5d2552..809ebe70d196 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
@@ -60,6 +60,47 @@ void mt7615_mac_reset_counters(struct mt7615_dev *dev)
mt76_set(dev, MT_WF_RMAC_MIB_AIRTIME0, MT_WF_RMAC_MIB_RXTIME_CLR);
}
+/* XXX: DBDC support */
+void mt7615_mac_set_timing(struct mt7615_dev *dev)
+{
+ u32 cck = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, 231) |
+ FIELD_PREP(MT_TIMEOUT_VAL_CCA, 48);
+ u32 ofdm = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, 60) |
+ FIELD_PREP(MT_TIMEOUT_VAL_CCA, 24);
+ int offset = 3 * dev->mt76.coverage_class;
+ u32 reg_offset = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, offset) |
+ FIELD_PREP(MT_TIMEOUT_VAL_CCA, offset);
+ int sifs;
+ u32 val;
+
+ if (dev->mt76.chandef.chan->band == NL80211_BAND_5GHZ)
+ sifs = 16;
+ else
+ sifs = 10;
+
+ mt76_set(dev, MT_ARB_SCR,
+ MT_ARB_SCR_TX0_DISABLE | MT_ARB_SCR_RX0_DISABLE);
+ udelay(1);
+
+ mt76_wr(dev, MT_TMAC_CDTR, cck + reg_offset);
+ mt76_wr(dev, MT_TMAC_ODTR, ofdm + reg_offset);
+ mt76_wr(dev, MT_TMAC_ICR0,
+ FIELD_PREP(MT_IFS_EIFS, 360) |
+ FIELD_PREP(MT_IFS_RIFS, 2) |
+ FIELD_PREP(MT_IFS_SIFS, sifs) |
+ FIELD_PREP(MT_IFS_SLOT, dev->mt76.slottime));
+
+ if (dev->mt76.slottime < 20)
+ val = MT7615_CFEND_RATE_DEFAULT;
+ else
+ val = MT7615_CFEND_RATE_11B;
+
+ mt76_rmw_field(dev, MT_AGG_ACR0, MT_AGG_ACR_CFEND_RATE, val);
+
+ mt76_clear(dev, MT_ARB_SCR,
+ MT_ARB_SCR_TX0_DISABLE | MT_ARB_SCR_RX0_DISABLE);
+}
+
int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
{
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/main.c b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
index 78bbed7a4645..61df5d1da6c6 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
@@ -155,6 +155,7 @@ static int mt7615_set_channel(struct mt7615_dev *dev)
if (ret)
goto out;
+ mt7615_mac_set_timing(dev);
ret = mt7615_dfs_init_radar_detector(dev);
mt7615_mac_cca_stats_reset(dev);
dev->mt76.survey_time = ktime_get_boottime();
@@ -327,6 +328,15 @@ static void mt7615_bss_info_changed(struct ieee80211_hw *hw,
if (changed & BSS_CHANGED_ASSOC)
mt7615_mcu_set_bss_info(dev, vif, info->assoc);
+ if (changed & BSS_CHANGED_ERP_SLOT) {
+ int slottime = info->use_short_slot ? 9 : 20;
+
+ if (slottime != dev->mt76.slottime) {
+ dev->mt76.slottime = slottime;
+ mt7615_mac_set_timing(dev);
+ }
+ }
+
/* TODO: update beacon content
* BSS_CHANGED_BEACON
*/
@@ -520,6 +530,15 @@ mt7615_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
return 0;
}
+static void
+mt7615_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
+{
+ struct mt7615_dev *dev = hw->priv;
+
+ dev->mt76.coverage_class = coverage_class;
+ mt7615_mac_set_timing(dev);
+}
+
const struct ieee80211_ops mt7615_ops = {
.tx = mt7615_tx,
.start = mt7615_start,
@@ -543,4 +562,5 @@ const struct ieee80211_ops mt7615_ops = {
.channel_switch_beacon = mt7615_channel_switch_beacon,
.get_survey = mt76_get_survey,
.get_antenna = mt76_get_antenna,
+ .set_coverage_class = mt7615_set_coverage_class,
};
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h b/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
index d537f68c5531..3c4a4b3e45d5 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
@@ -36,6 +36,9 @@
#define MT_FRAC_SCALE 12
#define MT_FRAC(val, div) (((val) << MT_FRAC_SCALE) / (div))
+#define MT7615_CFEND_RATE_DEFAULT 0x69 /* chip default (24M) */
+#define MT7615_CFEND_RATE_11B 0x03 /* 11B LP, 11M */
+
struct mt7615_vif;
struct mt7615_sta;
@@ -246,6 +249,7 @@ int mt7615_mac_write_txwi(struct mt7615_dev *dev, __le32 *txwi,
struct sk_buff *skb, struct mt76_wcid *wcid,
struct ieee80211_sta *sta, int pid,
struct ieee80211_key_conf *key);
+void mt7615_mac_set_timing(struct mt7615_dev *dev);
int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb);
void mt7615_mac_add_txs(struct mt7615_dev *dev, void *data);
void mt7615_mac_tx_free(struct mt7615_dev *dev, struct sk_buff *skb);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/regs.h b/drivers/net/wireless/mediatek/mt76/mt7615/regs.h
index 61a4aa9ac6e6..5ac52758d7b1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/regs.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/regs.h
@@ -153,14 +153,35 @@
#define MT_AGG_SCR MT_WF_AGG(0x0fc)
#define MT_AGG_SCR_NLNAV_MID_PTEC_DIS BIT(3)
+#define MT_WF_ARB_BASE 0x20c00
+#define MT_WF_ARB(ofs) (MT_WF_ARB_BASE + (ofs))
+
+#define MT_ARB_SCR MT_WF_ARB(0x080)
+#define MT_ARB_SCR_TX0_DISABLE BIT(8)
+#define MT_ARB_SCR_RX0_DISABLE BIT(9)
+#define MT_ARB_SCR_TX1_DISABLE BIT(10)
+#define MT_ARB_SCR_RX1_DISABLE BIT(11)
+
#define MT_WF_TMAC_BASE 0x21000
#define MT_WF_TMAC(ofs) (MT_WF_TMAC_BASE + (ofs))
+#define MT_TMAC_CDTR MT_WF_TMAC(0x090)
+#define MT_TMAC_ODTR MT_WF_TMAC(0x094)
+#define MT_TIMEOUT_VAL_PLCP GENMASK(15, 0)
+#define MT_TIMEOUT_VAL_CCA GENMASK(31, 16)
+
#define MT_TMAC_TRCR0 MT_WF_TMAC(0x09c)
#define MT_TMAC_TRCR1 MT_WF_TMAC(0x070)
#define MT_TMAC_TRCR_CCA_SEL GENMASK(31, 30)
#define MT_TMAC_TRCR_SEC_CCA_SEL GENMASK(29, 28)
+#define MT_TMAC_ICR0 MT_WF_TMAC(0x0a4)
+#define MT_TMAC_ICR1 MT_WF_TMAC(0x074)
+#define MT_IFS_EIFS GENMASK(8, 0)
+#define MT_IFS_RIFS GENMASK(14, 10)
+#define MT_IFS_SIFS GENMASK(22, 16)
+#define MT_IFS_SLOT GENMASK(30, 24)
+
#define MT_TMAC_CTCR0 MT_WF_TMAC(0x0f4)
#define MT_TMAC_CTCR0_INS_DDLMT_REFTIME GENMASK(5, 0)
#define MT_TMAC_CTCR0_INS_DDLMT_DENSITY GENMASK(15, 12)
--
2.21.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev
2019-11-15 15:05 ` [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev Lorenzo Bianconi
@ 2019-11-20 11:20 ` Felix Fietkau
2019-11-20 11:42 ` Lorenzo Bianconi
0 siblings, 1 reply; 9+ messages in thread
From: Felix Fietkau @ 2019-11-20 11:20 UTC (permalink / raw)
To: Lorenzo Bianconi; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
On 2019-11-15 16:05, Lorenzo Bianconi wrote:
> Move coverage_class and slottime fields from driver specific data
> structure to mt76_dev since they are used by all drivers
>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Please drop this patch. I've moved a few other fields back from struct
mt76_dev to driver specific structs, because they were in the way of
DBDC related rework, and this one would fit the category too.
As a general policy, I think we should only move fields to struct
mt76_dev if they are actually used by core code as well.
- Felix
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] mt76: mt76x02: fix coverage_class type
2019-11-15 15:05 ` [PATCH 1/3] mt76: mt76x02: fix coverage_class type Lorenzo Bianconi
@ 2019-11-20 11:24 ` Felix Fietkau
2019-11-20 11:37 ` Lorenzo Bianconi
0 siblings, 1 reply; 9+ messages in thread
From: Felix Fietkau @ 2019-11-20 11:24 UTC (permalink / raw)
To: Lorenzo Bianconi; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
On 2019-11-15 16:05, Lorenzo Bianconi wrote:
> Fix coverage_class definition in mt76x02_dev data structure since
> coverage_class can be negative to enable dynack (just supported by
> ath9k)
>
> Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
I'd prefer a patch that sets the internal coverage_class field value to
0 for negative input values.
- Felix
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] mt76: mt76x02: fix coverage_class type
2019-11-20 11:24 ` Felix Fietkau
@ 2019-11-20 11:37 ` Lorenzo Bianconi
0 siblings, 0 replies; 9+ messages in thread
From: Lorenzo Bianconi @ 2019-11-20 11:37 UTC (permalink / raw)
To: Felix Fietkau; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
[-- Attachment #1: Type: text/plain, Size: 499 bytes --]
> On 2019-11-15 16:05, Lorenzo Bianconi wrote:
> > Fix coverage_class definition in mt76x02_dev data structure since
> > coverage_class can be negative to enable dynack (just supported by
> > ath9k)
> >
> > Fixes: 7bc04215a66b ("mt76: add driver code for MT76x2e")
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> I'd prefer a patch that sets the internal coverage_class field value to
> 0 for negative input values.
ack, I will do in v2
Regards,
Lorenzo
>
> - Felix
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev
2019-11-20 11:20 ` Felix Fietkau
@ 2019-11-20 11:42 ` Lorenzo Bianconi
2019-11-20 11:44 ` Felix Fietkau
0 siblings, 1 reply; 9+ messages in thread
From: Lorenzo Bianconi @ 2019-11-20 11:42 UTC (permalink / raw)
To: Felix Fietkau; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]
> On 2019-11-15 16:05, Lorenzo Bianconi wrote:
> > Move coverage_class and slottime fields from driver specific data
> > structure to mt76_dev since they are used by all drivers
> >
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> Please drop this patch. I've moved a few other fields back from struct
> mt76_dev to driver specific structs, because they were in the way of
> DBDC related rework, and this one would fit the category too.
>
> As a general policy, I think we should only move fields to struct
> mt76_dev if they are actually used by core code as well.
ack, let's drop this patch. In the future we will need to integrate the timeing
code in DBDC one since mt7615 has related regs for band0 and band1. Maybe we need
to move them in mt76_phy?
Regards,
Lorenzo
>
> - Felix
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev
2019-11-20 11:42 ` Lorenzo Bianconi
@ 2019-11-20 11:44 ` Felix Fietkau
0 siblings, 0 replies; 9+ messages in thread
From: Felix Fietkau @ 2019-11-20 11:44 UTC (permalink / raw)
To: Lorenzo Bianconi; +Cc: linux-wireless, lorenzo.bianconi, ryder.lee, royluo
On 2019-11-20 12:42, Lorenzo Bianconi wrote:
>> On 2019-11-15 16:05, Lorenzo Bianconi wrote:
>> > Move coverage_class and slottime fields from driver specific data
>> > structure to mt76_dev since they are used by all drivers
>> >
>> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
>> Please drop this patch. I've moved a few other fields back from struct
>> mt76_dev to driver specific structs, because they were in the way of
>> DBDC related rework, and this one would fit the category too.
>>
>> As a general policy, I think we should only move fields to struct
>> mt76_dev if they are actually used by core code as well.
>
> ack, let's drop this patch. In the future we will need to integrate the timeing
> code in DBDC one since mt7615 has related regs for band0 and band1. Maybe we need
> to move them in mt76_phy?I'd prefer struct mt7615_phy for now, unless we have a good reason to
keep it in mt76 core.
- Felix
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-11-20 11:44 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-15 15:05 [PATCH 0/3] add set_coverage support to mt7615 driver Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 1/3] mt76: mt76x02: fix coverage_class type Lorenzo Bianconi
2019-11-20 11:24 ` Felix Fietkau
2019-11-20 11:37 ` Lorenzo Bianconi
2019-11-15 15:05 ` [PATCH 2/3] mt76: move coverage_class and slottime in mt76_dev Lorenzo Bianconi
2019-11-20 11:20 ` Felix Fietkau
2019-11-20 11:42 ` Lorenzo Bianconi
2019-11-20 11:44 ` Felix Fietkau
2019-11-15 15:05 ` [PATCH 3/3] mt76: mt7615: add set_coverage class support Lorenzo Bianconi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.