diff options
Diffstat (limited to 'package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch')
-rw-r--r-- | package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch b/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch index 83fbcd0fcc..3d32ecc434 100644 --- a/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch +++ b/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch @@ -1,14 +1,15 @@ --- a/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 */ -+ 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)) { ++ 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, 66, 0x26 + rt2x00dev->lna_gain); rt2800_bbp_write(rt2x00dev, 27, 0x20); @@ -18,22 +19,7 @@ } else if (rt2x00_rt(rt2x00dev, RT3593)) { if (rf->channel > 14) { /* Disable CCK Packet detection on 5GHz */ -@@ -3194,14 +3200,8 @@ static void rt2800_config_channel(struct - 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 +@@ -6586,6 +6593,12 @@ static void rt2800_init_rfcsr_3290(struc static void rt2800_init_rfcsr_3352(struct rt2x00_dev *rt2x00dev) { @@ -46,7 +32,7 @@ rt2800_rf_init_calibration(rt2x00dev, 30); 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, 32, 0x80); rt2800_rfcsr_write(rt2x00dev, 33, 0x00); @@ -80,7 +66,7 @@ rt2800_rfcsr_write(rt2x00dev, 43, 0xdb); rt2800_rfcsr_write(rt2x00dev, 44, 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, 48, 0x14); rt2800_rfcsr_write(rt2x00dev, 49, 0x00); @@ -110,7 +96,7 @@ rt2800_rfcsr_write(rt2x00dev, 59, 0x00); rt2800_rfcsr_write(rt2x00dev, 60, 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 */ if (rt2x00_rt(rt2x00dev, RT3290) || @@ -118,7 +104,7 @@ rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5392)) 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. */ @@ -128,7 +114,7 @@ __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) __set_bit(CAPABILITY_POWER_LIMIT, &rt2x00dev->cap_flags); @@ -153,7 +139,7 @@ --- a/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) /* @@ -166,7 +152,7 @@ * RFCSR 38: */ #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) /* @@ -185,7 +171,7 @@ * RFCSR 49: */ #define RFCSR49_TX FIELD8(0x3f) -@@ -2322,6 +2340,8 @@ struct mac_iveiv_entry { +@@ -2356,6 +2374,8 @@ struct mac_iveiv_entry { * RFCSR 50: */ #define RFCSR50_TX FIELD8(0x3f) @@ -194,7 +180,7 @@ #define RFCSR50_EP FIELD8(0xc0) /* bits for RT3593 */ #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 * BT_COEXIST: 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_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_BT_COEXIST FIELD16(0x4000) #define EEPROM_NIC_CONF1_DAC_TEST FIELD16(0x8000) |