[FE training-materials-updates] DMA slides: minor improvements

Michael Opdenacker michael.opdenacker at free-electrons.com
Thu Nov 30 23:44:13 CET 2017


Repository : git://git.free-electrons.com/training-materials.git
On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=9c934a35f7cfb2bb8adfce7c901a7b329d19197d

>---------------------------------------------------------------

commit 9c934a35f7cfb2bb8adfce7c901a7b329d19197d
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date:   Thu Nov 30 23:44:13 2017 +0100

    DMA slides: minor improvements
    
    - Add documentation link
    - Split overflowing page
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>


>---------------------------------------------------------------

9c934a35f7cfb2bb8adfce7c901a7b329d19197d
 .../kernel-driver-development-dma.tex              | 32 +++++++++++++---------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/slides/kernel-driver-development-dma/kernel-driver-development-dma.tex b/slides/kernel-driver-development-dma/kernel-driver-development-dma.tex
index 3c57e82..231a2ce 100644
--- a/slides/kernel-driver-development-dma/kernel-driver-development-dma.tex
+++ b/slides/kernel-driver-development-dma/kernel-driver-development-dma.tex
@@ -1,7 +1,7 @@
 \subsection{DMA}
 
 \begin{frame}
-  \frametitle{DMA Integration}
+  \frametitle{DMA integration}
   \begin{center}
     \includegraphics[width=\textwidth]{slides/kernel-driver-development-dma/dma-integration.pdf}
   \end{center}
@@ -15,7 +15,7 @@
 \end{frame}
 
 \begin{frame}
-  \frametitle{DMA Controllers}
+  \frametitle{DMA controllers}
   \begin{center}
     \includegraphics[width=\textwidth]{slides/kernel-driver-development-dma/dma-controller.pdf}
   \end{center}
@@ -28,7 +28,7 @@
   \end{center}
 \end{frame}
 
-\subsection{DMA Usage}
+\subsection{DMA usage}
 
 \begin{frame}
   \frametitle{Constraints with a DMA}
@@ -53,7 +53,7 @@
 \end{frame}
 
 \begin{frame}
-  \frametitle{DMA Memory Constraints}
+  \frametitle{DMA memory constraints}
   \begin{itemize}
   \item Need to use contiguous memory in physical space.
   \item Can use any memory allocated by \kfunc{kmalloc} (up to 128 KB)
@@ -66,7 +66,7 @@
 \end{frame}
 
 \begin{frame}
-  \frametitle{Memory Synchronization Issues}
+  \frametitle{Memory synchronization issues}
   Memory caching could interfere with DMA
   \begin{itemize}
   \item Before DMA to device
@@ -102,7 +102,7 @@
 \end{frame}
 
 \begin{frame}
-  \frametitle{Coherent or Streaming DMA Mappings}
+  \frametitle{Coherent or streaming DMA mappings}
   \begin{itemize}
   \item Coherent mappings
     \begin{itemize}
@@ -126,7 +126,7 @@
 \end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{Allocating Coherent Mappings}
+  \frametitle{Allocating coherent mappings}
   The kernel takes care of both buffer allocation and mapping
 \begin{minted}[fontsize=\small]{c}
 #include <asm/dma-mapping.h>
@@ -165,7 +165,7 @@ void dma_unmap_single(struct device *dev, dma_addr_t handdle,
 \end{frame}
 
 \begin{frame}
-  \frametitle{DMA Streaming Mapping Notes}
+  \frametitle{DMA streaming mapping notes}
   \begin{itemize}
   \item When the mapping is active: only the device should access the
     buffer (potential cache issues otherwise).
@@ -195,9 +195,8 @@ void dma_unmap_single(struct device *dev, dma_addr_t handdle,
 \end{frame}
 
 \begin{frame}
-  \frametitle{DMAEngine Slave API}
-  \begin{itemize}
-  \item In order to start a DMA transfer, you need to call the
+  \frametitle{DMAEngine slave API (1)}
+    In order to start a DMA transfer, you need to call the
     following functions from your driver
     \begin{enumerate}
     \item Request a channel for exclusive use with
@@ -214,9 +213,16 @@ void dma_unmap_single(struct device *dev, dma_addr_t handdle,
     \item And finally ask the driver to process all pending
       transactions using \kfunc{dma_async_issue_pending}
     \end{enumerate}
-  \item Of course, this needs to be done in addition to the DMA
+\end{frame}
+
+\begin{frame}
+  \frametitle{DMAEngine slave API (2)}
+  \begin{itemize}
+  \item Of course, all this needs to be done in addition to the DMA
     mapping seen previously
-  \item Some frameworks abstract it away from you, such as {\em SPI}
+  \item Some frameworks abstract it away, such as {\em SPI}
     and {\em ASoC}
   \end{itemize}
+  Details in kernel documentation: \kerneldochtml{driver-api/dmaengine/client}
 \end{frame}
+




More information about the training-materials-updates mailing list