source: branches/backfire/package/mac80211/patches/601-rt2x00-fix-hang-on-ifdown.patch @ 23107

Last change on this file since 23107 was 23107, checked in by nbd, 6 years ago

mac80211: merge version 2010-09-14 from trunk

File size: 1.2 KB
  • drivers/net/wireless/rt2x00/rt2800pci.c

    From 27ed5ec6924c17b76d65b697a162bafee7bd8e4e Mon Sep 17 00:00:00 2001
    From: Helmut Schaa <helmut.schaa@googlemail.com>
    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 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.
    
    Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
    ---
     drivers/net/wireless/rt2x00/rt2800pci.c |    4 ++++
     1 files changed, 4 insertions(+), 0 deletions(-)
    
    a b static void rt2800pci_kill_tx_queue(stru 
    585585                return; 
    586586        } 
    587587 
     588        rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg); 
     589        rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0); 
     590        rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg); 
     591 
    588592        rt2800_register_read(rt2x00dev, WPDMA_RST_IDX, &reg); 
    589593        rt2x00_set_field32(&reg, WPDMA_RST_IDX_DTX_IDX0, (queue->qid == QID_AC_BE)); 
    590594        rt2x00_set_field32(&reg, WPDMA_RST_IDX_DTX_IDX1, (queue->qid == QID_AC_BK)); 
Note: See TracBrowser for help on using the repository browser.