[FE training-materials-updates] kernel-input: Wrote the first slides

Gregory Clement gregory.clement at free-electrons.com
Tue Oct 1 01:25:10 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=6647d072cef2a791b92f8c8eff6e5a77de9dc812


commit 6647d072cef2a791b92f8c8eff6e5a77de9dc812
Author: Gregory CLEMENT <gregory.clement at free-electrons.com>
Date:   Thu Sep 26 17:51:22 2013 +0200

    kernel-input: Wrote the first slides
    Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>


 slides/kernel-input/kernel-input.tex |   56 ++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/slides/kernel-input/kernel-input.tex b/slides/kernel-input/kernel-input.tex
index 1934fb6..782bc16 100644
--- a/slides/kernel-input/kernel-input.tex
+++ b/slides/kernel-input/kernel-input.tex
@@ -1,5 +1,61 @@
 \subsection{The input subsystem}
+\begin{frame}{What is input subsystem?}
+  \begin{itemize}
+  \item The input subsystem takes care of all the input events coming
+    from the user.
+  \item Initially written to support the USB {\em HID}(Human Interface
+    Device) devices, it quickly grew up to handle all kind of inputs
+    (using USB or not): keyboard, mice, joystick, touchscreen, etc.
+  \item The input subsystem is split in two parts:
+    \begin{itemize}
+    \item {\bf Device drivers}: they talk to the hardware (for example
+      via USB), and provide events (keystrokes, mouse movements,
+      touchscreen coordinates) to the input module
+    \item {\bf Event handlers}: they get events from input and pass them
+      where needed via various interfaces (most of the time through
+      \code{evdev})
+    \end{itemize}
+  \item In userspace it is usually used by the the graphic stack such
+    as {\em X.Org}, {\em Wayland} or {\em Android}.
+  \end{itemize}
+\begin{frame}{input subsystem overview}
+TODO: [nice diagram]
+  \frametitle{input subsystem overview}
+  \begin{itemize}
+  \item Kernel option \code{CONFIG_INPUT}
+    \begin{itemize}
+    \item \code{menuconfig INPUT}
+      \begin{itemize}
+      \item \code{tristate "Generic input layer (needed for keyboard, mouse, ...)"}
+      \end{itemize}
+    \end{itemize}
+  \item Implemented in \code{drivers/input/}
+    \begin{itemize}
+    \item \code{input.c}, \code{input-polldev.c}, \code{evbug.c}
+    \end{itemize}
+  \item Implements a single character driver and defines the
+    user/kernel API
+    \begin{itemize}
+    \item \code{include/uapi/linux/input.h}
+    \end{itemize}
+  \item Defines the set of operations a input driver must implement
+    and helper functions for the drivers
+    \begin{itemize}
+    \item \code{struct input_dev} for the device driver part
+    \item \code{struct input_handler} for the event handler part
+    \item  \code{include/linux/input.h}
+    \end{itemize}
+  \end{itemize}
 {Expose the Nunchuk functionality to userspace}

More information about the training-materials-updates mailing list