2008/7/3 Tony Lindgren <tony@xxxxxxxxxxx>: > Hi, > > * Girish. S. G. <girishsg@xxxxxx> [080703 11:10]: >> Irda driver changes to support on 3430 >> >> Signed-off-by: Girish S G <girishsg@xxxxxx> >> --- >> drivers/net/irda/omap-ir.c | 14 +++++++++++--- >> 1 files changed, 11 insertions(+), 3 deletions(-) >> >> Index: linux-omap-2.6_today/drivers/net/irda/omap-ir.c >> =================================================================== >> --- linux-omap-2.6_today.orig/drivers/net/irda/omap-ir.c 2008-07-03 >> 10:33:57.000000000 +0530 >> +++ linux-omap-2.6_today/drivers/net/irda/omap-ir.c 2008-07-03 >> 10:35:30.000000000 +0530 >> @@ -217,7 +217,7 @@ >> struct net_device *dev = data; >> struct omap_irda *omap_ir = netdev_priv(dev); >> >> - /*Stop DMA controller */ >> + /* Stop DMA controller */ >> omap_stop_dma(omap_ir->tx_dma_channel); >> } >> >> @@ -378,8 +378,12 @@ >> >> skb_reserve(skb, 1); >> >> - w = omap_get_dma_dst_pos(omap_ir->rx_dma_channel) - >> - omap_ir->rx_buf_dma_phys; >> + w = OMAP_DMA4_CDAC(omap_ir->rx_dma_channel); Anything with DMA4 in the name won't work on OMAP1 and may return an unspecified value I'm afraid. >> + >> + if (cpu_is_omap16xx()) >> + w -= OMAP1_DMA_CDSA_L(omap_ir->rx_dma_channel); >> + if (cpu_is_omap24xx() || cpu_is_omap34xx()) >> + w -= OMAP_DMA4_CDSA(omap_ir->rx_dma_channel); >> >> if (!IS_FIR(omap_ir)) >> /* Copy DMA buffer to skb */ > > Let's not tinker with the DMA registers again directly just as I > thought I got all that clean-up a bit! :) > > Can you rather use the exported functions? If something is missing, > let's add it. But in the above case omap_set_dma_dest_params() and > omap_set_dma_src_params() should work I believe. Actually iirc omap_set_dma_dst_params() doesn't work on OMAP15xx, because CDAC was added in DMA3.2 and OMAP15xx has DMA3.1. I had a patch somewhere to use this IrDA driver on OMAP15xx and the main change was this. Regards -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html