From: Christian Riesch Date: Wed, 22 Feb 2012 21:58:00 +0000 (+0000) Subject: davinci_cpdma: Fix channel number written to teardown registers X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b4ad0428139491355ea8742294c77942c312c5bb;p=openwrt%2Fstaging%2Fblogic.git davinci_cpdma: Fix channel number written to teardown registers 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 Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c b/drivers/net/ethernet/ti/davinci_cpdma.c index c97d2f590855..34558766cbf0 100644 --- a/drivers/net/ethernet/ti/davinci_cpdma.c +++ b/drivers/net/ethernet/ti/davinci_cpdma.c @@ -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 */