This patchset explores the idea of adding a DRM text mode
(like VGA text mode) to get an alternative to fbcon/fbdev.

David Hermann has done alot of work on a fbcon replacement:
- drm: add kernel-log renderer (Mar 2014)[1]
- kmscon:
  development started Nov 2011
  added to systemd Oct 2014
  removed from systemd Jul 2015[2]

Since this work seems to have stalled, I propose an alternative solution
to this problem that will also give VT console support while we're waiting
for a userspace console.

The idea is that the driver provides a modeset like with the fbdev emulation
code, and from this a text buffer representation is made. The console code
can now write to this text buffer and ask for the text buffer to be
flushed/rendered to the pixel buffer.

In this hack/implementation of the idea, I have just hijacked a CMA backed
fbdev framebuffer to keep it simple.
I have reused the default buffer format that VT uses.
Getting panic handling to actually work, seems to be a challenge as Daniel
describes on the DRMJanitors page[3].

Is this idea of a DRM text mode worth developing further?


Noralf.

[1] https://lwn.net/Articles/589858/
[2] https://github.com/systemd/systemd/pull/747
[3] https://www.x.org/wiki/DRMJanitors/#makepanichandlingwork


Noralf Trønnes (3):
  drm: Add support for text framebuffer
  drm/text: Add panic and boot console support
  drm/text: Add VT console support

 drivers/gpu/drm/Makefile                    |   1 +
 drivers/gpu/drm/drm-text/Makefile           |   5 +
 drivers/gpu/drm/drm-text/drm-text-buffer.c  | 340 ++++++++++++++++++++++++++++
 drivers/gpu/drm/drm-text/drm-text-console.c | 205 +++++++++++++++++
 drivers/gpu/drm/drm-text/drm-text-debugfs.c | 295 ++++++++++++++++++++++++
 drivers/gpu/drm/drm-text/drm-text-vt.c      | 197 ++++++++++++++++
 drivers/gpu/drm/drm-text/drm-text.h         |  99 ++++++++
 7 files changed, 1142 insertions(+)
 create mode 100644 drivers/gpu/drm/drm-text/Makefile
 create mode 100644 drivers/gpu/drm/drm-text/drm-text-buffer.c
 create mode 100644 drivers/gpu/drm/drm-text/drm-text-console.c
 create mode 100644 drivers/gpu/drm/drm-text/drm-text-debugfs.c
 create mode 100644 drivers/gpu/drm/drm-text/drm-text-vt.c
 create mode 100644 drivers/gpu/drm/drm-text/drm-text.h

--
2.8.2

Reply via email to