From: nbd Date: Tue, 10 Sep 2013 10:11:28 +0000 (+0000) Subject: rt2x00: merge an rt2800 initialization order fix X-Git-Url: http://git.archive.openwrt.org/?a=commitdiff_plain;h=85781a99a67418d5872a7ae76d517557ec605445;p=12.09%2Fopenwrt.git rt2x00: merge an rt2800 initialization order fix Signed-off-by: Felix Fietkau Backport of r37922 git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@37923 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch index 2fa1e1b..1871a8d 100644 --- a/package/mac80211/patches/300-pending_work.patch +++ b/package/mac80211/patches/300-pending_work.patch @@ -1036,3 +1036,31 @@ cfg80211_stop_ap(rdev, dev); break; default: +--- a/drivers/net/wireless/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/rt2x00/rt2800lib.c +@@ -5404,19 +5404,20 @@ int rt2800_enable_radio(struct rt2x00_de + rt2800_init_registers(rt2x00dev))) + return -EIO; + ++ if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev))) ++ return -EIO; ++ + /* + * Send signal to firmware during boot time. + */ + rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); + rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); +- if (rt2x00_is_usb(rt2x00dev)) { ++ if (rt2x00_is_usb(rt2x00dev)) + rt2800_register_write(rt2x00dev, H2M_INT_SRC, 0); +- rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0); +- } ++ rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0); + msleep(1); + +- if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev) || +- rt2800_wait_bbp_ready(rt2x00dev))) ++ if (unlikely(rt2800_wait_bbp_ready(rt2x00dev))) + return -EIO; + + rt2800_init_bbp(rt2x00dev); diff --git a/package/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch b/package/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch index 15083d4..8369a78 100644 --- a/package/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch +++ b/package/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch @@ -99,7 +99,7 @@ rt2800_rfcsr_write(rt2x00dev, 59, 0x00); rt2800_rfcsr_write(rt2x00dev, 60, 0x00); rt2800_rfcsr_write(rt2x00dev, 61, 0x00); -@@ -5715,6 +5744,7 @@ static int rt2800_init_eeprom(struct rt2 +@@ -5716,6 +5745,7 @@ static int rt2800_init_eeprom(struct rt2 * RT53xx: defined in "EEPROM_CHIP_ID" field */ if (rt2x00_rt(rt2x00dev, RT3290) || @@ -107,7 +107,7 @@ rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5392)) rt2x00_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf); -@@ -5804,7 +5834,8 @@ static int rt2800_init_eeprom(struct rt2 +@@ -5805,7 +5835,8 @@ static int rt2800_init_eeprom(struct rt2 /* * Detect if this device has Bluetooth co-existence. */ @@ -117,7 +117,7 @@ __set_bit(CAPABILITY_BT_COEXIST, &rt2x00dev->cap_flags); /* -@@ -5833,6 +5864,22 @@ static int rt2800_init_eeprom(struct rt2 +@@ -5834,6 +5865,22 @@ static int rt2800_init_eeprom(struct rt2 EIRP_MAX_TX_POWER_LIMIT) __set_bit(CAPABILITY_POWER_LIMIT, &rt2x00dev->cap_flags); diff --git a/package/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch b/package/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch index cd9a5f3..e16d970 100644 --- a/package/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch +++ b/package/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c -@@ -6156,6 +6156,27 @@ static const struct rf_channel rf_vals_5 +@@ -6157,6 +6157,27 @@ static const struct rf_channel rf_vals_5 {196, 83, 0, 12, 1}, }; @@ -28,7 +28,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) { struct hw_mode_spec *spec = &rt2x00dev->spec; -@@ -6234,7 +6255,6 @@ static int rt2800_probe_hw_mode(struct r +@@ -6235,7 +6256,6 @@ static int rt2800_probe_hw_mode(struct r rt2x00_rf(rt2x00dev, RF3022) || rt2x00_rf(rt2x00dev, RF3290) || rt2x00_rf(rt2x00dev, RF3320) || @@ -36,7 +36,7 @@ rt2x00_rf(rt2x00dev, RF5360) || rt2x00_rf(rt2x00dev, RF5370) || rt2x00_rf(rt2x00dev, RF5372) || -@@ -6242,6 +6262,12 @@ static int rt2800_probe_hw_mode(struct r +@@ -6243,6 +6263,12 @@ static int rt2800_probe_hw_mode(struct r rt2x00_rf(rt2x00dev, RF5392)) { spec->num_channels = 14; spec->channels = rf_vals_3x; @@ -49,7 +49,7 @@ } else if (rt2x00_rf(rt2x00dev, RF3052)) { spec->supported_bands |= SUPPORT_BAND_5GHZ; spec->num_channels = ARRAY_SIZE(rf_vals_3x); -@@ -6389,6 +6415,19 @@ static int rt2800_probe_rt(struct rt2x00 +@@ -6390,6 +6416,19 @@ static int rt2800_probe_rt(struct rt2x00 return 0; } @@ -69,7 +69,7 @@ int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev) { int retval; -@@ -6418,6 +6457,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r +@@ -6419,6 +6458,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r rt2800_register_write(rt2x00dev, GPIO_CTRL, reg); /* diff --git a/package/mac80211/patches/616-rt2x00-support-rt5350.patch b/package/mac80211/patches/616-rt2x00-support-rt5350.patch index 5e308ba..9dc5835 100644 --- a/package/mac80211/patches/616-rt2x00-support-rt5350.patch +++ b/package/mac80211/patches/616-rt2x00-support-rt5350.patch @@ -213,7 +213,7 @@ case RT5390: rt2800_init_rfcsr_5390(rt2x00dev); break; -@@ -5620,6 +5723,12 @@ static int rt2800_validate_eeprom(struct +@@ -5621,6 +5724,12 @@ static int rt2800_validate_eeprom(struct rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RF_TYPE, RF2820); rt2x00_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word); rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word); @@ -226,7 +226,7 @@ } else if (rt2x00_rt(rt2x00dev, RT2860) || rt2x00_rt(rt2x00dev, RT2872)) { /* -@@ -5748,6 +5857,8 @@ static int rt2800_init_eeprom(struct rt2 +@@ -5749,6 +5858,8 @@ static int rt2800_init_eeprom(struct rt2 rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5392)) rt2x00_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf); @@ -235,7 +235,7 @@ else rf = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE); -@@ -5764,6 +5875,7 @@ static int rt2800_init_eeprom(struct rt2 +@@ -5765,6 +5876,7 @@ static int rt2800_init_eeprom(struct rt2 case RF3290: case RF3320: case RF3322: @@ -243,7 +243,7 @@ case RF5360: case RF5370: case RF5372: -@@ -6262,7 +6374,8 @@ static int rt2800_probe_hw_mode(struct r +@@ -6263,7 +6375,8 @@ static int rt2800_probe_hw_mode(struct r rt2x00_rf(rt2x00dev, RF5392)) { spec->num_channels = 14; spec->channels = rf_vals_3x; @@ -253,7 +253,7 @@ spec->num_channels = 14; if (spec->clk_is_20mhz) spec->channels = rf_vals_xtal20mhz_3x; -@@ -6363,6 +6476,7 @@ static int rt2800_probe_hw_mode(struct r +@@ -6364,6 +6477,7 @@ static int rt2800_probe_hw_mode(struct r case RF3320: case RF3052: case RF3290: @@ -261,7 +261,7 @@ case RF5360: case RF5370: case RF5372: -@@ -6400,6 +6514,7 @@ static int rt2800_probe_rt(struct rt2x00 +@@ -6401,6 +6515,7 @@ static int rt2800_probe_rt(struct rt2x00 case RT3352: case RT3390: case RT3572: