|
|
|
From ecb394ccf248d8652c463133c4f404458a57a9c1 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Gabor Juhos <juhosg@openwrt.org>
|
|
|
|
Date: Sun, 24 Mar 2013 19:26:26 +0100
|
|
|
|
Subject: [PATCH] rt2x00: rt2800lib: add rf_vals for RF3853
|
|
|
|
|
|
|
|
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|
|
|
---
|
|
|
|
drivers/net/wireless/rt2x00/rt2800.h | 4 +-
|
|
|
|
drivers/net/wireless/rt2x00/rt2800lib.c | 65 +++++++++++++++++++++++++++++++
|
|
|
|
2 files changed, 68 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/wireless/rt2x00/rt2800.h
|
|
|
|
+++ b/drivers/net/wireless/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
|
|
|
|
@@ -71,6 +72,7 @@
|
|
|
|
#define RF5592 0x000f
|
|
|
|
#define RF3070 0x3070
|
|
|
|
#define RF3290 0x3290
|
|
|
|
+#define RF3853 0x3853
|
|
|
|
#define RF5360 0x5360
|
|
|
|
#define RF5370 0x5370
|
|
|
|
#define RF5372 0x5372
|
|
|
|
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
|
|
|
|
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
|
|
|
|
@@ -7454,6 +7454,66 @@ static const struct rf_channel rf_vals_3
|
|
|
|
{173, 0x61, 0, 9},
|
|
|
|
};
|
|
|
|
|
|
|
|
+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},
|
|
|
|
@@ -7682,6 +7742,11 @@ static int rt2800_probe_hw_mode(struct r
|
|
|
|
spec->channels = rf_vals_3x;
|
|
|
|
break;
|
|
|
|
|
|
|
|
+ case RF3853:
|
|
|
|
+ spec->num_channels = ARRAY_SIZE(rf_vals_3853);
|
|
|
|
+ spec->channels = rf_vals_3853;
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
case RF5592:
|
|
|
|
rt2800_register_read(rt2x00dev, MAC_DEBUG_INDEX, ®);
|
|
|
|
if (rt2x00_get_field32(reg, MAC_DEBUG_INDEX_XTAL)) {
|