[FE training-materials-updates] Misc improvements to interrupt management slides

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Sep 30 10:59:20 CEST 2013


Repository : git://git.free-electrons.com/training-materials.git

On branch  : kernel-ng
Link       : http://git.free-electrons.com/training-materials/commit/?id=105c7ceab5a82123289b2ad0491880bea2210b93

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

commit 105c7ceab5a82123289b2ad0491880bea2210b93
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date:   Mon Sep 30 10:58:48 2013 +0200

    Misc improvements to interrupt management slides
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>


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

105c7ceab5a82123289b2ad0491880bea2210b93
 .../kernel-driver-development-interrupts.tex       |   56 +++++++++++++-------
 1 file changed, 36 insertions(+), 20 deletions(-)

diff --git a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
index 02af926..f5d8c8a 100644
--- a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
+++ b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
@@ -3,30 +3,38 @@
 \begin{frame}[fragile]
   \frametitle{Registering an interrupt handler 1/2}
   \begin{itemize}
-  \item Defined in \code{include/linux/interrupt.h}
-    \begin{itemize}
-    \item \mint{c}+int request_irq(unsigned int irq,+
-      \mint{c}+irq_handler_t handler, unsigned long irq_flags,+
-      \mint{c}+const char *devname, void *dev_id);+
-      \begin{itemize}
-      \item \code{irq} is the requested IRQ channel
-      \item \code{handler} is a pointer to the IRQ handler
-      \item \code{irq_flags} are option masks (see next slide)
-      \item \code{devname} is the registered name
-      \item \code{dev_id} is a pointer to some data. It cannot be NULL
-        as it is used as an identifier for \code{free_irq} when using
-        shared IRQs.
-      \end{itemize}
-    \item \mint{c}+void free_irq(unsigned int irq, void *dev_id);+
-    \end{itemize}
-  \end{itemize}
+  \item \begin{minted}{c}
+int request_irq(unsigned int irq,
+     irq_handler_t handler, unsigned long irq_flags,
+     const char *devname, void *dev_id);
+   \end{minted}
+   \begin{itemize}
+   \item Register an interrupt handler.
+   \item \code{irq} is the requested IRQ channel. For platform
+     devices, use \code{platform_get_irq()} to retrieve the
+     interrupt number.
+   \item \code{handler} is a pointer to the IRQ handler
+   \item \code{irq_flags} are option masks (see next slide)
+   \item \code{devname} is the registered name
+   \item \code{dev_id} is a pointer to some data. It cannot be NULL
+     as it is used as an identifier for \code{free_irq} when using
+     shared IRQs.
+   \end{itemize}
+ \item \begin{minted}{c}
+void free_irq(unsigned int irq, void *dev_id);
+\end{minted}
+\begin{itemize}
+\item Release an interrupt handler.
+\end{itemize}
+ \item Defined in \code{include/linux/interrupt.h}
+ \end{itemize}
 \end{frame}
 
 \begin{frame}
   \frametitle{Registering an interrupt handler 2/2}
   \begin{itemize}
-  \item Main \code{irq_flags} bit values (can be combined, none is
-    fine too)
+  \item Main \code{irq_flags} bit values (can be combined, \code{0}
+    when no flags are needed)
     \begin{itemize}
     \item \code{IRQF_SHARED}
       \begin{itemize}
@@ -59,7 +67,9 @@
 \end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{/proc/interrupts on a Panda board}
+  \frametitle{{\tt /proc/interrupts} on a Panda board}
+\begin{block}{}
+  \footnotesize
 \begin{verbatim}
         CPU0    CPU1
 39:     4       0       GIC     TWL6030-PIH
@@ -77,6 +87,12 @@ IPI4:   0       0       CPU stop interrupts
 LOC:    196407  136995  Local timer interrupts
 Err:    0
 \end{verbatim}
+\end{block}
+  \footnotesize
+  Note: interrupt numbers shown on the left-most column are virtual
+  numbers when the Device Tree is used. The real physical interrupt
+  numbers are either shown as an additional column, or can be seen in
+  \code{/sys/kernel/debug/irq_domain_mapping}.
 \end{frame}
 
 \begin{frame}[fragile]



More information about the training-materials-updates mailing list