Skip to content

Commit

Permalink
ARM: edma: Add function to manually trigger an EDMA channel
Browse files Browse the repository at this point in the history
Manual trigger for events missed as a result of splitting a
scatter gather list and DMA'ing it in batches. Add a helper
function to trigger a channel incase any such events are missed.

Signed-off-by: Joel Fernandes <joelf@ti.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  • Loading branch information
Joel Fernandes authored and Vinod Koul committed Sep 4, 2013
1 parent 5340706 commit 96874b9
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
17 changes: 17 additions & 0 deletions arch/arm/common/edma.c
Original file line number Diff line number Diff line change
Expand Up @@ -1235,6 +1235,23 @@ void edma_resume(unsigned channel)
}
EXPORT_SYMBOL(edma_resume);

int edma_trigger_channel(unsigned channel)
{
unsigned ctlr;
unsigned int mask;

ctlr = EDMA_CTLR(channel);
channel = EDMA_CHAN_SLOT(channel);
mask = BIT(channel & 0x1f);

edma_shadow0_write_array(ctlr, SH_ESR, (channel >> 5), mask);

pr_debug("EDMA: ESR%d %08x\n", (channel >> 5),
edma_shadow0_read_array(ctlr, SH_ESR, (channel >> 5)));
return 0;
}
EXPORT_SYMBOL(edma_trigger_channel);

/**
* edma_start - start dma on a channel
* @channel: channel being activated
Expand Down
2 changes: 2 additions & 0 deletions include/linux/platform_data/edma.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,4 +180,6 @@ struct edma_soc_info {
const s16 (*xbar_chans)[2];
};

int edma_trigger_channel(unsigned);

#endif

0 comments on commit 96874b9

Please sign in to comment.