summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/mac80211/Makefile2
-rw-r--r--package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch59
2 files changed, 60 insertions, 1 deletions
diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile
index d7fde6b25..d93c982f6 100644
--- a/package/mac80211/Makefile
+++ b/package/mac80211/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211
PKG_VERSION:=2010-03-24
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
# http://wireless.kernel.org/download/compat-wireless-2.6
diff --git a/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch b/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch
new file mode 100644
index 000000000..9cecf3a03
--- /dev/null
+++ b/package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch
@@ -0,0 +1,59 @@
+The ralink SoC platforms do not have an MCU.
+
+Signed-off-by: Luis Correia <luis.f.correia@gmail.com>
+---
+
+--- a/drivers/net/wireless/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/rt2x00/rt2800lib.c
+@@ -221,9 +221,9 @@ void rt2800_mcu_request(struct rt2x00_de
+ u32 reg;
+
+ /*
+- * SOC devices don't support MCU requests.
++ * some devices don't support MCU requests.
+ */
+- if (rt2x00_is_soc(rt2x00dev))
++ if (!test_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags))
+ return;
+
+ mutex_lock(&rt2x00dev->csr_mutex);
+--- a/drivers/net/wireless/rt2x00/rt2800pci.c
++++ b/drivers/net/wireless/rt2x00/rt2800pci.c
+@@ -60,6 +60,12 @@ static void rt2800pci_mcu_status(struct
+ unsigned int i;
+ u32 reg;
+
++ /*
++ * some devices don't support MCU requests.
++ */
++ if (!test_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags))
++ return;
++
+ for (i = 0; i < 200; i++) {
+ rt2800_register_read(rt2x00dev, H2M_MAILBOX_CID, &reg);
+
+@@ -1098,10 +1104,12 @@ static int rt2800pci_probe_hw(struct rt2
+ __set_bit(DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, &rt2x00dev->flags);
+
+ /*
+- * This device requires firmware.
++ * This device requires firmware and MCU access.
+ */
+- if (!rt2x00_is_soc(rt2x00dev))
++ if (!rt2x00_is_soc(rt2x00dev)){
+ __set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags);
++ __set_bit(DRIVER_REQUIRE_MCU, &rt2x00dev->flags);
++ }
+ __set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags);
+ __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags);
+ if (!modparam_nohwcrypt)
+--- a/drivers/net/wireless/rt2x00/rt2x00.h
++++ b/drivers/net/wireless/rt2x00/rt2x00.h
+@@ -631,6 +631,7 @@ enum rt2x00_flags {
+ * Driver requirements
+ */
+ DRIVER_REQUIRE_FIRMWARE,
++ DRIVER_REQUIRE_MCU,
+ DRIVER_REQUIRE_BEACON_GUARD,
+ DRIVER_REQUIRE_ATIM_QUEUE,
+ DRIVER_REQUIRE_DMA,