On Monday, March 05, 2012 1:17 PM, Russell King wrote:
> 
> Now that we have the completed cookie in the dma_chan structure, we
> can consolidate the tx_status functions by providing a function to set
> the txstate structure and returning the DMA status.  We also provide
> a separate helper to set the residue for cookies which are still in
> progress.
>
> Signed-off-by: Russell King <rmk+ker...@arm.linux.org.uk>
> ---

<snip>

> diff --git a/drivers/dma/dmaengine.h b/drivers/dma/dmaengine.h
> index 47e0997..244a2c5 100644
> --- a/drivers/dma/dmaengine.h
> +++ b/drivers/dma/dmaengine.h
> @@ -45,4 +45,35 @@ static inline void dma_cookie_complete(struct 
> dma_async_tx_descriptor *tx)
>       tx->cookie = 0;
>  }
>  
> +/**
> + * dma_cookie_status - report cookie status
> + * @chan: dma channel
> + * @cookie: cookie we are interested in
> + * @state: dma_tx_state structure to return last/used cookies
> + *
> + * Report the status of the cookie, filling in the state structure if
> + * non-NULL.  No locking is required.
> + */
> +static inline enum dma_status dma_cookie_status(struct dma_chan *chan,
> +     dma_cookie_t cookie, struct dma_tx_state *state)
> +{
> +     dma_cookie_t used, complete;
> +
> +     used = chan->cookie;
> +     complete = chan->complete;
> +     barrier();
> +     if (state) {
> +             state->last = complete;
> +             state->used = used;
> +             state->residue = 0;
> +     }

Isn't this dma_set_tx_state()?

> +     return dma_async_is_complete(cookie, complete, used);
> +}

Regards,
Hartley

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to