Skip to content

Commit

Permalink
Blackfin arch: dma add some API and cleanup bf54x DMA definition
Browse files Browse the repository at this point in the history
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
  • Loading branch information
Bryan Wu committed Oct 21, 2007
1 parent 780431e commit 452af71
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 6 deletions.
26 changes: 26 additions & 0 deletions arch/blackfin/kernel/bfin_dma_5xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,32 @@ unsigned short get_dma_curr_ycount(unsigned int channel)
}
EXPORT_SYMBOL(get_dma_curr_ycount);

unsigned long get_dma_next_desc_ptr(unsigned int channel)
{
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
&& channel < MAX_BLACKFIN_DMA_CHANNEL));

return dma_ch[channel].regs->next_desc_ptr;
}
EXPORT_SYMBOL(get_dma_next_desc_ptr);

unsigned long get_dma_curr_desc_ptr(unsigned int channel)
{
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
&& channel < MAX_BLACKFIN_DMA_CHANNEL));

return dma_ch[channel].regs->curr_desc_ptr;
}

unsigned long get_dma_curr_addr(unsigned int channel)
{
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
&& channel < MAX_BLACKFIN_DMA_CHANNEL));

return dma_ch[channel].regs->curr_addr_ptr;
}
EXPORT_SYMBOL(get_dma_curr_addr);

static void *__dma_memcpy(void *dest, const void *src, size_t size)
{
int direction; /* 1 - address decrease, 0 - address increase */
Expand Down
1 change: 1 addition & 0 deletions arch/blackfin/mach-bf548/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
(struct dma_register *) MDMA_D3_NEXT_DESC_PTR,
(struct dma_register *) MDMA_S3_NEXT_DESC_PTR,
};
EXPORT_SYMBOL(base_addr);

int channel2irq(unsigned int channel)
{
Expand Down
7 changes: 4 additions & 3 deletions include/asm-blackfin/dma.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,7 @@ struct dma_register {

unsigned long curr_desc_ptr; /* DMA Current Descriptor Pointer
register */
unsigned short curr_addr_ptr_lo; /* DMA Current Address Pointer
register */
unsigned short curr_addr_ptr_hi; /* DMA Current Address Pointer
unsigned long curr_addr_ptr; /* DMA Current Address Pointer
register */
unsigned short irq_status; /* DMA irq status register */
unsigned short dummy6;
Expand Down Expand Up @@ -166,6 +164,9 @@ void set_dma_curr_addr(unsigned int channel, unsigned long addr);
unsigned short get_dma_curr_irqstat(unsigned int channel);
unsigned short get_dma_curr_xcount(unsigned int channel);
unsigned short get_dma_curr_ycount(unsigned int channel);
unsigned long get_dma_next_desc_ptr(unsigned int channel);
unsigned long get_dma_curr_desc_ptr(unsigned int channel);
unsigned long get_dma_curr_addr(unsigned int channel);

/* set large DMA mode descriptor */
void set_dma_sg(unsigned int channel, struct dmasg *sg, int nr_sg);
Expand Down
2 changes: 1 addition & 1 deletion include/asm-blackfin/mach-bf548/defBF549.h
Original file line number Diff line number Diff line change
Expand Up @@ -1178,7 +1178,7 @@

/* Bit masks for HOST_STATUS */

#define READY 0x1 /* DMA Ready */
#define DMA_READY 0x1 /* DMA Ready */
#define FIFOFULL 0x2 /* FIFO Full */
#define FIFOEMPTY 0x4 /* FIFO Empty */
#define DMA_COMPLETE 0x8 /* DMA Complete */
Expand Down
2 changes: 1 addition & 1 deletion include/asm-blackfin/mach-bf548/defBF54x_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -3303,7 +3303,7 @@

#define MFD 0xf000 /* Multi channel Frame Delay */
#define FSDR 0x80 /* Frame Sync to Data Relationship */
#define MCMEM 0x10 /* Multi channel Frame Mode Enable */
#define MCMEN 0x10 /* Multi channel Frame Mode Enable */
#define MCDRXPE 0x8 /* Multi channel DMA Receive Packing */
#define MCDTXPE 0x4 /* Multi channel DMA Transmit Packing */
#define MCCRM 0x3 /* 2X Clock Recovery Mode */
Expand Down
2 changes: 1 addition & 1 deletion include/asm-blackfin/mach-bf548/dma.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,5 @@
#define MAX_BLACKFIN_DMA_CHANNEL 32

extern int channel2irq(unsigned int channel);
extern struct dma_register *base_addr[];
extern struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL];
#endif

0 comments on commit 452af71

Please sign in to comment.