1. 19 Jul, 2011 12 commits
  2. 18 Jul, 2011 9 commits
  3. 17 Jul, 2011 7 commits
  4. 16 Jul, 2011 5 commits
  5. 15 Jul, 2011 6 commits
  6. 14 Jul, 2011 1 commit
    • Geoff Levand's avatar
      net/ps3: Fix gelic RX DMA restart · ecae42d3
      Geoff Levand authored
      Fix the condition where PS3 network RX hangs when no network
      TX is occurring by calling gelic_card_enable_rxdmac() during
      RX_DMA_CHAIN_END event processing.
      
      The gelic hardware automatically clears its RX_DMA_EN flag when
      it detects an RX_DMA_CHAIN_END event.  In its processing of
      RX_DMA_CHAIN_END the gelic driver is required to set RX_DMA_EN
      (with a call to gelic_card_enable_rxdmac()) to restart RX DMA
      transfers.  The existing gelic driver code does not set
      RX_DMA_EN directly in its processing of the RX_DMA_CHAIN_END
      event, but uses a flag variable card->rx_dma_restart_required
      to schedule the setting of RX_DMA_EN until next inside the
      interrupt handler.
      
      It seems this delayed setting of RX_DMA_EN causes the hang since
      the next RX interrupt after the RX_DMA_CHAIN_END event where
      RX_DMA_EN is scheduled to be set will not occur since RX_DMA_EN
      was not set.  In the case were network TX is occuring, RX_DMA_EN
      is set in the next TX interrupt and RX processing continues.
      Signed-off-by: default avatarGeoff Levand <geoff@infradead.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ecae42d3