X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=package%2Fmac80211%2Fpatches%2F601-rt2x00-fix-hang-on-ifdown.patch;h=3bee27105f0ed66a3a5e4325658efb609035ad31;hb=fc8259b34d7abf7102eb2f854edb8839edbcf2bb;hp=5b1ae415ad3492bcc6d89e08b5a8b23524394c46;hpb=9f4c2864868bd4d37d6bb2811584de15cea98e02;p=openwrt.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 5b1ae415ad..3bee27105f 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); +@@ -593,6 +593,10 @@ static void rt2800pci_kill_tx_queue(stru return; } -+ + + 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, (queue->qid == QID_AC_BE)); + rt2x00_set_field32(®, WPDMA_RST_IDX_DTX_IDX1, (queue->qid == QID_AC_BK));