diff options
Diffstat (limited to 'package')
| -rw-r--r-- | package/mac80211/Makefile | 2 | ||||
| -rw-r--r-- | package/mac80211/patches/602-rt2x00-remove-mcu-requests-for-soc.patch | 59 | 
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, ®); +  +@@ -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, | 
