mirror of
https://github.com/torvalds/linux
synced 2024-09-22 03:55:39 +00:00
Blackfin arch: Add DMA API to set curr descriptor address
This API is necessary for DMA descriptor array mode. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
parent
2cbfe10743
commit
8a26ac7043
|
@ -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 {
|
||||||
/* 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);
|
||||||
|
|
Loading…
Reference in a new issue