[bootlin/training-materials updates] master: Misc kernel slides improvements (66794201)

Michael Opdenacker michael.opdenacker at bootlin.com
Fri Dec 18 19:06:21 CET 2020


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/6679420126efb3e31df3fcf23b7f65427d3c8f72

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

commit 6679420126efb3e31df3fcf23b7f65427d3c8f72
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Fri Dec 18 19:06:21 2020 +0100

    Misc kernel slides improvements
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


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

6679420126efb3e31df3fcf23b7f65427d3c8f72
 .../kernel-driver-development-interrupts.tex              | 15 ++++++++++-----
 slides/kernel-porting-content/kernel-porting-content.tex  |  8 ++++----
 2 files changed, 14 insertions(+), 9 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 b3f0b963..16737b2c 100644
--- a/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
+++ b/slides/kernel-driver-development-interrupts/kernel-driver-development-interrupts.tex
@@ -307,7 +307,7 @@ static irqreturn_t atmel_sha_irq(int irq, void *dev_id)
 \end{minted}
 \end{frame}
 
-\begin{frame}
+\begin{frame}[fragile]
   \frametitle{Workqueues}
   \begin{itemize}
   \item Workqueues are a general mechanism for deferring work. It is
@@ -319,11 +319,16 @@ static irqreturn_t atmel_sha_irq(int irq, void *dev_id)
     \item All interrupts are enabled
     \item Sleeping is allowed
     \end{itemize}
-  \item A workqueue is registered with \kfunc{INIT_WORK} and typically
+  \item A workqueue, usually allocated in a per-device structure,
+    is registered with \kfunc{INIT_WORK} and typically
     triggered with \kfunc{queue_work}
-  \item The complete API, in \kfile{include/linux/workqueue.h} provides
-    many other possibilities (creating its own workqueue threads,
-    etc.)
+  \item The complete API, in \kfile{include/linux/workqueue.h}, provides
+    many other possibilities (creating its own workqueue threads, etc.)
+  \item Example (\kfile{drivers/crypto/atmel-i2c}):
+\begin{minted}{c}
+INIT_WORK(&work_data->work, atmel_i2c_work_handler);
+schedule_work(&work_data->work);
+\end{minted}
   \end{itemize}
 \end{frame}
 
diff --git a/slides/kernel-porting-content/kernel-porting-content.tex b/slides/kernel-porting-content/kernel-porting-content.tex
index 276b1f1a..a8ff2865 100644
--- a/slides/kernel-porting-content/kernel-porting-content.tex
+++ b/slides/kernel-porting-content/kernel-porting-content.tex
@@ -466,10 +466,10 @@ MACHINE_END
   \begin{itemize}
   \item Ethernet driver, in \kfile{drivers/net/ethernet/marvell/mvneta.c}
   \item SATA driver, in \kfile{drivers/ata/sata_mv.c}
-  \item I2C driver, in \kfile{drivers/i2c/busses/i2c-mv64xxx.c}
-  \item SPI driver, in \kfile{drivers/spi/spi-orion.c}
-  \item PCIe driver, in \kfile{drivers/pci/controller/pci-mvebu.c}
-  \item USB driver, in \kfile{drivers/usb/host/ehci-orion.c}
+  \item I2C controller driver, in \kfile{drivers/i2c/busses/i2c-mv64xxx.c}
+  \item SPI controller driver, in \kfile{drivers/spi/spi-orion.c}
+  \item PCIe controller driver, in \kfile{drivers/pci/controller/pci-mvebu.c}
+  \item USB controller driver, in \kfile{drivers/usb/host/ehci-orion.c}
   \item etc.
   \end{itemize}
 \end{frame}




More information about the training-materials-updates mailing list