* [PATCH 00/21] RT3883 support from OpenWrt
@ 2019-04-09 11:36 Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 01/21] rt2x00: rt2800lib: enable support for RT3883 Stanislaw Gruszka
` (21 more replies)
0 siblings, 22 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Stanislaw Gruszka
Upstream RT3883 support patches cared by openwrt for quite
a while now.
Patches do not contain the changelog and generate this checkpatch.pl
warning:
WARNING: Missing commit description - Add an appropriate one
but I do not see much sense for fixing that.
Gabor Juhos (21):
rt2x00: rt2800lib: enable support for RT3883
rt2x00: rt2800lib: add rf_vals for RF3853
rt2x00: rt2800lib: enable VCO calibration for RF3853
rt2x00: rt2800lib: add channel configuration function for RF3853
rt2x00: rt2800lib: enable RF3853 support
rt2x00: rt2800lib: add MAC register initialization for RT3883
rt2x00: rt2800soc: fix rt2800soc_disable_radio for RT3883
rt2x00: rt2800lib: add BBP register initialization for RT3883
rt2x00: rt2800lib: add RFCSR initialization for RT3883
rt2x00: rt2800lib: use the extended EEPROM map for RT3883
rt2x00: rt2800lib: force rf type to RF3853 on RT3883
rt2x00: rt2800lib: add channel configuration code for RT3883
rt2x00: rt2800lib: fix txpower_to_dev function for RT3883
rt2x00: rt2800lib: use correct txpower calculation function for RT3883
rt2x00: rt2800lib: hardcode txmixer gain values to zero for RT3883
rt2x00: rt2800lib: use correct [RT]XWI size for RT3883
rt2x00: rt2800lib: fix antenna configuration for RT3883
rt2x00: rt2800lib: fix LNA gain configuration for RT3883
rt2x00: rt2800lib: fix VGC setup for RT3883
rt2x00: rt2800lib: fix EEPROM LNA validation for RT3883
rt2x00: rt2800lib: fix txpower compensation for RT3883
drivers/net/wireless/ralink/rt2x00/rt2800.h | 19 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 598 ++++++++++++++++++++++++-
drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 9 +-
3 files changed, 607 insertions(+), 19 deletions(-)
--
2.7.5
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 01/21] rt2x00: rt2800lib: enable support for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 02/21] rt2x00: rt2800lib: add rf_vals for RF3853 Stanislaw Gruszka
` (20 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index a03b5284a050..071465854a45 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9570,6 +9570,7 @@ static int rt2800_probe_rt(struct rt2x00_dev *rt2x00dev)
case RT3390:
case RT3572:
case RT3593:
+ case RT3883:
case RT5350:
case RT5390:
case RT5392:
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 02/21] rt2x00: rt2800lib: add rf_vals for RF3853
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 01/21] rt2x00: rt2800lib: enable support for RT3883 Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 03/21] rt2x00: rt2800lib: enable VCO calibration " Stanislaw Gruszka
` (19 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800.h | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 65 ++++++++++++++++++++++++++
2 files changed, 68 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800.h b/drivers/net/wireless/ralink/rt2x00/rt2800.h
index b05ed2f3025a..ddd4b0be04ee 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
@@ -48,7 +48,8 @@
* RF2853 2.4G/5G 3T3R
* RF3320 2.4G 1T1R(RT3350/RT3370/RT3390)
* RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392)
- * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662)
+ * RF3053 2.4G/5G 3T3R(RT3563/RT3573/RT3593)
+ * RF3853 2.4G/5G 3T3R(RT3883/RT3662)
* RF5592 2.4G/5G 2T2R
* RF3070 2.4G 1T1R
* RF5360 2.4G 1T1R
@@ -72,6 +73,7 @@
#define RF5592 0x000f
#define RF3070 0x3070
#define RF3290 0x3290
+#define RF3853 0x3853
#define RF5350 0x5350
#define RF5360 0x5360
#define RF5362 0x5362
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 071465854a45..8f6702f24cd4 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9146,6 +9146,66 @@ static const struct rf_channel rf_vals_3x_xtal20[] = {
{14, 0xF0, 2, 0x18},
};
+static const struct rf_channel rf_vals_3853[] = {
+ {1, 241, 6, 2},
+ {2, 241, 6, 7},
+ {3, 242, 6, 2},
+ {4, 242, 6, 7},
+ {5, 243, 6, 2},
+ {6, 243, 6, 7},
+ {7, 244, 6, 2},
+ {8, 244, 6, 7},
+ {9, 245, 6, 2},
+ {10, 245, 6, 7},
+ {11, 246, 6, 2},
+ {12, 246, 6, 7},
+ {13, 247, 6, 2},
+ {14, 248, 6, 4},
+
+ {36, 0x56, 8, 4},
+ {38, 0x56, 8, 6},
+ {40, 0x56, 8, 8},
+ {44, 0x57, 8, 0},
+ {46, 0x57, 8, 2},
+ {48, 0x57, 8, 4},
+ {52, 0x57, 8, 8},
+ {54, 0x57, 8, 10},
+ {56, 0x58, 8, 0},
+ {60, 0x58, 8, 4},
+ {62, 0x58, 8, 6},
+ {64, 0x58, 8, 8},
+
+ {100, 0x5b, 8, 8},
+ {102, 0x5b, 8, 10},
+ {104, 0x5c, 8, 0},
+ {108, 0x5c, 8, 4},
+ {110, 0x5c, 8, 6},
+ {112, 0x5c, 8, 8},
+ {114, 0x5c, 8, 10},
+ {116, 0x5d, 8, 0},
+ {118, 0x5d, 8, 2},
+ {120, 0x5d, 8, 4},
+ {124, 0x5d, 8, 8},
+ {126, 0x5d, 8, 10},
+ {128, 0x5e, 8, 0},
+ {132, 0x5e, 8, 4},
+ {134, 0x5e, 8, 6},
+ {136, 0x5e, 8, 8},
+ {140, 0x5f, 8, 0},
+
+ {149, 0x5f, 8, 9},
+ {151, 0x5f, 8, 11},
+ {153, 0x60, 8, 1},
+ {157, 0x60, 8, 5},
+ {159, 0x60, 8, 7},
+ {161, 0x60, 8, 9},
+ {165, 0x61, 8, 1},
+ {167, 0x61, 8, 3},
+ {169, 0x61, 8, 5},
+ {171, 0x61, 8, 7},
+ {173, 0x61, 8, 9},
+};
+
static const struct rf_channel rf_vals_5592_xtal20[] = {
/* Channel, N, K, mod, R */
{1, 482, 4, 10, 3},
@@ -9409,6 +9469,11 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
spec->channels = rf_vals_3x;
break;
+ case RF3853:
+ spec->num_channels = ARRAY_SIZE(rf_vals_3853);
+ spec->channels = rf_vals_3853;
+ break;
+
case RF5592:
reg = rt2800_register_read(rt2x00dev, MAC_DEBUG_INDEX);
if (rt2x00_get_field32(reg, MAC_DEBUG_INDEX_XTAL)) {
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 03/21] rt2x00: rt2800lib: enable VCO calibration for RF3853
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 01/21] rt2x00: rt2800lib: enable support for RT3883 Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 02/21] rt2x00: rt2800lib: add rf_vals for RF3853 Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 04/21] rt2x00: rt2800lib: add channel configuration function " Stanislaw Gruszka
` (18 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 8f6702f24cd4..7e0b2a9631fc 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5043,6 +5043,7 @@ void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev)
case RF3053:
case RF3070:
case RF3290:
+ case RF3853:
case RF5350:
case RF5360:
case RF5362:
@@ -9593,6 +9594,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
case RF3053:
case RF3070:
case RF3290:
+ case RF3853:
case RF5350:
case RF5360:
case RF5362:
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 04/21] rt2x00: rt2800lib: add channel configuration function for RF3853
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (2 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 03/21] rt2x00: rt2800lib: enable VCO calibration " Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 05/21] rt2x00: rt2800lib: enable RF3853 support Stanislaw Gruszka
` (17 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 208 +++++++++++++++++++++++++
1 file changed, 208 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 7e0b2a9631fc..10ea91d45918 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -2872,6 +2872,211 @@ static void rt2800_config_channel_rf3053(struct rt2x00_dev *rt2x00dev,
}
}
+static void rt2800_config_channel_rf3853(struct rt2x00_dev *rt2x00dev,
+ struct ieee80211_conf *conf,
+ struct rf_channel *rf,
+ struct channel_info *info)
+{
+ u8 rfcsr;
+ u8 bbp;
+ u8 pwr1, pwr2, pwr3;
+
+ const bool txbf_enabled = false; /* TODO */
+
+ /* TODO: add band selection */
+
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
+ else if (rf->channel < 132)
+ rt2800_rfcsr_write(rt2x00dev, 6, 0x80);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
+
+ rt2800_rfcsr_write(rt2x00dev, 8, rf->rf1);
+ rt2800_rfcsr_write(rt2x00dev, 9, rf->rf3);
+
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 11, 0x46);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 11, 0x48);
+
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 12, 0x1a);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 12, 0x52);
+
+ rt2800_rfcsr_write(rt2x00dev, 13, 0x12);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 1);
+ rt2x00_set_field8(&rfcsr, RFCSR1_RX0_PD, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR1_TX0_PD, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR1_RF_BLOCK_EN, 1);
+ rt2x00_set_field8(&rfcsr, RFCSR1_PLL_PD, 1);
+
+ switch (rt2x00dev->default_ant.tx_chain_num) {
+ case 3:
+ rt2x00_set_field8(&rfcsr, RFCSR1_TX2_PD, 1);
+ /* fallthrough */
+ case 2:
+ rt2x00_set_field8(&rfcsr, RFCSR1_TX1_PD, 1);
+ /* fallthrough */
+ case 1:
+ rt2x00_set_field8(&rfcsr, RFCSR1_TX0_PD, 1);
+ break;
+ }
+
+ switch (rt2x00dev->default_ant.rx_chain_num) {
+ case 3:
+ rt2x00_set_field8(&rfcsr, RFCSR1_RX2_PD, 1);
+ /* fallthrough */
+ case 2:
+ rt2x00_set_field8(&rfcsr, RFCSR1_RX1_PD, 1);
+ /* fallthrough */
+ case 1:
+ rt2x00_set_field8(&rfcsr, RFCSR1_RX0_PD, 1);
+ break;
+ }
+ rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
+
+ rt2800_freq_cal_mode1(rt2x00dev);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 30);
+ if (!conf_is_ht40(conf))
+ rfcsr &= ~(0x06);
+ else
+ rfcsr |= 0x06;
+ rt2800_rfcsr_write(rt2x00dev, 30, rfcsr);
+
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 31, 0xa0);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
+
+ if (conf_is_ht40(conf))
+ rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 32, 0xd8);
+
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 34, 0x3c);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 34, 0x20);
+
+ /* loopback RF_BS */
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 36);
+ if (rf->channel <= 14)
+ rt2x00_set_field8(&rfcsr, RFCSR36_RF_BS, 1);
+ else
+ rt2x00_set_field8(&rfcsr, RFCSR36_RF_BS, 0);
+ rt2800_rfcsr_write(rt2x00dev, 36, rfcsr);
+
+ if (rf->channel <= 14)
+ rfcsr = 0x23;
+ else if (rf->channel < 100)
+ rfcsr = 0x36;
+ else if (rf->channel < 132)
+ rfcsr = 0x32;
+ else
+ rfcsr = 0x30;
+
+ if (txbf_enabled)
+ rfcsr |= 0x40;
+
+ rt2800_rfcsr_write(rt2x00dev, 39, rfcsr);
+
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 44, 0x93);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 44, 0x9b);
+
+ if (rf->channel <= 14)
+ rfcsr = 0xbb;
+ else if (rf->channel < 100)
+ rfcsr = 0xeb;
+ else if (rf->channel < 132)
+ rfcsr = 0xb3;
+ else
+ rfcsr = 0x9b;
+ rt2800_rfcsr_write(rt2x00dev, 45, rfcsr);
+
+ if (rf->channel <= 14)
+ rfcsr = 0x8e;
+ else
+ rfcsr = 0x8a;
+
+ if (txbf_enabled)
+ rfcsr |= 0x20;
+
+ rt2800_rfcsr_write(rt2x00dev, 49, rfcsr);
+
+ rt2800_rfcsr_write(rt2x00dev, 50, 0x86);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 51);
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 51, 0x75);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 51, 0x51);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 52);
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 52, 0x45);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 52, 0x05);
+
+ if (rf->channel <= 14) {
+ pwr1 = info->default_power1 & 0x1f;
+ pwr2 = info->default_power2 & 0x1f;
+ pwr3 = info->default_power3 & 0x1f;
+ } else {
+ pwr1 = 0x48 | ((info->default_power1 & 0x18) << 1) |
+ (info->default_power1 & 0x7);
+ pwr2 = 0x48 | ((info->default_power2 & 0x18) << 1) |
+ (info->default_power2 & 0x7);
+ pwr3 = 0x48 | ((info->default_power3 & 0x18) << 1) |
+ (info->default_power3 & 0x7);
+ }
+
+ rt2800_rfcsr_write(rt2x00dev, 53, pwr1);
+ rt2800_rfcsr_write(rt2x00dev, 54, pwr2);
+ rt2800_rfcsr_write(rt2x00dev, 55, pwr3);
+
+ rt2x00_dbg(rt2x00dev, "Channel:%d, pwr1:%02x, pwr2:%02x, pwr3:%02x\n",
+ rf->channel, pwr1, pwr2, pwr3);
+
+ bbp = (info->default_power1 >> 5) |
+ ((info->default_power2 & 0xe0) >> 1);
+ rt2800_bbp_write(rt2x00dev, 109, bbp);
+
+ bbp = rt2800_bbp_read(rt2x00dev, 110);
+ bbp &= 0x0f;
+ bbp |= (info->default_power3 & 0xe0) >> 1;
+ rt2800_bbp_write(rt2x00dev, 110, bbp);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 57);
+ if (rf->channel <= 14)
+ rt2800_rfcsr_write(rt2x00dev, 57, 0x6e);
+ else
+ rt2800_rfcsr_write(rt2x00dev, 57, 0x3e);
+
+ /* Enable RF tuning */
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 3);
+ rt2x00_set_field8(&rfcsr, RFCSR3_VCOCAL_EN, 1);
+ rt2800_rfcsr_write(rt2x00dev, 3, rfcsr);
+
+ udelay(2000);
+
+ bbp = rt2800_bbp_read(rt2x00dev, 49);
+ /* clear update flag */
+ rt2800_bbp_write(rt2x00dev, 49, bbp & 0xfe);
+ rt2800_bbp_write(rt2x00dev, 49, bbp);
+
+ /* TODO: add calibration for TxBF */
+}
+
#define POWER_BOUND 0x27
#define POWER_BOUND_5G 0x2b
@@ -3726,6 +3931,9 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
case RF3322:
rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
break;
+ case RF3853:
+ rt2800_config_channel_rf3853(rt2x00dev, conf, rf, info);
+ break;
case RF3070:
case RF5350:
case RF5360:
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 05/21] rt2x00: rt2800lib: enable RF3853 support
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (3 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 04/21] rt2x00: rt2800lib: add channel configuration function " Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 06/21] rt2x00: rt2800lib: add MAC register initialization for RT3883 Stanislaw Gruszka
` (16 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 10ea91d45918..7cebbd2fa044 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9069,6 +9069,7 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
case RF3290:
case RF3320:
case RF3322:
+ case RF3853:
case RF5350:
case RF5360:
case RF5362:
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 06/21] rt2x00: rt2800lib: add MAC register initialization for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (4 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 05/21] rt2x00: rt2800lib: enable RF3853 support Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 07/21] rt2x00: rt2800soc: fix rt2800soc_disable_radio " Stanislaw Gruszka
` (15 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800.h | 14 ++++++++++++++
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 11 +++++++++++
2 files changed, 25 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800.h b/drivers/net/wireless/ralink/rt2x00/rt2800.h
index ddd4b0be04ee..5bfcd48aedab 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
@@ -1728,6 +1728,20 @@
#define TX_PWR_CFG_9B_STBC_MCS7 FIELD32(0x000000ff)
/*
+ * TX_TXBF_CFG:
+ */
+#define TX_TXBF_CFG_0 0x138c
+#define TX_TXBF_CFG_1 0x13a4
+#define TX_TXBF_CFG_2 0x13a8
+#define TX_TXBF_CFG_3 0x13ac
+
+/*
+ * TX_FBK_CFG_3S:
+ */
+#define TX_FBK_CFG_3S_0 0x13c4
+#define TX_FBK_CFG_3S_1 0x13c8
+
+/*
* RX_FILTER_CFG: RX configuration register.
*/
#define RX_FILTER_CFG 0x1400
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 7cebbd2fa044..671b4fec4144 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5671,6 +5671,12 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
rt2800_register_write(rt2x00dev, TX_SW_CFG2,
0x00000000);
}
+ } else if (rt2x00_rt(rt2x00dev, RT3883)) {
+ rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000402);
+ rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00000000);
+ rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00040000);
+ rt2800_register_write(rt2x00dev, TX_TXBF_CFG_0, 0x8000fc21);
+ rt2800_register_write(rt2x00dev, TX_TXBF_CFG_3, 0x00009c40);
} else if (rt2x00_rt(rt2x00dev, RT5390) ||
rt2x00_rt(rt2x00dev, RT5392) ||
rt2x00_rt(rt2x00dev, RT6352)) {
@@ -5884,6 +5890,11 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
reg = rt2x00_rt(rt2x00dev, RT5592) ? 0x00000082 : 0x00000002;
rt2800_register_write(rt2x00dev, TXOP_HLDR_ET, reg);
+ if (rt2x00_rt(rt2x00dev, RT3883)) {
+ rt2800_register_write(rt2x00dev, TX_FBK_CFG_3S_0, 0x12111008);
+ rt2800_register_write(rt2x00dev, TX_FBK_CFG_3S_1, 0x16151413);
+ }
+
reg = rt2800_register_read(rt2x00dev, TX_RTS_CFG);
rt2x00_set_field32(®, TX_RTS_CFG_AUTO_RTS_RETRY_LIMIT, 7);
rt2x00_set_field32(®, TX_RTS_CFG_RTS_THRES,
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 07/21] rt2x00: rt2800soc: fix rt2800soc_disable_radio for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (5 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 06/21] rt2x00: rt2800lib: add MAC register initialization for RT3883 Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 08/21] rt2x00: rt2800lib: add BBP register initialization " Stanislaw Gruszka
` (14 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
index a502816214ab..9c74be82e2be 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
@@ -51,9 +51,16 @@ static bool rt2800soc_hwcrypt_disabled(struct rt2x00_dev *rt2x00dev)
static void rt2800soc_disable_radio(struct rt2x00_dev *rt2x00dev)
{
+ u32 reg;
+
rt2800_disable_radio(rt2x00dev);
rt2x00mmio_register_write(rt2x00dev, PWR_PIN_CFG, 0);
- rt2x00mmio_register_write(rt2x00dev, TX_PIN_CFG, 0);
+
+ reg = 0;
+ if (rt2x00_rt(rt2x00dev, RT3883))
+ rt2x00_set_field32(®, TX_PIN_CFG_RFTR_EN, 1);
+
+ rt2x00mmio_register_write(rt2x00dev, TX_PIN_CFG, reg);
}
static int rt2800soc_set_device_state(struct rt2x00_dev *rt2x00dev,
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 08/21] rt2x00: rt2800lib: add BBP register initialization for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (6 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 07/21] rt2x00: rt2800soc: fix rt2800soc_disable_radio " Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 09/21] rt2x00: rt2800lib: add RFCSR " Stanislaw Gruszka
` (13 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 44 ++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 671b4fec4144..c6a3e02cd6dd 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -6511,6 +6511,47 @@ static void rt2800_init_bbp_3593(struct rt2x00_dev *rt2x00dev)
rt2800_bbp_write(rt2x00dev, 103, 0xc0);
}
+static void rt2800_init_bbp_3883(struct rt2x00_dev *rt2x00dev)
+{
+ rt2800_init_bbp_early(rt2x00dev);
+
+ rt2800_bbp_write(rt2x00dev, 4, 0x50);
+ rt2800_bbp_write(rt2x00dev, 47, 0x48);
+
+ rt2800_bbp_write(rt2x00dev, 86, 0x46);
+ rt2800_bbp_write(rt2x00dev, 88, 0x90);
+
+ rt2800_bbp_write(rt2x00dev, 92, 0x02);
+
+ rt2800_bbp_write(rt2x00dev, 103, 0xc0);
+ rt2800_bbp_write(rt2x00dev, 104, 0x92);
+ rt2800_bbp_write(rt2x00dev, 105, 0x34);
+ rt2800_bbp_write(rt2x00dev, 106, 0x12);
+ rt2800_bbp_write(rt2x00dev, 120, 0x50);
+ rt2800_bbp_write(rt2x00dev, 137, 0x0f);
+ rt2800_bbp_write(rt2x00dev, 163, 0x9d);
+
+ /* Set ITxBF timeout to 0x9C40=1000msec */
+ rt2800_bbp_write(rt2x00dev, 179, 0x02);
+ rt2800_bbp_write(rt2x00dev, 180, 0x00);
+ rt2800_bbp_write(rt2x00dev, 182, 0x40);
+ rt2800_bbp_write(rt2x00dev, 180, 0x01);
+ rt2800_bbp_write(rt2x00dev, 182, 0x9c);
+
+ rt2800_bbp_write(rt2x00dev, 179, 0x00);
+
+ /* Reprogram the inband interface to put right values in RXWI */
+ rt2800_bbp_write(rt2x00dev, 142, 0x04);
+ rt2800_bbp_write(rt2x00dev, 143, 0x3b);
+ rt2800_bbp_write(rt2x00dev, 142, 0x06);
+ rt2800_bbp_write(rt2x00dev, 143, 0xa0);
+ rt2800_bbp_write(rt2x00dev, 142, 0x07);
+ rt2800_bbp_write(rt2x00dev, 143, 0xa1);
+ rt2800_bbp_write(rt2x00dev, 142, 0x08);
+ rt2800_bbp_write(rt2x00dev, 143, 0xa2);
+ rt2800_bbp_write(rt2x00dev, 148, 0xc8);
+}
+
static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
{
int ant, div_mode;
@@ -6955,6 +6996,9 @@ static void rt2800_init_bbp(struct rt2x00_dev *rt2x00dev)
case RT3593:
rt2800_init_bbp_3593(rt2x00dev);
return;
+ case RT3883:
+ rt2800_init_bbp_3883(rt2x00dev);
+ return;
case RT5390:
case RT5392:
rt2800_init_bbp_53xx(rt2x00dev);
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 09/21] rt2x00: rt2800lib: add RFCSR initialization for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (7 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 08/21] rt2x00: rt2800lib: add BBP register initialization " Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 10/21] rt2x00: rt2800lib: use the extended EEPROM map " Stanislaw Gruszka
` (12 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800.h | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 141 +++++++++++++++++++++++++
2 files changed, 142 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800.h b/drivers/net/wireless/ralink/rt2x00/rt2800.h
index 5bfcd48aedab..06c38bafd2ca 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
@@ -2312,6 +2312,7 @@ struct mac_iveiv_entry {
/*
* RFCSR 2:
*/
+#define RFCSR2_RESCAL_BP FIELD8(0x40)
#define RFCSR2_RESCAL_EN FIELD8(0x80)
#define RFCSR2_RX2_EN_MT7620 FIELD8(0x02)
#define RFCSR2_TX2_EN_MT7620 FIELD8(0x20)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index c6a3e02cd6dd..02f74ace217d 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -7870,6 +7870,144 @@ static void rt2800_init_rfcsr_5350(struct rt2x00_dev *rt2x00dev)
rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
}
+static void rt2800_init_rfcsr_3883(struct rt2x00_dev *rt2x00dev)
+{
+ u8 rfcsr;
+
+ /* TODO: get the actual ECO value from the SoC */
+ const unsigned int eco = 5;
+
+ rt2800_rf_init_calibration(rt2x00dev, 2);
+
+ rt2800_rfcsr_write(rt2x00dev, 0, 0xe0);
+ rt2800_rfcsr_write(rt2x00dev, 1, 0x03);
+ rt2800_rfcsr_write(rt2x00dev, 2, 0x50);
+ rt2800_rfcsr_write(rt2x00dev, 3, 0x20);
+ rt2800_rfcsr_write(rt2x00dev, 4, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 5, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 6, 0x40);
+ rt2800_rfcsr_write(rt2x00dev, 7, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 8, 0x5b);
+ rt2800_rfcsr_write(rt2x00dev, 9, 0x08);
+ rt2800_rfcsr_write(rt2x00dev, 10, 0xd3);
+ rt2800_rfcsr_write(rt2x00dev, 11, 0x48);
+ rt2800_rfcsr_write(rt2x00dev, 12, 0x1a);
+ rt2800_rfcsr_write(rt2x00dev, 13, 0x12);
+ rt2800_rfcsr_write(rt2x00dev, 14, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 15, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 16, 0x00);
+
+ /* RFCSR 17 will be initialized later based on the
+ * frequency offset stored in the EEPROM
+ */
+
+ rt2800_rfcsr_write(rt2x00dev, 18, 0x40);
+ rt2800_rfcsr_write(rt2x00dev, 19, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 20, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 21, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 22, 0x20);
+ rt2800_rfcsr_write(rt2x00dev, 23, 0xc0);
+ rt2800_rfcsr_write(rt2x00dev, 24, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 25, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 26, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 27, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 28, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 29, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 30, 0x10);
+ rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
+ rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
+ rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 34, 0x20);
+ rt2800_rfcsr_write(rt2x00dev, 35, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 36, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 37, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 38, 0x86);
+ rt2800_rfcsr_write(rt2x00dev, 39, 0x23);
+ rt2800_rfcsr_write(rt2x00dev, 40, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 41, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 42, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 43, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 44, 0x93);
+ rt2800_rfcsr_write(rt2x00dev, 45, 0xbb);
+ rt2800_rfcsr_write(rt2x00dev, 46, 0x60);
+ rt2800_rfcsr_write(rt2x00dev, 47, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 48, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 49, 0x8e);
+ rt2800_rfcsr_write(rt2x00dev, 50, 0x86);
+ rt2800_rfcsr_write(rt2x00dev, 51, 0x51);
+ rt2800_rfcsr_write(rt2x00dev, 52, 0x05);
+ rt2800_rfcsr_write(rt2x00dev, 53, 0x76);
+ rt2800_rfcsr_write(rt2x00dev, 54, 0x76);
+ rt2800_rfcsr_write(rt2x00dev, 55, 0x76);
+ rt2800_rfcsr_write(rt2x00dev, 56, 0xdb);
+ rt2800_rfcsr_write(rt2x00dev, 57, 0x3e);
+ rt2800_rfcsr_write(rt2x00dev, 58, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 59, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 60, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 61, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 62, 0x00);
+ rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
+
+ /* TODO: rx filter calibration? */
+
+ rt2800_bbp_write(rt2x00dev, 137, 0x0f);
+
+ rt2800_bbp_write(rt2x00dev, 163, 0x9d);
+
+ rt2800_bbp_write(rt2x00dev, 105, 0x05);
+
+ rt2800_bbp_write(rt2x00dev, 179, 0x02);
+ rt2800_bbp_write(rt2x00dev, 180, 0x00);
+ rt2800_bbp_write(rt2x00dev, 182, 0x40);
+ rt2800_bbp_write(rt2x00dev, 180, 0x01);
+ rt2800_bbp_write(rt2x00dev, 182, 0x9c);
+
+ rt2800_bbp_write(rt2x00dev, 179, 0x00);
+
+ rt2800_bbp_write(rt2x00dev, 142, 0x04);
+ rt2800_bbp_write(rt2x00dev, 143, 0x3b);
+ rt2800_bbp_write(rt2x00dev, 142, 0x06);
+ rt2800_bbp_write(rt2x00dev, 143, 0xa0);
+ rt2800_bbp_write(rt2x00dev, 142, 0x07);
+ rt2800_bbp_write(rt2x00dev, 143, 0xa1);
+ rt2800_bbp_write(rt2x00dev, 142, 0x08);
+ rt2800_bbp_write(rt2x00dev, 143, 0xa2);
+ rt2800_bbp_write(rt2x00dev, 148, 0xc8);
+
+ if (eco == 5) {
+ rt2800_rfcsr_write(rt2x00dev, 32, 0xd8);
+ rt2800_rfcsr_write(rt2x00dev, 33, 0x32);
+ }
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 2);
+ rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_BP, 0);
+ rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 1);
+ rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
+ msleep(1);
+ rt2x00_set_field8(&rfcsr, RFCSR2_RESCAL_EN, 0);
+ rt2800_rfcsr_write(rt2x00dev, 2, rfcsr);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 1);
+ rt2x00_set_field8(&rfcsr, RFCSR1_RF_BLOCK_EN, 1);
+ rt2800_rfcsr_write(rt2x00dev, 1, rfcsr);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 6);
+ rfcsr |= 0xc0;
+ rt2800_rfcsr_write(rt2x00dev, 6, rfcsr);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 22);
+ rfcsr |= 0x20;
+ rt2800_rfcsr_write(rt2x00dev, 22, rfcsr);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 46);
+ rfcsr |= 0x20;
+ rt2800_rfcsr_write(rt2x00dev, 46, rfcsr);
+
+ rfcsr = rt2800_rfcsr_read(rt2x00dev, 20);
+ rfcsr &= ~0xee;
+ rt2800_rfcsr_write(rt2x00dev, 20, rfcsr);
+}
+
static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
{
rt2800_rf_init_calibration(rt2x00dev, 2);
@@ -8712,6 +8850,9 @@ static void rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
case RT3390:
rt2800_init_rfcsr_3390(rt2x00dev);
break;
+ case RT3883:
+ rt2800_init_rfcsr_3883(rt2x00dev);
+ break;
case RT3572:
rt2800_init_rfcsr_3572(rt2x00dev);
break;
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 10/21] rt2x00: rt2800lib: use the extended EEPROM map for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (8 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 09/21] rt2x00: rt2800lib: add RFCSR " Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 11/21] rt2x00: rt2800lib: force rf type to RF3853 on RT3883 Stanislaw Gruszka
` (11 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 02f74ace217d..cad01a7ee89b 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -381,7 +381,8 @@ static unsigned int rt2800_eeprom_word_index(struct rt2x00_dev *rt2x00dev,
wiphy_name(rt2x00dev->hw->wiphy), word))
return 0;
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
map = rt2800_eeprom_map_ext;
else
map = rt2800_eeprom_map;
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 11/21] rt2x00: rt2800lib: force rf type to RF3853 on RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (9 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 10/21] rt2x00: rt2800lib: use the extended EEPROM map " Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 12/21] rt2x00: rt2800lib: add channel configuration code for RT3883 Stanislaw Gruszka
` (10 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index cad01a7ee89b..d95cb89309b4 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9246,6 +9246,8 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
rf = rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID);
else if (rt2x00_rt(rt2x00dev, RT3352))
rf = RF3322;
+ else if (rt2x00_rt(rt2x00dev, RT3883))
+ rf = RF3853;
else if (rt2x00_rt(rt2x00dev, RT5350))
rf = RF5350;
else
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 12/21] rt2x00: rt2800lib: add channel configuration code for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (10 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 11/21] rt2x00: rt2800lib: force rf type to RF3853 on RT3883 Stanislaw Gruszka
@ 2019-04-09 11:36 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 13/21] rt2x00: rt2800lib: fix txpower_to_dev function " Stanislaw Gruszka
` (9 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:36 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 72 ++++++++++++++++++++++++--
1 file changed, 69 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index d95cb89309b4..216f5c87b084 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -3894,6 +3894,36 @@ static char rt2800_txpower_to_dev(struct rt2x00_dev *rt2x00dev,
return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER);
}
+static void rt3883_bbp_adjust(struct rt2x00_dev *rt2x00dev,
+ struct rf_channel *rf)
+{
+ u8 bbp;
+
+ bbp = (rf->channel > 14) ? 0x48 : 0x38;
+ rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, bbp);
+
+ rt2800_bbp_write(rt2x00dev, 69, 0x12);
+
+ if (rf->channel <= 14) {
+ rt2800_bbp_write(rt2x00dev, 70, 0x0a);
+ } else {
+ /* Disable CCK packet detection */
+ rt2800_bbp_write(rt2x00dev, 70, 0x00);
+ }
+
+ rt2800_bbp_write(rt2x00dev, 73, 0x10);
+
+ if (rf->channel > 14) {
+ rt2800_bbp_write(rt2x00dev, 62, 0x1d);
+ rt2800_bbp_write(rt2x00dev, 63, 0x1d);
+ rt2800_bbp_write(rt2x00dev, 64, 0x1d);
+ } else {
+ rt2800_bbp_write(rt2x00dev, 62, 0x2d);
+ rt2800_bbp_write(rt2x00dev, 63, 0x2d);
+ rt2800_bbp_write(rt2x00dev, 64, 0x2d);
+ }
+}
+
static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
struct ieee80211_conf *conf,
struct rf_channel *rf,
@@ -3912,6 +3942,12 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
rt2800_txpower_to_dev(rt2x00dev, rf->channel,
info->default_power3);
+ switch (rt2x00dev->chip.rt) {
+ case RT3883:
+ rt3883_bbp_adjust(rt2x00dev, rf);
+ break;
+ }
+
switch (rt2x00dev->chip.rf) {
case RF2020:
case RF3020:
@@ -4016,6 +4052,15 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 77, 0x98);
+ } else if (rt2x00_rt(rt2x00dev, RT3883)) {
+ rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
+ rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
+ rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
+
+ if (rt2x00dev->default_ant.rx_chain_num > 1)
+ rt2800_bbp_write(rt2x00dev, 86, 0x46);
+ else
+ rt2800_bbp_write(rt2x00dev, 86, 0);
} else {
rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
@@ -4029,6 +4074,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
!rt2x00_rt(rt2x00dev, RT6352)) {
if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) {
rt2800_bbp_write(rt2x00dev, 82, 0x62);
+ rt2800_bbp_write(rt2x00dev, 82, 0x62);
rt2800_bbp_write(rt2x00dev, 75, 0x46);
} else {
if (rt2x00_rt(rt2x00dev, RT3593))
@@ -4037,19 +4083,22 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
rt2800_bbp_write(rt2x00dev, 82, 0x84);
rt2800_bbp_write(rt2x00dev, 75, 0x50);
}
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
rt2800_bbp_write(rt2x00dev, 83, 0x8a);
}
} else {
if (rt2x00_rt(rt2x00dev, RT3572))
rt2800_bbp_write(rt2x00dev, 82, 0x94);
- else if (rt2x00_rt(rt2x00dev, RT3593))
+ else if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
rt2800_bbp_write(rt2x00dev, 82, 0x82);
else if (!rt2x00_rt(rt2x00dev, RT6352))
rt2800_bbp_write(rt2x00dev, 82, 0xf2);
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
rt2800_bbp_write(rt2x00dev, 83, 0x9a);
if (rt2x00_has_cap_external_lna_a(rt2x00dev))
@@ -4185,6 +4234,23 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
usleep_range(1000, 1500);
}
+ if (rt2x00_rt(rt2x00dev, RT3883)) {
+ if (!conf_is_ht40(conf))
+ rt2800_bbp_write(rt2x00dev, 105, 0x34);
+ else
+ rt2800_bbp_write(rt2x00dev, 105, 0x04);
+
+ /* AGC init */
+ if (rf->channel <= 14)
+ reg = 0x2e + rt2x00dev->lna_gain;
+ else
+ reg = 0x20 + ((rt2x00dev->lna_gain * 5) / 3);
+
+ rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
+
+ usleep_range(1000, 1500);
+ }
+
if (rt2x00_rt(rt2x00dev, RT5592) || rt2x00_rt(rt2x00dev, RT6352)) {
reg = 0x10;
if (!conf_is_ht40(conf)) {
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 13/21] rt2x00: rt2800lib: fix txpower_to_dev function for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (11 preceding siblings ...)
2019-04-09 11:36 ` [PATCH 12/21] rt2x00: rt2800lib: add channel configuration code for RT3883 Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 14/21] rt2x00: rt2800lib: use correct txpower calculation " Stanislaw Gruszka
` (8 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 216f5c87b084..9ebf8249d13e 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -3881,13 +3881,15 @@ static char rt2800_txpower_to_dev(struct rt2x00_dev *rt2x00dev,
unsigned int channel,
char txpower)
{
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
txpower = rt2x00_get_field8(txpower, EEPROM_TXPOWER_ALC);
if (channel <= 14)
return clamp_t(char, txpower, MIN_G_TXPOWER, MAX_G_TXPOWER);
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
return clamp_t(char, txpower, MIN_A_TXPOWER_3593,
MAX_A_TXPOWER_3593);
else
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 14/21] rt2x00: rt2800lib: use correct txpower calculation function for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (12 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 13/21] rt2x00: rt2800lib: fix txpower_to_dev function " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero " Stanislaw Gruszka
` (7 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 9ebf8249d13e..0687bef990e1 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5273,7 +5273,8 @@ static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev,
struct ieee80211_channel *chan,
int power_level)
{
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
rt2800_config_txpower_rt3593(rt2x00dev, chan, power_level);
else if (rt2x00_rt(rt2x00dev, RT6352))
rt2800_config_txpower_rt6352(rt2x00dev, chan, power_level);
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (13 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 14/21] rt2x00: rt2800lib: use correct txpower calculation " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 15:26 ` Tom Psyborg
2019-04-09 11:37 ` [PATCH 16/21] rt2x00: rt2800lib: use correct [RT]XWI size " Stanislaw Gruszka
` (6 subsequent siblings)
21 siblings, 1 reply; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 0687bef990e1..4ea94c62d439 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9128,7 +9128,8 @@ static u8 rt2800_get_txmixer_gain_24g(struct rt2x00_dev *rt2x00dev)
{
u16 word;
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
return 0;
word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
@@ -9142,7 +9143,8 @@ static u8 rt2800_get_txmixer_gain_5g(struct rt2x00_dev *rt2x00dev)
{
u16 word;
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
return 0;
word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 16/21] rt2x00: rt2800lib: use correct [RT]XWI size for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (14 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 17/21] rt2x00: rt2800lib: fix antenna configuration " Stanislaw Gruszka
` (5 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 4ea94c62d439..024befd07903 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -591,6 +591,7 @@ void rt2800_get_txwi_rxwi_size(struct rt2x00_dev *rt2x00dev,
{
switch (rt2x00dev->chip.rt) {
case RT3593:
+ case RT3883:
*txwi_size = TXWI_DESC_SIZE_4WORDS;
*rxwi_size = RXWI_DESC_SIZE_5WORDS;
break;
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 17/21] rt2x00: rt2800lib: fix antenna configuration for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (15 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 16/21] rt2x00: rt2800lib: use correct [RT]XWI size " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 18/21] rt2x00: rt2800lib: fix LNA gain " Stanislaw Gruszka
` (4 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 024befd07903..8fca5e26f36e 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -2174,7 +2174,8 @@ void rt2800_config_ant(struct rt2x00_dev *rt2x00dev, struct antenna_setup *ant)
rt2800_bbp_write(rt2x00dev, 3, r3);
rt2800_bbp_write(rt2x00dev, 1, r1);
- if (rt2x00_rt(rt2x00dev, RT3593)) {
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883)) {
if (ant->rx_chain_num == 1)
rt2800_bbp_write(rt2x00dev, 86, 0x00);
else
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 18/21] rt2x00: rt2800lib: fix LNA gain configuration for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (16 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 17/21] rt2x00: rt2800lib: fix antenna configuration " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 19/21] rt2x00: rt2800lib: fix VGC setup " Stanislaw Gruszka
` (3 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 8fca5e26f36e..a3b5b51d7779 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -2197,7 +2197,8 @@ static void rt2800_config_lna_gain(struct rt2x00_dev *rt2x00dev,
eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0);
} else if (libconf->rf.channel <= 128) {
- if (rt2x00_rt(rt2x00dev, RT3593)) {
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883)) {
eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
lna_gain = rt2x00_get_field16(eeprom,
EEPROM_EXT_LNA2_A1);
@@ -2207,7 +2208,8 @@ static void rt2800_config_lna_gain(struct rt2x00_dev *rt2x00dev,
EEPROM_RSSI_BG2_LNA_A1);
}
} else {
- if (rt2x00_rt(rt2x00dev, RT3593)) {
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883)) {
eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
lna_gain = rt2x00_get_field16(eeprom,
EEPROM_EXT_LNA2_A2);
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 19/21] rt2x00: rt2800lib: fix VGC setup for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (17 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 18/21] rt2x00: rt2800lib: fix LNA gain " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 20/21] rt2x00: rt2800lib: fix EEPROM LNA validation " Stanislaw Gruszka
` (2 subsequent siblings)
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index a3b5b51d7779..b0701aba50de 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5526,7 +5526,8 @@ static u8 rt2800_get_default_vgc(struct rt2x00_dev *rt2x00dev)
else
vgc = 0x2e + rt2x00dev->lna_gain;
} else { /* 5GHZ band */
- if (rt2x00_rt(rt2x00dev, RT3593))
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883))
vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
else if (rt2x00_rt(rt2x00dev, RT5592))
vgc = 0x24 + (2 * rt2x00dev->lna_gain);
@@ -5546,7 +5547,8 @@ static inline void rt2800_set_vgc(struct rt2x00_dev *rt2x00dev,
{
if (qual->vgc_level != vgc_level) {
if (rt2x00_rt(rt2x00dev, RT3572) ||
- rt2x00_rt(rt2x00dev, RT3593)) {
+ rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883)) {
rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
vgc_level);
} else if (rt2x00_rt(rt2x00dev, RT5592)) {
@@ -5593,6 +5595,11 @@ void rt2800_link_tuner(struct rt2x00_dev *rt2x00dev, struct link_qual *qual,
}
break;
+ case RT3883:
+ if (qual->rssi > -65)
+ vgc += 0x10;
+ break;
+
case RT5592:
if (qual->rssi > -65)
vgc += 0x20;
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 20/21] rt2x00: rt2800lib: fix EEPROM LNA validation for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (18 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 19/21] rt2x00: rt2800lib: fix VGC setup " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 21/21] rt2x00: rt2800lib: fix txpower compensation " Stanislaw Gruszka
2019-04-23 8:49 ` [PATCH 00/21] RT3883 support from OpenWrt Kalle Valo
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index b0701aba50de..a401fd60f9a6 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9261,7 +9261,8 @@ static int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev)
word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
rt2x00_set_field16(&word, EEPROM_RSSI_BG2_OFFSET2, 0);
- if (!rt2x00_rt(rt2x00dev, RT3593)) {
+ if (!rt2x00_rt(rt2x00dev, RT3593) &&
+ !rt2x00_rt(rt2x00dev, RT3883)) {
if (rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0x00 ||
rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0xff)
rt2x00_set_field16(&word, EEPROM_RSSI_BG2_LNA_A1,
@@ -9281,7 +9282,8 @@ static int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev)
word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A2_OFFSET2)) > 10)
rt2x00_set_field16(&word, EEPROM_RSSI_A2_OFFSET2, 0);
- if (!rt2x00_rt(rt2x00dev, RT3593)) {
+ if (!rt2x00_rt(rt2x00dev, RT3593) &&
+ !rt2x00_rt(rt2x00dev, RT3883)) {
if (rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0x00 ||
rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0xff)
rt2x00_set_field16(&word, EEPROM_RSSI_A2_LNA_A2,
@@ -9289,7 +9291,8 @@ static int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev)
}
rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word);
- if (rt2x00_rt(rt2x00dev, RT3593)) {
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
+ rt2x00_rt(rt2x00dev, RT3883)) {
word = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
if (rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0x00 ||
rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0xff)
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 21/21] rt2x00: rt2800lib: fix txpower compensation for RT3883
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (19 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 20/21] rt2x00: rt2800lib: fix EEPROM LNA validation " Stanislaw Gruszka
@ 2019-04-09 11:37 ` Stanislaw Gruszka
2019-04-23 8:49 ` [PATCH 00/21] RT3883 support from OpenWrt Kalle Valo
21 siblings, 0 replies; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-09 11:37 UTC (permalink / raw)
To: linux-wireless
Cc: Tomislav Požega, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos, Stanislaw Gruszka
From: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index a401fd60f9a6..0e8e96075554 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -4516,6 +4516,9 @@ static u8 rt2800_compensate_txpower(struct rt2x00_dev *rt2x00dev, int is_rate_b,
if (rt2x00_rt(rt2x00dev, RT3593))
return min_t(u8, txpower, 0xc);
+ if (rt2x00_rt(rt2x00dev, RT3883))
+ return min_t(u8, txpower, 0xf);
+
if (rt2x00_has_cap_power_limit(rt2x00dev)) {
/*
* Check if eirp txpower exceed txpower_limit.
--
2.7.5
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero for RT3883
2019-04-09 11:37 ` [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero " Stanislaw Gruszka
@ 2019-04-09 15:26 ` Tom Psyborg
2019-04-10 8:22 ` Stanislaw Gruszka
0 siblings, 1 reply; 26+ messages in thread
From: Tom Psyborg @ 2019-04-09 15:26 UTC (permalink / raw)
To: Stanislaw Gruszka
Cc: linux-wireless, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos
On 09/04/2019, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> From: Gabor Juhos <juhosg@openwrt.org>
>
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
> drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> index 0687bef990e1..4ea94c62d439 100644
> --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> @@ -9128,7 +9128,8 @@ static u8 rt2800_get_txmixer_gain_24g(struct
> rt2x00_dev *rt2x00dev)
> {
> u16 word;
>
> - if (rt2x00_rt(rt2x00dev, RT3593))
> + if (rt2x00_rt(rt2x00dev, RT3593) ||
> + rt2x00_rt(rt2x00dev, RT3883))
> return 0;
>
> word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
> @@ -9142,7 +9143,8 @@ static u8 rt2800_get_txmixer_gain_5g(struct rt2x00_dev
> *rt2x00dev)
> {
> u16 word;
>
> - if (rt2x00_rt(rt2x00dev, RT3593))
> + if (rt2x00_rt(rt2x00dev, RT3593) ||
> + rt2x00_rt(rt2x00dev, RT3883))
> return 0;
>
> word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
> --
> 2.7.5
>
>
Did someone actually verified this is correct?
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero for RT3883
2019-04-09 15:26 ` Tom Psyborg
@ 2019-04-10 8:22 ` Stanislaw Gruszka
2019-04-10 13:12 ` Daniel Golle
0 siblings, 1 reply; 26+ messages in thread
From: Stanislaw Gruszka @ 2019-04-10 8:22 UTC (permalink / raw)
To: Tom Psyborg
Cc: linux-wireless, Daniel Golle, Felix Fietkau, Mathias Kresin,
Gabor Juhos
On Tue, Apr 09, 2019 at 05:26:46PM +0200, Tom Psyborg wrote:
> On 09/04/2019, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> > From: Gabor Juhos <juhosg@openwrt.org>
> >
> > Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > ---
> > drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > index 0687bef990e1..4ea94c62d439 100644
> > --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > @@ -9128,7 +9128,8 @@ static u8 rt2800_get_txmixer_gain_24g(struct
> > rt2x00_dev *rt2x00dev)
> > {
> > u16 word;
> >
> > - if (rt2x00_rt(rt2x00dev, RT3593))
> > + if (rt2x00_rt(rt2x00dev, RT3593) ||
> > + rt2x00_rt(rt2x00dev, RT3883))
> > return 0;
> >
> > word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
> > @@ -9142,7 +9143,8 @@ static u8 rt2800_get_txmixer_gain_5g(struct rt2x00_dev
> > *rt2x00dev)
> > {
> > u16 word;
> >
> > - if (rt2x00_rt(rt2x00dev, RT3593))
> > + if (rt2x00_rt(rt2x00dev, RT3593) ||
> > + rt2x00_rt(rt2x00dev, RT3883))
> > return 0;
> >
> > word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
> > --
> > 2.7.5
> >
> >
>
> Did someone actually verified this is correct?
I don't know if it was verified or not.
Stanislaw
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero for RT3883
2019-04-10 8:22 ` Stanislaw Gruszka
@ 2019-04-10 13:12 ` Daniel Golle
0 siblings, 0 replies; 26+ messages in thread
From: Daniel Golle @ 2019-04-10 13:12 UTC (permalink / raw)
To: Stanislaw Gruszka
Cc: Tom Psyborg, linux-wireless, Felix Fietkau, Mathias Kresin,
Gabor Juhos
On Wed, Apr 10, 2019 at 10:22:42AM +0200, Stanislaw Gruszka wrote:
> On Tue, Apr 09, 2019 at 05:26:46PM +0200, Tom Psyborg wrote:
> > On 09/04/2019, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> > > From: Gabor Juhos <juhosg@openwrt.org>
> > >
> > > Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> > > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > > ---
> > > drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++--
> > > 1 file changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > index 0687bef990e1..4ea94c62d439 100644
> > > --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
> > > @@ -9128,7 +9128,8 @@ static u8 rt2800_get_txmixer_gain_24g(struct
> > > rt2x00_dev *rt2x00dev)
> > > {
> > > u16 word;
> > >
> > > - if (rt2x00_rt(rt2x00dev, RT3593))
> > > + if (rt2x00_rt(rt2x00dev, RT3593) ||
> > > + rt2x00_rt(rt2x00dev, RT3883))
> > > return 0;
> > >
> > > word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
> > > @@ -9142,7 +9143,8 @@ static u8 rt2800_get_txmixer_gain_5g(struct rt2x00_dev
> > > *rt2x00dev)
> > > {
> > > u16 word;
> > >
> > > - if (rt2x00_rt(rt2x00dev, RT3593))
> > > + if (rt2x00_rt(rt2x00dev, RT3593) ||
> > > + rt2x00_rt(rt2x00dev, RT3883))
> > > return 0;
> > >
> > > word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
> > > --
> > > 2.7.5
> > >
> > >
> >
> > Did someone actually verified this is correct?
>
> I don't know if it was verified or not.
Gabor supposedly verified this when he wrote that patch 6 years ago,
it was reviewed and merged by John Crispin back then:
commit 6e3de004f9cf6724b1ad950e7cb3b98f1b4af54d
Author: John Crispin <blogic@openwrt.org>
Date: Wed Apr 23 07:52:18 2014 +0000
mac80211: rt2x00: add support for the RT3662/RT3883 SoCs
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40558 3c298f89-4303-0410-b956-a3cf2f4a3e73
Since when we carry it in OpenWrt and supposedly everyone with Rt3xx3
WiSoC devices is using it and there haven't been any complains so far.
Cheers
Daniel
>
> Stanislaw
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 00/21] RT3883 support from OpenWrt
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
` (20 preceding siblings ...)
2019-04-09 11:37 ` [PATCH 21/21] rt2x00: rt2800lib: fix txpower compensation " Stanislaw Gruszka
@ 2019-04-23 8:49 ` Kalle Valo
21 siblings, 0 replies; 26+ messages in thread
From: Kalle Valo @ 2019-04-23 8:49 UTC (permalink / raw)
To: Stanislaw Gruszka
Cc: linux-wireless, Tomislav Požega, Daniel Golle, Felix Fietkau,
Mathias Kresin
Stanislaw Gruszka <sgruszka@redhat.com> writes:
> Upstream RT3883 support patches cared by openwrt for quite
> a while now.
>
> Patches do not contain the changelog and generate this checkpatch.pl
> warning:
>
> WARNING: Missing commit description - Add an appropriate one
No empty commit logs, please. They are very annoying.
> but I do not see much sense for fixing that.
>
> Gabor Juhos (21):
> rt2x00: rt2800lib: enable support for RT3883
> rt2x00: rt2800lib: add rf_vals for RF3853
> rt2x00: rt2800lib: enable VCO calibration for RF3853
> rt2x00: rt2800lib: add channel configuration function for RF3853
> rt2x00: rt2800lib: enable RF3853 support
> rt2x00: rt2800lib: add MAC register initialization for RT3883
> rt2x00: rt2800soc: fix rt2800soc_disable_radio for RT3883
> rt2x00: rt2800lib: add BBP register initialization for RT3883
> rt2x00: rt2800lib: add RFCSR initialization for RT3883
> rt2x00: rt2800lib: use the extended EEPROM map for RT3883
> rt2x00: rt2800lib: force rf type to RF3853 on RT3883
> rt2x00: rt2800lib: add channel configuration code for RT3883
> rt2x00: rt2800lib: fix txpower_to_dev function for RT3883
> rt2x00: rt2800lib: use correct txpower calculation function for RT3883
> rt2x00: rt2800lib: hardcode txmixer gain values to zero for RT3883
> rt2x00: rt2800lib: use correct [RT]XWI size for RT3883
> rt2x00: rt2800lib: fix antenna configuration for RT3883
> rt2x00: rt2800lib: fix LNA gain configuration for RT3883
> rt2x00: rt2800lib: fix VGC setup for RT3883
> rt2x00: rt2800lib: fix EEPROM LNA validation for RT3883
> rt2x00: rt2800lib: fix txpower compensation for RT3883
>
> drivers/net/wireless/ralink/rt2x00/rt2800.h | 19 +-
> drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 598 ++++++++++++++++++++++++-
> drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 9 +-
> 3 files changed, 607 insertions(+), 19 deletions(-)
I'm not seeing the point of of all these small patches, they are all
about adding RT3883 support, right? I think it it would be easier to
combine all these to one bigger patch and write a proper commit log
explaining the background and what has been tested etc. It wouldn't be
that big patch anyway.
--
Kalle Valo
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2019-04-23 8:49 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-09 11:36 [PATCH 00/21] RT3883 support from OpenWrt Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 01/21] rt2x00: rt2800lib: enable support for RT3883 Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 02/21] rt2x00: rt2800lib: add rf_vals for RF3853 Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 03/21] rt2x00: rt2800lib: enable VCO calibration " Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 04/21] rt2x00: rt2800lib: add channel configuration function " Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 05/21] rt2x00: rt2800lib: enable RF3853 support Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 06/21] rt2x00: rt2800lib: add MAC register initialization for RT3883 Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 07/21] rt2x00: rt2800soc: fix rt2800soc_disable_radio " Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 08/21] rt2x00: rt2800lib: add BBP register initialization " Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 09/21] rt2x00: rt2800lib: add RFCSR " Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 10/21] rt2x00: rt2800lib: use the extended EEPROM map " Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 11/21] rt2x00: rt2800lib: force rf type to RF3853 on RT3883 Stanislaw Gruszka
2019-04-09 11:36 ` [PATCH 12/21] rt2x00: rt2800lib: add channel configuration code for RT3883 Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 13/21] rt2x00: rt2800lib: fix txpower_to_dev function " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 14/21] rt2x00: rt2800lib: use correct txpower calculation " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 15/21] rt2x00: rt2800lib: hardcode txmixer gain values to zero " Stanislaw Gruszka
2019-04-09 15:26 ` Tom Psyborg
2019-04-10 8:22 ` Stanislaw Gruszka
2019-04-10 13:12 ` Daniel Golle
2019-04-09 11:37 ` [PATCH 16/21] rt2x00: rt2800lib: use correct [RT]XWI size " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 17/21] rt2x00: rt2800lib: fix antenna configuration " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 18/21] rt2x00: rt2800lib: fix LNA gain " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 19/21] rt2x00: rt2800lib: fix VGC setup " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 20/21] rt2x00: rt2800lib: fix EEPROM LNA validation " Stanislaw Gruszka
2019-04-09 11:37 ` [PATCH 21/21] rt2x00: rt2800lib: fix txpower compensation " Stanislaw Gruszka
2019-04-23 8:49 ` [PATCH 00/21] RT3883 support from OpenWrt Kalle Valo
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.