lkml.org 
[lkml]   [2010]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 2/3] dmaengine: add wrapper functions for dmaengine
    From
    On Fri, Sep 24, 2010 at 12:25 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
    > Hi Dan,
    >
    > On Thu, Sep 23, 2010 at 12:53:58PM -0700, Dan Williams wrote:
    >> > diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
    >> > index 0df7864..635c60b 100644
    >> > --- a/include/linux/dmaengine.h
    >> > +++ b/include/linux/dmaengine.h
    >> > @@ -491,6 +491,47 @@ struct dma_device {
    >> >        void (*device_issue_pending)(struct dma_chan *chan);
    >> >  };
    >> >
    >> > +static inline int dmaengine_device_control(struct dma_chan *chan,
    >> > +                                          enum dma_ctrl_cmd cmd,
    >> > +                                          unsigned long arg)
    >> > +{
    >> > +       return chan->device->device_control(chan, cmd, arg);
    >> > +}
    >> > +
    >> > +static inline int dmaengine_slave_config(struct dma_chan *chan,
    >> > +                                         struct dma_slave_config *config)
    >> > +{
    >> > +       return dmaengine_device_control(chan, DMA_SLAVE_CONFIG,
    >> > +                       (unsigned long)config);
    >> > +}
    >> > +
    >> > +static inline int dmaengine_terminate_all(struct dma_chan *chan)
    >> > +{
    >> > +       return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0);
    >> > +}
    >> > +
    >> > +static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
    >> > +               struct dma_chan *chan, struct scatterlist *sgl,
    >> > +               unsigned int sg_len, enum dma_data_direction direction,
    >> > +               unsigned long flags)
    >> > +{
    >> > +       return chan->device->device_prep_slave_sg(chan, sgl, sg_len, direction,
    >> > +                       flags);
    >> > +}
    >> > +
    >> > +static inline struct dma_async_tx_descriptor *dmaengine_prep_cyclic(
    >> > +               struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
    >> > +               size_t period_len, enum dma_data_direction direction)
    >> > +{
    >> > +       return chan->device->device_prep_dma_cyclic(chan, buf_addr, buf_len,
    >> > +                       period_len, direction);
    >> > +}
    >> > +
    >>
    >> No strong disagreements on the above, the type safety of
    >> dmaengine_slave_config() is nice.
    >
    > So you have only small disagreements? ;) I can drop the dmaengine_prep_*
    > functions and only keep the device_control functions if like it better.
    >

    The prep versions may just be code churn, unless there is another
    advantage for having a helper... debug/tracing perhaps?

    >>
    >> > +static inline int dmaengine_tx_submit(struct dma_async_tx_descriptor *desc)
    >> > +{
    >> > +       return desc->tx_submit(desc);
    >> > +}
    >>
    >> This one can drop the tx.
    >
    > You mean the function should be named dmaengine_submit?

    Yes, the "tx" is often mistaken, understandably, for "transmit".
    Linus proposed renaming ->tx_submit() to just ->submit(). This helper
    would be a softer way to introduce that rename.

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

    \
     
     \ /
      Last update: 2010-09-27 20:09    [W:2.457 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site