X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Fmac80211%2Fpatches%2F601-rt2x00-fix-hang-on-ifdown.patch;h=cb49a8014dac17d9438dc95de05250411b6bcc5d;hb=d250cd4ca7be09c3ad97550716905cb8d7a35c43;hp=5b1ae415ad3492bcc6d89e08b5a8b23524394c46;hpb=b50614e1f726d6c1901bae7678a7e3bf5691cc8b;p=openwrt-10.03%2F.git diff --git a/package/mac80211/patches/601-rt2x00-fix-hang-on-ifdown.patch b/package/mac80211/patches/601-rt2x00-fix-hang-on-ifdown.patch index 5b1ae415a..cb49a8014 100644 --- a/package/mac80211/patches/601-rt2x00-fix-hang-on-ifdown.patch +++ b/package/mac80211/patches/601-rt2x00-fix-hang-on-ifdown.patch @@ -4,7 +4,7 @@ Date: Mon, 21 Jun 2010 10:03:05 +0200 Subject: [PATCH] rt2x00: fix rt2800pci hang on ifdown rt2800pci hangs the system on rt305x SoC devices on ifdown. Work around -this issue by disabling TX DMA prior to restting the TX queue indices. +this issue by disabling TX DMA prior to resetting the TX queue indices. This patch is not suitable for upstream inclusion but is just meant as a workaround until a proper solution is implemented. @@ -16,14 +16,14 @@ Signed-off-by: Helmut Schaa --- a/drivers/net/wireless/rt2x00/rt2800pci.c +++ b/drivers/net/wireless/rt2x00/rt2800pci.c -@@ -749,6 +749,10 @@ static void rt2800pci_kill_tx_queue(stru - rt2800_register_write(rt2x00dev, BCN_TIME_CFG, 0); - return; - } -+ +@@ -481,6 +481,10 @@ static void rt2800pci_disable_radio(stru + + rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00001280); + + rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, ®); + rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0); + rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg); - ++ rt2800_register_read(rt2x00dev, WPDMA_RST_IDX, ®); - rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX0, (qid == QID_AC_BE)); + rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX0, 1); + rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX1, 1);