There is a large number of different display controllers implemented in SOC design and there continue to pop up new variants several times per year. Linux support is in high demand and with the fbdev devices deprecated and no longer accepted in the kernel new display controllers needs a DRM display driver to have Linux support.
The DRM subsystem has over time introduced a lot of helpers so creating a display driver for a simple display controller can be done with limited lines of code and without having to dive too deep into the details of the DRM subsystem.
This talk explains how the helpers in the DRM subsystem allowed the creation of a display driver for the Atmel AT91SAM CPU. The different helpers will be explained with sufficient examples allowing one to use this as a reference when implementing a new display driver.
It is demonstrated how introducing the DRM helpers in existing drivers
can greatly reduce the line-count / complexity.
The talk will as part of the above topics introduce concepts that
was previously unknown to a newbie in the DRM land.
The target group are developers planning to work with CPUs with a simple
display controller that has only a single plane and no GPU.
Everyone else interested in display controllers and small display
drivers will also find the talk relevant.
The talk will introduce the framebuffer – and what a fourcc code is
for the framebuffer.
The relation to a fbdev driver that works with depth and how this
maps to fourcc codes will be explained.
The differences between addfb() and addfb2() will be covered.
The pipeline from framebuffer, crtc, encoder, (bridge),
connector to the panel will be covered.
This includes a good intro to the simple_pipe helpers and examples
of their practical use.
The generic fbdev emulation will be explained, and it will be
demonstrated how simple it is to use.
The bochs driver will be used to demonstrate how introducing the
common helpers can reduce line-count dramatically – and thus to
give the listener an idea for the help provided and how easy
it is these days to write a DRM driver.
The helpers for handling buffer object for a simple display driver will be covered:
- The helpers for simple coherent DMA able memory (cma)
- The helpers for video RAM (vram)
- The helpers for handling shmem may be covered – to be decided
As time permits the talk may also present some of the possibilities in the panel sub-system and how to add new panels.
Again as time permits the talk will introduce tinydrm drivers.
|GSoC, EVoC or Outreachy||No|
|Code of Conduct||Yes|