Skip to content

Commit 452af71

Browse files
author
Bryan Wu
committed
Blackfin arch: dma add some API and cleanup bf54x DMA definition
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
1 parent 780431e commit 452af71

File tree

6 files changed

+34
-6
lines changed

6 files changed

+34
-6
lines changed

arch/blackfin/kernel/bfin_dma_5xx.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,32 @@ unsigned short get_dma_curr_ycount(unsigned int channel)
420420
}
421421
EXPORT_SYMBOL(get_dma_curr_ycount);
422422

423+
unsigned long get_dma_next_desc_ptr(unsigned int channel)
424+
{
425+
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
426+
&& channel < MAX_BLACKFIN_DMA_CHANNEL));
427+
428+
return dma_ch[channel].regs->next_desc_ptr;
429+
}
430+
EXPORT_SYMBOL(get_dma_next_desc_ptr);
431+
432+
unsigned long get_dma_curr_desc_ptr(unsigned int channel)
433+
{
434+
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
435+
&& channel < MAX_BLACKFIN_DMA_CHANNEL));
436+
437+
return dma_ch[channel].regs->curr_desc_ptr;
438+
}
439+
440+
unsigned long get_dma_curr_addr(unsigned int channel)
441+
{
442+
BUG_ON(!(dma_ch[channel].chan_status != DMA_CHANNEL_FREE
443+
&& channel < MAX_BLACKFIN_DMA_CHANNEL));
444+
445+
return dma_ch[channel].regs->curr_addr_ptr;
446+
}
447+
EXPORT_SYMBOL(get_dma_curr_addr);
448+
423449
static void *__dma_memcpy(void *dest, const void *src, size_t size)
424450
{
425451
int direction; /* 1 - address decrease, 0 - address increase */

arch/blackfin/mach-bf548/dma.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
(struct dma_register *) MDMA_D3_NEXT_DESC_PTR,
6565
(struct dma_register *) MDMA_S3_NEXT_DESC_PTR,
6666
};
67+
EXPORT_SYMBOL(base_addr);
6768

6869
int channel2irq(unsigned int channel)
6970
{

include/asm-blackfin/dma.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,7 @@ struct dma_register {
109109

110110
unsigned long curr_desc_ptr; /* DMA Current Descriptor Pointer
111111
register */
112-
unsigned short curr_addr_ptr_lo; /* DMA Current Address Pointer
113-
register */
114-
unsigned short curr_addr_ptr_hi; /* DMA Current Address Pointer
112+
unsigned long curr_addr_ptr; /* DMA Current Address Pointer
115113
register */
116114
unsigned short irq_status; /* DMA irq status register */
117115
unsigned short dummy6;
@@ -166,6 +164,9 @@ void set_dma_curr_addr(unsigned int channel, unsigned long addr);
166164
unsigned short get_dma_curr_irqstat(unsigned int channel);
167165
unsigned short get_dma_curr_xcount(unsigned int channel);
168166
unsigned short get_dma_curr_ycount(unsigned int channel);
167+
unsigned long get_dma_next_desc_ptr(unsigned int channel);
168+
unsigned long get_dma_curr_desc_ptr(unsigned int channel);
169+
unsigned long get_dma_curr_addr(unsigned int channel);
169170

170171
/* set large DMA mode descriptor */
171172
void set_dma_sg(unsigned int channel, struct dmasg *sg, int nr_sg);

include/asm-blackfin/mach-bf548/defBF549.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1178,7 +1178,7 @@
11781178

11791179
/* Bit masks for HOST_STATUS */
11801180

1181-
#define READY 0x1 /* DMA Ready */
1181+
#define DMA_READY 0x1 /* DMA Ready */
11821182
#define FIFOFULL 0x2 /* FIFO Full */
11831183
#define FIFOEMPTY 0x4 /* FIFO Empty */
11841184
#define DMA_COMPLETE 0x8 /* DMA Complete */

include/asm-blackfin/mach-bf548/defBF54x_base.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3303,7 +3303,7 @@
33033303

33043304
#define MFD 0xf000 /* Multi channel Frame Delay */
33053305
#define FSDR 0x80 /* Frame Sync to Data Relationship */
3306-
#define MCMEM 0x10 /* Multi channel Frame Mode Enable */
3306+
#define MCMEN 0x10 /* Multi channel Frame Mode Enable */
33073307
#define MCDRXPE 0x8 /* Multi channel DMA Receive Packing */
33083308
#define MCDTXPE 0x4 /* Multi channel DMA Transmit Packing */
33093309
#define MCCRM 0x3 /* 2X Clock Recovery Mode */

include/asm-blackfin/mach-bf548/dma.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,5 @@
7070
#define MAX_BLACKFIN_DMA_CHANNEL 32
7171

7272
extern int channel2irq(unsigned int channel);
73-
extern struct dma_register *base_addr[];
73+
extern struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL];
7474
#endif

0 commit comments

Comments
 (0)