mac80211: refresh rt2x00 patches

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 40559
This commit is contained in:
John Crispin 2014-04-23 07:52:37 +00:00
parent 8be12510c9
commit ca27248c9f
9 changed files with 68 additions and 86 deletions

View File

@ -48,16 +48,16 @@
obj-$(CPTCFG_RT2X00_LIB_MMIO) += rt2x00mmio.o obj-$(CPTCFG_RT2X00_LIB_MMIO) += rt2x00mmio.o
--- a/drivers/net/wireless/rt2x00/rt2800lib.h --- a/drivers/net/wireless/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/rt2x00/rt2800lib.h +++ b/drivers/net/wireless/rt2x00/rt2800lib.h
@@ -20,6 +20,8 @@ @@ -43,6 +43,8 @@ struct rt2800_drv_data {
#ifndef RT2800LIB_H } shmem_lock;
#define RT2800LIB_H };
+#include "rt2800.h" +#include "rt2800.h"
+ +
struct rt2800_ops { struct rt2800_ops {
void (*register_read)(struct rt2x00_dev *rt2x00dev, void (*register_read)(struct rt2x00_dev *rt2x00dev,
const unsigned int offset, u32 *value); const unsigned int offset, u32 *value);
@@ -119,6 +121,15 @@ static inline int rt2800_read_eeprom(str @@ -176,6 +178,15 @@ static inline int rt2800_read_eeprom(str
{ {
const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv;
@ -75,7 +75,7 @@
--- a/drivers/net/wireless/rt2x00/rt2800soc.c --- a/drivers/net/wireless/rt2x00/rt2800soc.c
+++ b/drivers/net/wireless/rt2x00/rt2800soc.c +++ b/drivers/net/wireless/rt2x00/rt2800soc.c
@@ -95,19 +95,6 @@ static int rt2800soc_set_device_state(st @@ -102,19 +102,6 @@ static int rt2800soc_set_device_state(st
return retval; return retval;
} }
@ -95,7 +95,7 @@
/* Firmware functions */ /* Firmware functions */
static char *rt2800soc_get_firmware_name(struct rt2x00_dev *rt2x00dev) static char *rt2800soc_get_firmware_name(struct rt2x00_dev *rt2x00dev)
{ {
@@ -171,7 +158,6 @@ static const struct rt2800_ops rt2800soc @@ -178,7 +165,6 @@ static const struct rt2800_ops rt2800soc
.register_multiread = rt2x00mmio_register_multiread, .register_multiread = rt2x00mmio_register_multiread,
.register_multiwrite = rt2x00mmio_register_multiwrite, .register_multiwrite = rt2x00mmio_register_multiwrite,
.regbusy_read = rt2x00mmio_regbusy_read, .regbusy_read = rt2x00mmio_regbusy_read,

View File

@ -31,7 +31,7 @@
{ {
--- a/drivers/net/wireless/rt2x00/rt2x00.h --- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -1401,6 +1401,7 @@ static inline void rt2x00debug_dump_fram @@ -1406,6 +1406,7 @@ static inline void rt2x00debug_dump_fram
*/ */
u32 rt2x00lib_get_bssidx(struct rt2x00_dev *rt2x00dev, u32 rt2x00lib_get_bssidx(struct rt2x00_dev *rt2x00dev,
struct ieee80211_vif *vif); struct ieee80211_vif *vif);

View File

@ -1,14 +1,15 @@
--- a/drivers/net/wireless/rt2x00/rt2800lib.c --- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -3176,11 +3176,17 @@ static void rt2800_config_channel(struct @@ -3506,11 +3506,18 @@ static void rt2800_config_channel(struct
/* /*
* Change BBP settings * Change BBP settings
*/ */
+ 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 (rt2x00_rt(rt2x00dev, RT3352)) { if (rt2x00_rt(rt2x00dev, RT3352)) {
+ 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);
+
rt2800_bbp_write(rt2x00dev, 27, 0x0); rt2800_bbp_write(rt2x00dev, 27, 0x0);
rt2800_bbp_write(rt2x00dev, 66, 0x26 + rt2x00dev->lna_gain); rt2800_bbp_write(rt2x00dev, 66, 0x26 + rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 27, 0x20); rt2800_bbp_write(rt2x00dev, 27, 0x20);
@ -18,22 +19,7 @@
} else if (rt2x00_rt(rt2x00dev, RT3593)) { } else if (rt2x00_rt(rt2x00dev, RT3593)) {
if (rf->channel > 14) { if (rf->channel > 14) {
/* Disable CCK Packet detection on 5GHz */ /* Disable CCK Packet detection on 5GHz */
@@ -3194,14 +3200,8 @@ static void rt2800_config_channel(struct @@ -6586,6 +6593,12 @@ static void rt2800_init_rfcsr_3290(struc
else
rt2800_bbp_write(rt2x00dev, 105, 0x34);
- 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);
rt2800_bbp_write(rt2x00dev, 77, 0x98);
} else {
- 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);
rt2800_bbp_write(rt2x00dev, 86, 0);
}
@@ -6125,6 +6125,12 @@ static void rt2800_init_rfcsr_3290(struc
static void rt2800_init_rfcsr_3352(struct rt2x00_dev *rt2x00dev) static void rt2800_init_rfcsr_3352(struct rt2x00_dev *rt2x00dev)
{ {
@ -46,7 +32,7 @@
rt2800_rf_init_calibration(rt2x00dev, 30); rt2800_rf_init_calibration(rt2x00dev, 30);
rt2800_rfcsr_write(rt2x00dev, 0, 0xf0); rt2800_rfcsr_write(rt2x00dev, 0, 0xf0);
@@ -6160,15 +6166,30 @@ static void rt2800_init_rfcsr_3352(struc @@ -6621,15 +6634,30 @@ static void rt2800_init_rfcsr_3352(struc
rt2800_rfcsr_write(rt2x00dev, 31, 0x80); rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
rt2800_rfcsr_write(rt2x00dev, 32, 0x80); rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
rt2800_rfcsr_write(rt2x00dev, 33, 0x00); rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
@ -80,7 +66,7 @@
rt2800_rfcsr_write(rt2x00dev, 43, 0xdb); rt2800_rfcsr_write(rt2x00dev, 43, 0xdb);
rt2800_rfcsr_write(rt2x00dev, 44, 0xdb); rt2800_rfcsr_write(rt2x00dev, 44, 0xdb);
rt2800_rfcsr_write(rt2x00dev, 45, 0xdb); rt2800_rfcsr_write(rt2x00dev, 45, 0xdb);
@@ -6176,15 +6197,20 @@ static void rt2800_init_rfcsr_3352(struc @@ -6637,15 +6665,20 @@ static void rt2800_init_rfcsr_3352(struc
rt2800_rfcsr_write(rt2x00dev, 47, 0x0d); rt2800_rfcsr_write(rt2x00dev, 47, 0x0d);
rt2800_rfcsr_write(rt2x00dev, 48, 0x14); rt2800_rfcsr_write(rt2x00dev, 48, 0x14);
rt2800_rfcsr_write(rt2x00dev, 49, 0x00); rt2800_rfcsr_write(rt2x00dev, 49, 0x00);
@ -110,7 +96,7 @@
rt2800_rfcsr_write(rt2x00dev, 59, 0x00); rt2800_rfcsr_write(rt2x00dev, 59, 0x00);
rt2800_rfcsr_write(rt2x00dev, 60, 0x00); rt2800_rfcsr_write(rt2x00dev, 60, 0x00);
rt2800_rfcsr_write(rt2x00dev, 61, 0x00); rt2800_rfcsr_write(rt2x00dev, 61, 0x00);
@@ -7051,6 +7077,7 @@ static int rt2800_init_eeprom(struct rt2 @@ -7666,6 +7699,7 @@ static int rt2800_init_eeprom(struct rt2
* RT53xx: defined in "EEPROM_CHIP_ID" field * RT53xx: defined in "EEPROM_CHIP_ID" field
*/ */
if (rt2x00_rt(rt2x00dev, RT3290) || if (rt2x00_rt(rt2x00dev, RT3290) ||
@ -118,7 +104,7 @@
rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5390) ||
rt2x00_rt(rt2x00dev, RT5392)) rt2x00_rt(rt2x00dev, RT5392))
rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf); rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
@@ -7142,7 +7169,8 @@ static int rt2800_init_eeprom(struct rt2 @@ -7760,7 +7794,8 @@ static int rt2800_init_eeprom(struct rt2
/* /*
* Detect if this device has Bluetooth co-existence. * Detect if this device has Bluetooth co-existence.
*/ */
@ -128,7 +114,7 @@
__set_bit(CAPABILITY_BT_COEXIST, &rt2x00dev->cap_flags); __set_bit(CAPABILITY_BT_COEXIST, &rt2x00dev->cap_flags);
/* /*
@@ -7171,6 +7199,22 @@ static int rt2800_init_eeprom(struct rt2 @@ -7789,6 +7824,22 @@ static int rt2800_init_eeprom(struct rt2
EIRP_MAX_TX_POWER_LIMIT) EIRP_MAX_TX_POWER_LIMIT)
__set_bit(CAPABILITY_POWER_LIMIT, &rt2x00dev->cap_flags); __set_bit(CAPABILITY_POWER_LIMIT, &rt2x00dev->cap_flags);
@ -153,7 +139,7 @@
--- a/drivers/net/wireless/rt2x00/rt2800.h --- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h +++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -2299,6 +2299,12 @@ struct mac_iveiv_entry { @@ -2333,6 +2333,12 @@ struct mac_iveiv_entry {
#define RFCSR36_RF_BS FIELD8(0x80) #define RFCSR36_RF_BS FIELD8(0x80)
/* /*
@ -166,7 +152,7 @@
* RFCSR 38: * RFCSR 38:
*/ */
#define RFCSR38_RX_LO1_EN FIELD8(0x20) #define RFCSR38_RX_LO1_EN FIELD8(0x20)
@@ -2310,6 +2316,18 @@ struct mac_iveiv_entry { @@ -2344,6 +2350,18 @@ struct mac_iveiv_entry {
#define RFCSR39_RX_LO2_EN FIELD8(0x80) #define RFCSR39_RX_LO2_EN FIELD8(0x80)
/* /*
@ -185,7 +171,7 @@
* RFCSR 49: * RFCSR 49:
*/ */
#define RFCSR49_TX FIELD8(0x3f) #define RFCSR49_TX FIELD8(0x3f)
@@ -2322,6 +2340,8 @@ struct mac_iveiv_entry { @@ -2356,6 +2374,8 @@ struct mac_iveiv_entry {
* RFCSR 50: * RFCSR 50:
*/ */
#define RFCSR50_TX FIELD8(0x3f) #define RFCSR50_TX FIELD8(0x3f)
@ -194,7 +180,7 @@
#define RFCSR50_EP FIELD8(0xc0) #define RFCSR50_EP FIELD8(0xc0)
/* bits for RT3593 */ /* bits for RT3593 */
#define RFCSR50_TX_LO1_EN FIELD8(0x20) #define RFCSR50_TX_LO1_EN FIELD8(0x20)
@@ -2469,6 +2489,8 @@ enum rt2800_eeprom_word { @@ -2503,6 +2523,8 @@ enum rt2800_eeprom_word {
* INTERNAL_TX_ALC: 0: disable, 1: enable * INTERNAL_TX_ALC: 0: disable, 1: enable
* BT_COEXIST: 0: disable, 1: enable * BT_COEXIST: 0: disable, 1: enable
* DAC_TEST: 0: disable, 1: enable * DAC_TEST: 0: disable, 1: enable
@ -203,7 +189,7 @@
*/ */
#define EEPROM_NIC_CONF1_HW_RADIO FIELD16(0x0001) #define EEPROM_NIC_CONF1_HW_RADIO FIELD16(0x0001)
#define EEPROM_NIC_CONF1_EXTERNAL_TX_ALC FIELD16(0x0002) #define EEPROM_NIC_CONF1_EXTERNAL_TX_ALC FIELD16(0x0002)
@@ -2485,6 +2507,8 @@ enum rt2800_eeprom_word { @@ -2519,6 +2541,8 @@ enum rt2800_eeprom_word {
#define EEPROM_NIC_CONF1_INTERNAL_TX_ALC FIELD16(0x2000) #define EEPROM_NIC_CONF1_INTERNAL_TX_ALC FIELD16(0x2000)
#define EEPROM_NIC_CONF1_BT_COEXIST FIELD16(0x4000) #define EEPROM_NIC_CONF1_BT_COEXIST FIELD16(0x4000)
#define EEPROM_NIC_CONF1_DAC_TEST FIELD16(0x8000) #define EEPROM_NIC_CONF1_DAC_TEST FIELD16(0x8000)

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/rt2x00/rt2800lib.c --- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -7491,6 +7491,27 @@ static const struct rf_channel rf_vals_5 @@ -8176,6 +8176,27 @@ static const struct rf_channel rf_vals_5
{196, 83, 0, 12, 1}, {196, 83, 0, 12, 1},
}; };
@ -28,7 +28,7 @@
static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
{ {
struct hw_mode_spec *spec = &rt2x00dev->spec; struct hw_mode_spec *spec = &rt2x00dev->spec;
@@ -7578,7 +7599,10 @@ static int rt2800_probe_hw_mode(struct r @@ -8263,7 +8284,10 @@ static int rt2800_probe_hw_mode(struct r
case RF5390: case RF5390:
case RF5392: case RF5392:
spec->num_channels = 14; spec->num_channels = 14;
@ -40,7 +40,7 @@
break; break;
case RF3052: case RF3052:
@@ -7754,6 +7778,19 @@ static int rt2800_probe_rt(struct rt2x00 @@ -8446,6 +8470,19 @@ static int rt2800_probe_rt(struct rt2x00
return 0; return 0;
} }
@ -59,8 +59,8 @@
+ +
int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev) int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
{ {
int retval; struct rt2800_drv_data *drv_data = rt2x00dev->drv_data;
@@ -7783,6 +7820,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r @@ -8488,6 +8525,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
rt2800_register_write(rt2x00dev, GPIO_CTRL, reg); rt2800_register_write(rt2x00dev, GPIO_CTRL, reg);
/* /*

View File

@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/wireless/rt2x00/rt2800soc.c --- a/drivers/net/wireless/rt2x00/rt2800soc.c
+++ b/drivers/net/wireless/rt2x00/rt2800soc.c +++ b/drivers/net/wireless/rt2x00/rt2800soc.c
@@ -227,11 +227,18 @@ static int rt2800soc_probe(struct platfo @@ -237,11 +237,18 @@ static int rt2800soc_probe(struct platfo
return rt2x00soc_probe(pdev, &rt2800soc_ops); return rt2x00soc_probe(pdev, &rt2800soc_ops);
} }

View File

@ -8,7 +8,7 @@
#include "rt2x00.h" #include "rt2x00.h"
#include "rt2800lib.h" #include "rt2800lib.h"
@@ -7780,13 +7781,14 @@ static int rt2800_probe_rt(struct rt2x00 @@ -8472,13 +8473,14 @@ static int rt2800_probe_rt(struct rt2x00
int rt2800_probe_clk(struct rt2x00_dev *rt2x00dev) int rt2800_probe_clk(struct rt2x00_dev *rt2x00dev)
{ {

View File

@ -1,16 +1,16 @@
--- a/drivers/net/wireless/rt2x00/rt2800.h --- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h +++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -71,6 +71,7 @@ @@ -73,6 +73,7 @@
#define RF5592 0x000f
#define RF3070 0x3070 #define RF3070 0x3070
#define RF3290 0x3290 #define RF3290 0x3290
#define RF3853 0x3853
+#define RF5350 0x5350 +#define RF5350 0x5350
#define RF5360 0x5360 #define RF5360 0x5360
#define RF5370 0x5370 #define RF5370 0x5370
#define RF5372 0x5372 #define RF5372 0x5372
--- a/drivers/net/wireless/rt2x00/rt2800lib.c --- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2705,6 +2705,13 @@ static void rt2800_config_channel_rf53xx @@ -2994,6 +2994,13 @@ static void rt2800_config_channel_rf53xx
rt2800_rfcsr_write(rt2x00dev, 59, rt2800_rfcsr_write(rt2x00dev, 59,
r59_non_bt[idx]); r59_non_bt[idx]);
@ -24,15 +24,15 @@
} }
} }
} }
@@ -3142,6 +3149,7 @@ static void rt2800_config_channel(struct @@ -3472,6 +3479,7 @@ static void rt2800_config_channel(struct
rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info); rt2800_config_channel_rf3853(rt2x00dev, conf, rf, info);
break; break;
case RF3070: case RF3070:
+ case RF5350: + case RF5350:
case RF5360: case RF5360:
case RF5370: case RF5370:
case RF5372: case RF5372:
@@ -3159,6 +3167,7 @@ static void rt2800_config_channel(struct @@ -3489,6 +3497,7 @@ static void rt2800_config_channel(struct
if (rt2x00_rf(rt2x00dev, RF3070) || if (rt2x00_rf(rt2x00dev, RF3070) ||
rt2x00_rf(rt2x00dev, RF3290) || rt2x00_rf(rt2x00dev, RF3290) ||
rt2x00_rf(rt2x00dev, RF3322) || rt2x00_rf(rt2x00dev, RF3322) ||
@ -40,7 +40,7 @@
rt2x00_rf(rt2x00dev, RF5360) || rt2x00_rf(rt2x00dev, RF5360) ||
rt2x00_rf(rt2x00dev, RF5370) || rt2x00_rf(rt2x00dev, RF5370) ||
rt2x00_rf(rt2x00dev, RF5372) || rt2x00_rf(rt2x00dev, RF5372) ||
@@ -3399,7 +3408,8 @@ static void rt2800_config_channel(struct @@ -3766,7 +3775,8 @@ static void rt2800_config_channel(struct
/* /*
* Clear update flag * Clear update flag
*/ */
@ -50,15 +50,15 @@
rt2800_bbp_read(rt2x00dev, 49, &bbp); rt2800_bbp_read(rt2x00dev, 49, &bbp);
rt2x00_set_field8(&bbp, BBP49_UPDATE_FLAG, 0); rt2x00_set_field8(&bbp, BBP49_UPDATE_FLAG, 0);
rt2800_bbp_write(rt2x00dev, 49, bbp); rt2800_bbp_write(rt2x00dev, 49, bbp);
@@ -4273,6 +4283,7 @@ void rt2800_vco_calibration(struct rt2x0 @@ -4645,6 +4655,7 @@ void rt2800_vco_calibration(struct rt2x0
case RF3053:
case RF3070: case RF3070:
case RF3290: case RF3290:
case RF3853:
+ case RF5350: + case RF5350:
case RF5360: case RF5360:
case RF5370: case RF5370:
case RF5372: case RF5372:
@@ -4669,6 +4680,8 @@ static int rt2800_init_registers(struct @@ -5079,6 +5090,8 @@ static int rt2800_init_registers(struct
rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404); rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606); rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000); rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
@ -67,7 +67,7 @@
} else { } else {
rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000000); rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000000);
rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606); rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
@@ -5310,9 +5323,13 @@ static void rt2800_init_bbp_3352(struct @@ -5734,9 +5747,13 @@ static void rt2800_init_bbp_3352(struct
rt2800_bbp_write(rt2x00dev, 82, 0x62); rt2800_bbp_write(rt2x00dev, 82, 0x62);
@ -84,7 +84,7 @@
rt2800_bbp_write(rt2x00dev, 86, 0x38); rt2800_bbp_write(rt2x00dev, 86, 0x38);
@@ -5326,9 +5343,13 @@ static void rt2800_init_bbp_3352(struct @@ -5750,9 +5767,13 @@ static void rt2800_init_bbp_3352(struct
rt2800_bbp_write(rt2x00dev, 104, 0x92); rt2800_bbp_write(rt2x00dev, 104, 0x92);
@ -101,7 +101,7 @@
rt2800_bbp_write(rt2x00dev, 120, 0x50); rt2800_bbp_write(rt2x00dev, 120, 0x50);
@@ -5353,6 +5374,13 @@ static void rt2800_init_bbp_3352(struct @@ -5777,6 +5798,13 @@ static void rt2800_init_bbp_3352(struct
rt2800_bbp_write(rt2x00dev, 143, 0xa2); rt2800_bbp_write(rt2x00dev, 143, 0xa2);
rt2800_bbp_write(rt2x00dev, 148, 0xc8); rt2800_bbp_write(rt2x00dev, 148, 0xc8);
@ -115,7 +115,7 @@
} }
static void rt2800_init_bbp_3390(struct rt2x00_dev *rt2x00dev) static void rt2800_init_bbp_3390(struct rt2x00_dev *rt2x00dev)
@@ -5653,6 +5681,7 @@ static void rt2800_init_bbp(struct rt2x0 @@ -6118,6 +6146,7 @@ static void rt2800_init_bbp(struct rt2x0
rt2800_init_bbp_3290(rt2x00dev); rt2800_init_bbp_3290(rt2x00dev);
break; break;
case RT3352: case RT3352:
@ -123,8 +123,8 @@
rt2800_init_bbp_3352(rt2x00dev); rt2800_init_bbp_3352(rt2x00dev);
break; break;
case RT3390: case RT3390:
@@ -6463,6 +6492,76 @@ static void rt2800_init_rfcsr_3593(struc @@ -7069,6 +7098,76 @@ static void rt2800_init_rfcsr_3883(struc
/* TODO: enable stream mode support */ rt2800_rfcsr_write(rt2x00dev, 20, rfcsr);
} }
+static void rt2800_init_rfcsr_5350(struct rt2x00_dev *rt2x00dev) +static void rt2800_init_rfcsr_5350(struct rt2x00_dev *rt2x00dev)
@ -200,7 +200,7 @@
static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev) static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
{ {
rt2800_rf_init_calibration(rt2x00dev, 2); rt2800_rf_init_calibration(rt2x00dev, 2);
@@ -6700,6 +6799,9 @@ static void rt2800_init_rfcsr(struct rt2 @@ -7309,6 +7408,9 @@ static void rt2800_init_rfcsr(struct rt2
case RT3593: case RT3593:
rt2800_init_rfcsr_3593(rt2x00dev); rt2800_init_rfcsr_3593(rt2x00dev);
break; break;
@ -210,7 +210,7 @@
case RT5390: case RT5390:
rt2800_init_rfcsr_5390(rt2x00dev); rt2800_init_rfcsr_5390(rt2x00dev);
break; break;
@@ -6949,6 +7051,12 @@ static int rt2800_validate_eeprom(struct @@ -7568,6 +7670,12 @@ static int rt2800_validate_eeprom(struct
rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RF_TYPE, RF2820); rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RF_TYPE, RF2820);
rt2800_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word); rt2800_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word);
rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word); rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word);
@ -223,16 +223,24 @@
} else if (rt2x00_rt(rt2x00dev, RT2860) || } else if (rt2x00_rt(rt2x00dev, RT2860) ||
rt2x00_rt(rt2x00dev, RT2872)) { rt2x00_rt(rt2x00dev, RT2872)) {
/* /*
@@ -7082,6 +7190,8 @@ static int rt2800_init_eeprom(struct rt2 @@ -7706,6 +7814,8 @@ static int rt2800_init_eeprom(struct rt2
rt2x00_rt(rt2x00dev, RT5390) ||
rt2x00_rt(rt2x00dev, RT5392))
rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf); rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
else if (rt2x00_rt(rt2x00dev, RT3883))
rf = RF3853;
+ else if (rt2x00_rt(rt2x00dev, RT5350)) + else if (rt2x00_rt(rt2x00dev, RT5350))
+ rf = RF5350; + rf = RF5350;
else else
rf = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE); rf = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE);
@@ -7100,6 +7210,7 @@ static int rt2800_init_eeprom(struct rt2 @@ -7725,6 +7835,7 @@ static int rt2800_init_eeprom(struct rt2
case RF3320:
case RF3322:
case RF3853:
+ case RF5350:
case RF5360:
case RF5370:
case RF5372:
@@ -8279,6 +8390,7 @@ static int rt2800_probe_hw_mode(struct r
case RF3290: case RF3290:
case RF3320: case RF3320:
case RF3322: case RF3322:
@ -240,26 +248,18 @@
case RF5360: case RF5360:
case RF5370: case RF5370:
case RF5372: case RF5372:
@@ -7594,6 +7705,7 @@ static int rt2800_probe_hw_mode(struct r @@ -8417,6 +8529,7 @@ static int rt2800_probe_hw_mode(struct r
case RF3290:
case RF3320:
case RF3322:
+ case RF5350:
case RF5360:
case RF5370:
case RF5372:
@@ -7726,6 +7838,7 @@ static int rt2800_probe_hw_mode(struct r
case RF3053:
case RF3070: case RF3070:
case RF3290: case RF3290:
case RF3853:
+ case RF5350: + case RF5350:
case RF5360: case RF5360:
case RF5370: case RF5370:
case RF5372: case RF5372:
@@ -7764,6 +7877,7 @@ static int rt2800_probe_rt(struct rt2x00 @@ -8456,6 +8569,7 @@ static int rt2800_probe_rt(struct rt2x00
case RT3390:
case RT3572: case RT3572:
case RT3593: case RT3593:
case RT3883:
+ case RT5350: + case RT5350:
case RT5390: case RT5390:
case RT5392: case RT5392:

View File

@ -8,7 +8,7 @@
#include "rt2x00.h" #include "rt2x00.h"
#include "rt2800lib.h" #include "rt2800lib.h"
@@ -7299,6 +7300,17 @@ static int rt2800_init_eeprom(struct rt2 @@ -7924,6 +7925,17 @@ static int rt2800_init_eeprom(struct rt2
rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC); rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC);
rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY); rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY);

View File

@ -1,15 +1,11 @@
--- a/drivers/net/wireless/rt2x00/rt2800lib.c --- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -7187,10 +7187,11 @@ static int rt2800_init_eeprom(struct rt2 @@ -7813,6 +7813,8 @@ static int rt2800_init_eeprom(struct rt2
* RT53xx: defined in "EEPROM_CHIP_ID" field
*/
if (rt2x00_rt(rt2x00dev, RT3290) ||
- rt2x00_rt(rt2x00dev, RT3352) ||
rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5390) ||
rt2x00_rt(rt2x00dev, RT5392)) rt2x00_rt(rt2x00dev, RT5392))
rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf); rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
+ else if (rt2x00_rt(rt2x00dev, RT3352)) + else if (rt2x00_rt(rt2x00dev, RT3352))
+ rf = RF3322; + rf = RF3322;
else if (rt2x00_rt(rt2x00dev, RT3883))
rf = RF3853;
else if (rt2x00_rt(rt2x00dev, RT5350)) else if (rt2x00_rt(rt2x00dev, RT5350))
rf = RF5350;
else