[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>
>---------------------------------------------------------------
6647d072cef2a791b92f8c8eff6e5a77de9dc812
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}
+\end{frame}
+
+\begin{frame}{input subsystem overview}
+
+TODO: [nice diagram]
+
+\end{frame}
+
+\begin{frame}
+ \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}
+\end{frame}
+
\setuplabframe
{Expose the Nunchuk functionality to userspace}
{
More information about the training-materials-updates
mailing list