mac80211: remove MCU requests for SoC platforms in the rt2x00 driver
authorGabor Juhos <juhosg@openwrt.org>
Thu, 1 Apr 2010 15:39:23 +0000 (15:39 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Thu, 1 Apr 2010 15:39:23 +0000 (15:39 +0000)
The ralink SoC platforms do not have an MCU.

Signed-off-by: Luis Correia <luis.f.correia@gmail.com>
SVN-Revision: 20650

package/mac80211/Makefile
package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch [new file with mode: 0644]

index d7fde6b25bcb8003734f802b55188a8dc1c03a73..d93c982f6434ec67a1f62b4c955f4d6daba3b3c6 100644 (file)
@@ -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 (file)
index 0000000..9cecf3a
--- /dev/null
@@ -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,