RE: [PATCH] dma : EG20T PCH: Fix miss-setting DMA descriptor

From: Wang, Yong Y
Date: Mon Dec 06 2010 - 07:58:49 EST


> > diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
> > index 92b6790..a3d54c0 100644
> > --- a/drivers/dma/pch_dma.c
> > +++ b/drivers/dma/pch_dma.c
> [..]
> > @@ -273,10 +268,16 @@ static void pdc_dostart(struct pch_dma_chan
> *pd_chan, struct pch_dma_desc* desc)
> >        dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> next: %x\n",
> >                pd_chan->chan.chan_id, desc->regs.next);
> >
> > -       if (list_empty(&desc->tx_list))
> > +       if (list_empty(&desc->tx_list)) {
> > +               channel_writel(pd_chan, DEV_ADDR,
> desc->regs.dev_addr);
> > +               channel_writel(pd_chan, MEM_ADDR,
> desc->regs.mem_addr);
> > +               channel_writel(pd_chan, SIZE, desc->regs.size);
> > +               channel_writel(pd_chan, NEXT, desc->regs.next);
> >                pdc_set_mode(&pd_chan->chan,
> DMA_CTL0_ONESHOT);
> > -       else
> > +       } else {
> > +               channel_writel(pd_chan, NEXT,
> virt_to_phys(&desc->regs));
>
> There is a reason for the following comment for virt_to_phys():
>
> /* This function does not give bus mappings for DMA transfers. In
> * almost all conceivable cases a device driver should not be using
> * this function
> */
>
> ...in this case this wants to be:
>
> channel_write(pd_chan, NEXT, desc->txd.phys);
>
> I'll let Yong comment on the correctness of the rest.
>

Hi Dan,

Apart from the issue you pointed out, the patch looks good to me. If it is convenient for you, please help make the change and merge this patch. Otherwise, please let Tomoya know that you want him to send an updated patch. Thanks!

Acked-by: Yong Wang <youg.y.wang@xxxxxxxxx>

-Yong

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/