davinci_cpdma: Fix channel number written to teardown registers
authorChristian Riesch <christian.riesch@omicron.at>
Wed, 22 Feb 2012 21:58:00 +0000 (21:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 24 Feb 2012 08:23:37 +0000 (03:23 -0500)
chan->chan_num is 0..CPDMA_MAX_CHANNELS-1 for tx channels and
CPDMA_MAX_CHANNELS..2*CPDMA_MAX_CHANNELS-1 for rx channels. However,
the rx and tx teardown registers expect zero based channel numbering.

Since the upper bits of the registers are reserved, the teardown also
worked before, this patch is cleanup only.

Signed-off-by: Christian Riesch <christian.riesch@omicron.at>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/davinci_cpdma.c

index c97d2f59085504274eddcc2d5a25ecf352c824f0..34558766cbf0a3fb06bdc9b8192cff8bb6185ae3 100644 (file)
@@ -822,7 +822,7 @@ int cpdma_chan_stop(struct cpdma_chan *chan)
        dma_reg_write(ctlr, chan->int_clear, chan->mask);
 
        /* trigger teardown */
-       dma_reg_write(ctlr, chan->td, chan->chan_num);
+       dma_reg_write(ctlr, chan->td, chan_linear(chan));
 
        /* wait for teardown complete */
        timeout = jiffies + HZ/10;      /* 100 msec */