aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-09-10 10:11:28 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-09-10 10:11:28 +0000
commit724875ae4838ad14313e47d83922440396204c46 (patch)
tree7a6ce038257f274f05846d8c988e9f67412d3593 /package
parente14f5039d63499aa390a06f01217085d415b0d2b (diff)
downloadupstream-724875ae4838ad14313e47d83922440396204c46.tar.gz
upstream-724875ae4838ad14313e47d83922440396204c46.tar.bz2
upstream-724875ae4838ad14313e47d83922440396204c46.zip
rt2x00: merge an rt2800 initialization order fix
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r37922 git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@37923 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/mac80211/patches/300-pending_work.patch28
-rw-r--r--package/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch6
-rw-r--r--package/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch10
-rw-r--r--package/mac80211/patches/616-rt2x00-support-rt5350.patch12
4 files changed, 42 insertions, 14 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index 2fa1e1b004..1871a8d8ef 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 15083d4847..8369a78ad9 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 cd9a5f3ec3..e16d97026a 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 5e308baef2..9dc5835605 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: