cregit-Linux how code gets into the kernel

Release 4.7 drivers/dma/dmaengine.h

Directory: drivers/dma
/*
 * The contents of this file are private to DMA engine drivers, and is not
 * part of the API to be used by DMA engine users.
 */
#ifndef DMAENGINE_H

#define DMAENGINE_H

#include <linux/bug.h>
#include <linux/dmaengine.h>

/**
 * dma_cookie_init - initialize the cookies for a DMA channel
 * @chan: dma channel to initialize
 */

static inline void dma_cookie_init(struct dma_chan *chan) { chan->cookie = DMA_MIN_COOKIE; chan->completed_cookie = DMA_MIN_COOKIE; }

Contributors

PersonTokensPropCommitsCommitProp
russell kingrussell king24100.00%1100.00%
Total24100.00%1100.00%

/** * dma_cookie_assign - assign a DMA engine cookie to the descriptor * @tx: descriptor needing cookie * * Assign a unique non-zero per-channel cookie to the descriptor. * Note: caller is expected to hold a lock to prevent concurrency. */
static inline dma_cookie_t dma_cookie_assign(struct dma_async_tx_descriptor *tx) { struct dma_chan *chan = tx->chan; dma_cookie_t cookie; cookie = chan->cookie + 1; if (cookie < DMA_MIN_COOKIE) cookie = DMA_MIN_COOKIE; tx->cookie = chan->cookie = cookie; return cookie; }

Contributors

PersonTokensPropCommitsCommitProp
russell kingrussell king55100.00%1100.00%
Total55100.00%1100.00%

/** * dma_cookie_complete - complete a descriptor * @tx: descriptor to complete * * Mark this descriptor complete by updating the channels completed * cookie marker. Zero the descriptors cookie to prevent accidental * repeated completions. * * Note: caller is expected to hold a lock to prevent concurrency. */
static inline void dma_cookie_complete(struct dma_async_tx_descriptor *tx) { BUG_ON(tx->cookie < DMA_MIN_COOKIE); tx->chan->completed_cookie = tx->cookie; tx->cookie = 0; }

Contributors

PersonTokensPropCommitsCommitProp
russell kingrussell king37100.00%1100.00%
Total37100.00%1100.00%

/** * 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->completed_cookie; barrier(); if (state) { state->last = complete; state->used = used; state->residue = 0; } return dma_async_is_complete(cookie, complete, used); }

Contributors

PersonTokensPropCommitsCommitProp
russell kingrussell king75100.00%1100.00%
Total75100.00%1100.00%


static inline void dma_set_residue(struct dma_tx_state *state, u32 residue) { if (state) state->residue = residue; }

Contributors

PersonTokensPropCommitsCommitProp
russell kingrussell king25100.00%1100.00%
Total25100.00%1100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
russell kingrussell king235100.00%5100.00%
Total235100.00%5100.00%
Directory: drivers/dma
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}