dmaengine: edma: Document variables used for residue accounting
authorJoel Fernandes <joelf@ti.com>
Mon, 28 Apr 2014 20:19:31 +0000 (15:19 -0500)
committerVinod Koul <vinod.koul@intel.com>
Wed, 30 Apr 2014 05:06:41 +0000 (10:36 +0530)
The granular residue accounting code uses certain variables specifically
for residue accounting. Document these in the structure declaration.
Also move around some elements and group them together.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Joel Fernandes <joelf@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/edma.c

index 5d9f57f..18c833f 100644 (file)
@@ -70,12 +70,34 @@ struct edma_desc {
        int                             cyclic;
        int                             absync;
        int                             pset_nr;
+       struct edma_chan                *echan;
        int                             processed;
+
+       /*
+        * The following 4 elements are used for residue accounting.
+        *
+        * - processed_stat: the number of SG elements we have traversed
+        * so far to cover accounting. This is updated directly to processed
+        * during edma_callback and is always <= processed, because processed
+        * refers to the number of pending transfer (programmed to EDMA
+        * controller), where as processed_stat tracks number of transfers
+        * accounted for so far.
+        *
+        * - residue: The amount of bytes we have left to transfer for this desc
+        *
+        * - residue_stat: The residue in bytes of data we have covered
+        * so far for accounting. This is updated directly to residue
+        * during callbacks to keep it current.
+        *
+        * - sg_len: Tracks the length of the current intermediate transfer,
+        * this is required to update the residue during intermediate transfer
+        * completion callback.
+        */
        int                             processed_stat;
-       u32                             residue;
        u32                             sg_len;
+       u32                             residue;
        u32                             residue_stat;
-       struct edma_chan                *echan;
+
        struct edma_pset                pset[0];
 };