]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[PATCH] ARM: OMAP: dma progress meter function in dma.c
authorDaniel Petrini <d.pensator@gmail.com>
Wed, 27 Jul 2005 11:00:50 +0000 (04:00 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 27 Jul 2005 11:00:50 +0000 (04:00 -0700)
The following patch adds a new fuction in file dma.c:

- omap_get_dma_src_addr_counter

This function returns the value of the DMA source counter register.
It can be used to show the progress of the dma transfer for a given channel.

arch/arm/plat-omap/dma.c
include/asm-arm/arch-omap/dma.h

index 08a7943a1b6a73aeef3af47db65245d14dd643e3..40b53d986ede867c011aa3e54fa1da7f15096c82 100644 (file)
@@ -983,6 +983,16 @@ dma_addr_t omap_get_dma_dst_pos(int lch)
        (omap_readw(OMAP_DMA_CDSA_U(lch)) << 16));
 }
 
+/*
+ * Returns current source transfer counting for the given DMA channel.
+ * Can be used to monitor the progress of a transfer inside a  block.
+ * It must be called with disabled interrupts.
+ */
+int omap_get_dma_src_addr_counter(int lch)
+{
+       return (dma_addr_t) omap_readw(OMAP_DMA_CSAC(lch));
+}
+
 int omap_dma_running(void)
 {
        int lch;
@@ -1076,6 +1086,7 @@ arch_initcall(omap_init_dma);
 
 EXPORT_SYMBOL(omap_get_dma_src_pos);
 EXPORT_SYMBOL(omap_get_dma_dst_pos);
+EXPORT_SYMBOL(omap_get_dma_src_addr_counter);
 EXPORT_SYMBOL(omap_clear_dma);
 EXPORT_SYMBOL(omap_set_dma_priority);
 EXPORT_SYMBOL(omap_request_dma);
index ce114ce5af5d6af63d3d44af7e49c35eb9f3b701..04ebef5c6e95d180142d3e25e938630705b4341c 100644 (file)
@@ -240,6 +240,7 @@ extern void omap_dma_unlink_lch (int lch_head, int lch_queue);
 
 extern dma_addr_t omap_get_dma_src_pos(int lch);
 extern dma_addr_t omap_get_dma_dst_pos(int lch);
+extern int omap_get_dma_src_addr_counter(int lch);
 extern void omap_clear_dma(int lch);
 extern int omap_dma_running(void);