Skip to content

Commit

Permalink
dmaengine: virt-dma: vchan_find_desc()
Browse files Browse the repository at this point in the history
Add a function to find a descriptor within the depths of the
virtualized DMA channel support.  Needed for tx_status functionality.

Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Jul 1, 2012
1 parent 50437bf commit fe04587
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
13 changes: 13 additions & 0 deletions drivers/dma/virt-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ dma_cookie_t vchan_tx_submit(struct dma_async_tx_descriptor *tx)
}
EXPORT_SYMBOL_GPL(vchan_tx_submit);

struct virt_dma_desc *vchan_find_desc(struct virt_dma_chan *vc,
dma_cookie_t cookie)
{
struct virt_dma_desc *vd;

list_for_each_entry(vd, &vc->desc_issued, node)
if (vd->tx.cookie == cookie)
return vd;

return NULL;
}
EXPORT_SYMBOL_GPL(vchan_find_desc);

/*
* This tasklet handles the completion of a DMA descriptor by
* calling its callback and freeing it.
Expand Down
2 changes: 1 addition & 1 deletion drivers/dma/virt-dma.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ static inline struct virt_dma_chan *to_virt_chan(struct dma_chan *chan)
}

void vchan_dma_desc_free_list(struct virt_dma_chan *vc, struct list_head *head);

void vchan_init(struct virt_dma_chan *vc, struct dma_device *dmadev);
struct virt_dma_desc *vchan_find_desc(struct virt_dma_chan *, dma_cookie_t);

/**
* vchan_tx_prep - prepare a descriptor
Expand Down

0 comments on commit fe04587

Please sign in to comment.