X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=package%2Fkernel%2Fmac80211%2Fpatches%2F910-01-add-support-for-mt7620.patch;h=3d7c352281801701b2196095207befa5a7966917;hb=82c5e2c497c69dca32a59090cddf5f298aa94e01;hp=c736b5759a7b3661f372dd4281d6b3d76089ee6c;hpb=b5fe5d5ba3f8a919511222f22a971c50fdb40599;p=librecmc%2Flibrecmc.git diff --git a/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch b/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch index c736b5759a..3d7c352281 100644 --- a/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch +++ b/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch @@ -1,6 +1,6 @@ ---- a/drivers/net/wireless/rt2x00/rt2800.h 2014-06-30 01:05:26.000000000 +0300 -+++ b/drivers/net/wireless/rt2x00/rt2800.h 2014-06-30 01:23:42.000000000 +0300 -@@ -79,6 +79,7 @@ +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h +@@ -81,6 +81,7 @@ #define RF5372 0x5372 #define RF5390 0x5390 #define RF5392 0x5392 @@ -8,7 +8,7 @@ /* * Chipset revisions. -@@ -654,6 +655,14 @@ +@@ -656,6 +657,14 @@ #define RF_CSR_CFG_BUSY FIELD32(0x00020000) /* @@ -23,7 +23,7 @@ * EFUSE_CSR: RT30x0 EEPROM */ #define EFUSE_CTRL 0x0580 -@@ -1037,6 +1046,11 @@ +@@ -1039,6 +1048,11 @@ #define AUTOWAKEUP_CFG_AUTOWAKE FIELD32(0x00008000) /* @@ -35,7 +35,7 @@ * EDCA_AC0_CFG: */ #define EDCA_AC0_CFG 0x1300 -@@ -1216,6 +1230,8 @@ +@@ -1218,6 +1232,8 @@ #define TX_PIN_CFG_RFTR_POL FIELD32(0x00020000) #define TX_PIN_CFG_TRSW_EN FIELD32(0x00040000) #define TX_PIN_CFG_TRSW_POL FIELD32(0x00080000) @@ -44,7 +44,7 @@ #define TX_PIN_CFG_PA_PE_A2_EN FIELD32(0x01000000) #define TX_PIN_CFG_PA_PE_G2_EN FIELD32(0x02000000) #define TX_PIN_CFG_PA_PE_A2_POL FIELD32(0x04000000) -@@ -1562,6 +1578,17 @@ +@@ -1564,6 +1580,17 @@ #define TX_PWR_CFG_4_EXT_STBC4_CH2 FIELD32(0x0000000f) #define TX_PWR_CFG_4_EXT_STBC6_CH2 FIELD32(0x00000f00) @@ -62,8 +62,8 @@ /* TX_PWR_CFG_7 */ #define TX_PWR_CFG_7 0x13d4 #define TX_PWR_CFG_7_OFDM54_CH0 FIELD32(0x0000000f) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c 2014-06-30 01:05:26.000000000 +0300 -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c 2014-06-30 17:31:35.000000000 +0300 +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -61,6 +61,8 @@ rt2800_regbusy_read((__dev), BBP_CSR_CFG, BBP_CSR_CFG_BUSY, (__reg)) #define WAIT_FOR_RFCSR(__dev, __reg) \ @@ -193,7 +193,7 @@ static void rt2800_rf_write(struct rt2x00_dev *rt2x00dev, const unsigned int word, const u32 value) { -@@ -566,6 +629,13 @@ void rt2800_get_txwi_rxwi_size(struct rt +@@ -566,6 +629,16 @@ void rt2800_get_txwi_rxwi_size(struct rt *rxwi_size = RXWI_DESC_SIZE_5WORDS; break; @@ -201,13 +201,16 @@ + if ( rt2x00dev->chip.rf == RF7620 ) { + *txwi_size = TXWI_DESC_SIZE_5WORDS; + *rxwi_size = RXWI_DESC_SIZE_6WORDS; ++ } else { ++ *txwi_size = TXWI_DESC_SIZE_4WORDS; ++ *rxwi_size = RXWI_DESC_SIZE_4WORDS; + } + break; + case RT5592: *txwi_size = TXWI_DESC_SIZE_5WORDS; *rxwi_size = RXWI_DESC_SIZE_6WORDS; -@@ -3326,6 +3396,312 @@ static void rt2800_config_channel_rf55xx +@@ -3303,6 +3376,312 @@ static void rt2800_config_channel_rf55xx rt2800_bbp_write(rt2x00dev, 196, (rf->channel <= 14) ? 0x19 : 0x7F); } @@ -255,6 +258,7 @@ + u32 mac_sys_ctrl, mac_status; + u32 tx_pin = 0x00150F0F; + struct hw_mode_spec *spec = &rt2x00dev->spec; ++ struct rt2800_drv_data *drv_data = rt2x00dev->drv_data; + + /* Frequeny plan setting */ + /* @@ -380,7 +384,6 @@ + rfcsr &= (~0x4); + rt2800_rfcsr_write(rt2x00dev, 28, rfcsr); + -+ struct rt2800_drv_data *drv_data = rt2x00dev->drv_data; + /*if (bScan == FALSE)*/ + if (conf_is_ht40(conf)) { + txrx_agc_fc = rt2x00_get_field8(drv_data->calibration_bw40, @@ -520,7 +523,7 @@ static void rt2800_bbp_write_with_rx_chain(struct rt2x00_dev *rt2x00dev, const unsigned int word, const u8 value) -@@ -3482,7 +3858,7 @@ static void rt2800_config_channel(struct +@@ -3459,7 +3838,7 @@ static void rt2800_config_channel(struct struct channel_info *info) { u32 reg; @@ -529,7 +532,7 @@ u8 bbp, rfcsr; info->default_power1 = rt2800_txpower_to_dev(rt2x00dev, rf->channel, -@@ -3535,6 +3911,9 @@ static void rt2800_config_channel(struct +@@ -3513,6 +3892,9 @@ static void rt2800_config_channel(struct case RF5592: rt2800_config_channel_rf55xx(rt2x00dev, conf, rf, info); break; @@ -539,7 +542,7 @@ default: rt2800_config_channel_rf2xxx(rt2x00dev, conf, rf, info); } -@@ -3631,7 +4010,7 @@ static void rt2800_config_channel(struct +@@ -3615,7 +3997,7 @@ static void rt2800_config_channel(struct else if (rt2x00_rt(rt2x00dev, RT3593) || rt2x00_rt(rt2x00dev, RT3883)) rt2800_bbp_write(rt2x00dev, 82, 0x82); @@ -548,7 +551,7 @@ rt2800_bbp_write(rt2x00dev, 82, 0xf2); if (rt2x00_rt(rt2x00dev, RT3593) || -@@ -3653,7 +4032,7 @@ static void rt2800_config_channel(struct +@@ -3637,7 +4019,7 @@ static void rt2800_config_channel(struct if (rt2x00_rt(rt2x00dev, RT3572)) rt2800_rfcsr_write(rt2x00dev, 8, 0); @@ -557,7 +560,7 @@ switch (rt2x00dev->default_ant.tx_chain_num) { case 3: -@@ -3702,6 +4081,7 @@ static void rt2800_config_channel(struct +@@ -3686,6 +4068,7 @@ static void rt2800_config_channel(struct rt2x00_set_field32(&tx_pin, TX_PIN_CFG_RFTR_EN, 1); rt2x00_set_field32(&tx_pin, TX_PIN_CFG_TRSW_EN, 1); @@ -565,7 +568,7 @@ rt2800_register_write(rt2x00dev, TX_PIN_CFG, tx_pin); -@@ -4710,6 +5090,14 @@ void rt2800_vco_calibration(struct rt2x0 +@@ -4702,6 +5085,14 @@ void rt2800_vco_calibration(struct rt2x0 rt2x00_set_field8(&rfcsr, RFCSR3_VCOCAL_EN, 1); rt2800_rfcsr_write(rt2x00dev, 3, rfcsr); break; @@ -580,7 +583,7 @@ default: return; } -@@ -5110,9 +5498,42 @@ static int rt2800_init_registers(struct +@@ -5102,9 +5493,42 @@ static int rt2800_init_registers(struct } else if (rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5392) || rt2x00_rt(rt2x00dev, RT5592)) { @@ -626,7 +629,7 @@ } else if (rt2x00_rt(rt2x00dev, RT5350)) { rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404); } else { -@@ -6144,6 +6565,225 @@ static void rt2800_init_bbp_5592(struct +@@ -6136,6 +6560,225 @@ static void rt2800_init_bbp_5592(struct rt2800_bbp_write(rt2x00dev, 103, 0xc0); } @@ -852,7 +855,7 @@ static void rt2800_init_bbp(struct rt2x00_dev *rt2x00dev) { unsigned int i; -@@ -6186,7 +6826,10 @@ static void rt2800_init_bbp(struct rt2x0 +@@ -6178,7 +6821,10 @@ static void rt2800_init_bbp(struct rt2x0 return; case RT5390: case RT5392: @@ -864,7 +867,7 @@ break; case RT5592: rt2800_init_bbp_5592(rt2x00dev); -@@ -7400,6 +8043,295 @@ static void rt2800_init_rfcsr_5592(struc +@@ -7392,6 +8038,296 @@ static void rt2800_init_rfcsr_5592(struc rt2800_led_open_drain_enable(rt2x00dev); } @@ -872,6 +875,8 @@ +{ + u16 freq; + u8 rfvalue; ++ struct hw_mode_spec *spec = &rt2x00dev->spec; ++ + /* Initialize RF central register to default value */ + rt2800_rfcsr_write(rt2x00dev, 0, 0x02); + rt2800_rfcsr_write(rt2x00dev, 1, 0x03); @@ -918,7 +923,6 @@ + rt2800_rfcsr_write(rt2x00dev, 42, 0x5B); + rt2800_rfcsr_write(rt2x00dev, 43, 0x00); + -+ struct hw_mode_spec *spec = &rt2x00dev->spec; + rt2800_rfcsr_write(rt2x00dev, 11, 0x21); + if (spec->clk_is_20mhz) + rt2800_rfcsr_write(rt2x00dev, 13, 0x03); @@ -1160,7 +1164,7 @@ static void rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev) { if (rt2800_is_305x_soc(rt2x00dev)) { -@@ -7435,7 +8367,10 @@ static void rt2800_init_rfcsr(struct rt2 +@@ -7427,7 +8363,10 @@ static void rt2800_init_rfcsr(struct rt2 rt2800_init_rfcsr_5350(rt2x00dev); break; case RT5390: @@ -1172,7 +1176,7 @@ break; case RT5392: rt2800_init_rfcsr_5392(rt2x00dev); -@@ -7866,6 +8801,7 @@ static int rt2800_init_eeprom(struct rt2 +@@ -7859,6 +8798,7 @@ static int rt2800_init_eeprom(struct rt2 case RF5390: case RF5392: case RF5592: @@ -1180,7 +1184,7 @@ break; default: rt2x00_err(rt2x00dev, "Invalid RF chipset 0x%04x detected\n", -@@ -8431,6 +9367,7 @@ static int rt2800_probe_hw_mode(struct r +@@ -8423,6 +9363,7 @@ static int rt2800_probe_hw_mode(struct r case RF5372: case RF5390: case RF5392: @@ -1188,7 +1192,7 @@ spec->num_channels = 14; if (spec->clk_is_20mhz) spec->channels = rf_vals_xtal20mhz_3x; -@@ -8570,6 +9507,7 @@ static int rt2800_probe_hw_mode(struct r +@@ -8563,6 +9504,7 @@ static int rt2800_probe_hw_mode(struct r case RF5372: case RF5390: case RF5392: