提交 8a26ac70 编写于 作者: S Sonic Zhang 提交者: Bryan Wu

Blackfin arch: Add DMA API to set curr descriptor address

This API is necessary for DMA descriptor array mode.
Signed-off-by: NSonic Zhang <sonic.zhang@analog.com>
Signed-off-by: NBryan Wu <bryan.wu@analog.com>
上级 2cbfe107
...@@ -270,10 +270,23 @@ void set_dma_next_desc_addr(unsigned int channel, unsigned long addr) ...@@ -270,10 +270,23 @@ void set_dma_next_desc_addr(unsigned int channel, unsigned long addr)
dma_ch[channel].regs->next_desc_ptr = addr; dma_ch[channel].regs->next_desc_ptr = addr;
SSYNC(); SSYNC();
pr_debug("set_dma_start_addr() : END\n"); pr_debug("set_dma_next_desc_addr() : END\n");
} }
EXPORT_SYMBOL(set_dma_next_desc_addr); EXPORT_SYMBOL(set_dma_next_desc_addr);
void set_dma_curr_desc_addr(unsigned int channel, unsigned long addr)
{
pr_debug("set_dma_curr_desc_addr() : BEGIN \n");
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
&& channel < MAX_BLACKFIN_DMA_CHANNEL));
dma_ch[channel].regs->curr_desc_ptr = addr;
SSYNC();
pr_debug("set_dma_curr_desc_addr() : END\n");
}
EXPORT_SYMBOL(set_dma_curr_desc_addr);
void set_dma_x_count(unsigned int channel, unsigned short x_count) void set_dma_x_count(unsigned int channel, unsigned short x_count)
{ {
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
......
...@@ -152,6 +152,7 @@ struct dma_channel { ...@@ -152,6 +152,7 @@ struct dma_channel {
/* functions to set register mode */ /* functions to set register mode */
void set_dma_start_addr(unsigned int channel, unsigned long addr); void set_dma_start_addr(unsigned int channel, unsigned long addr);
void set_dma_next_desc_addr(unsigned int channel, unsigned long addr); void set_dma_next_desc_addr(unsigned int channel, unsigned long addr);
void set_dma_curr_desc_addr(unsigned int channel, unsigned long addr);
void set_dma_x_count(unsigned int channel, unsigned short x_count); void set_dma_x_count(unsigned int channel, unsigned short x_count);
void set_dma_x_modify(unsigned int channel, short x_modify); void set_dma_x_modify(unsigned int channel, short x_modify);
void set_dma_y_count(unsigned int channel, unsigned short y_count); void set_dma_y_count(unsigned int channel, unsigned short y_count);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册