[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