aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/300-pending_work.patch
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/mac80211/patches/300-pending_work.patch
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/mac80211/patches/300-pending_work.patch')
-rw-r--r--package/mac80211/patches/300-pending_work.patch28
1 files changed, 28 insertions, 0 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);