X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/9f4c2864868bd4d37d6bb2811584de15cea98e02..14c41ae66aef0eec331f1f2483ccbcee1b0f42b3:/package/mac80211/patches/601-rt2x00-fix-hang-on-ifdown.patch 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);