From: Thomas Zimmermann <tzimmermann@suse.de>
To: airlied@linux.ie, daniel@ffwll.ch, b.zolnierkie@samsung.com
Cc: linux-fbdev@vger.kernel.org,
Thomas Zimmermann <tzimmermann@suse.de>,
dri-devel@lists.freedesktop.org
Subject: [RFC][PATCH 00/11] DRM driver for fbdev devices
Date: Tue, 26 Mar 2019 10:17:33 +0100 [thread overview]
Message-ID: <20190326091744.11542-1-tzimmermann@suse.de> (raw)
Hi,
this RFC patch set implements fbdevdrm, a DRM driver on top of fbdev
drivers. I'd appreciate feedback on the code and the idea in general.
The fbdev subsystem is considered legacy and will probably be removed at
some point. This would mean the loss of a signifanct number of drivers.
Some of the affected hardware is probably not in use any longer, but some
hardware is still around and provides good(-enough) framebuffers.
OTOH, userspace programs that want to support a wide range of graphics
hardware have to implement support for both DRM and fbdev interfaces. Such
software would benefit from a single interface.
The fbdevdrm driver provides a way of running drivers for old and new
hardware from the DRM subsystem and interfaces.
It's not intended to add new features or drivers to fbdev. Instead fbdevdrm
is supposed to be a template for converting fbdev drivers to DRM. It contains
a number of comments (labeled 'DRM porting note') that explain the required
steps. The license is fairly liberal to allow for combination with existing
fbdev code.
I tested the current patch set with the following drivers: atyfb, aty128fb,
matroxfb, pm2fb, s3fb, savagefb, sisfb, tdfxfb and tridentfb. I was able to
successfully start with fbcon enabled and then run weston or X.
Thomas Zimmermann (11):
drm/fbdevdrm: Add driver skeleton
drm/fbdevdrm: Add fbdevdrm device
drm/fbdevdrm: Add memory management
drm/fbdevdrm: Add file operations
drm/fbdevdrm: Add GEM and dumb interfaces
drm/fbdevdrm: Add modesetting infrastructure
drm/fbdevdrm: Add DRM <-> fbdev pixel-format conversion
drm/fbdevdrm: Add mode conversion DRM <-> fbdev
drm/fbdevdrm: Add primary plane
drm/fbdevdrm: Add CRTC
drm/fbdevdrm: Detect and validate display modes
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/fbdevdrm/Kconfig | 13 +
drivers/gpu/drm/fbdevdrm/Makefile | 11 +
drivers/gpu/drm/fbdevdrm/fbdevdrm_bo.c | 276 ++++++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_bo.h | 58 ++
drivers/gpu/drm/fbdevdrm/fbdevdrm_device.c | 96 +++
drivers/gpu/drm/fbdevdrm/fbdevdrm_device.h | 55 ++
drivers/gpu/drm/fbdevdrm/fbdevdrm_drv.c | 347 +++++++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_format.c | 441 ++++++++++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_format.h | 26 +
drivers/gpu/drm/fbdevdrm/fbdevdrm_modes.c | 195 +++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_modes.h | 53 ++
drivers/gpu/drm/fbdevdrm/fbdevdrm_modeset.c | 746 ++++++++++++++++++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_modeset.h | 38 +
drivers/gpu/drm/fbdevdrm/fbdevdrm_primary.c | 498 +++++++++++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_primary.h | 27 +
drivers/gpu/drm/fbdevdrm/fbdevdrm_ttm.c | 202 ++++++
drivers/gpu/drm/fbdevdrm/fbdevdrm_ttm.h | 35 +
19 files changed, 3120 insertions(+)
create mode 100644 drivers/gpu/drm/fbdevdrm/Kconfig
create mode 100644 drivers/gpu/drm/fbdevdrm/Makefile
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_bo.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_bo.h
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_device.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_device.h
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_drv.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_format.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_format.h
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_modes.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_modes.h
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_modeset.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_modeset.h
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_primary.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_primary.h
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_ttm.c
create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_ttm.h
--
2.21.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2019-03-26 9:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-26 9:17 Thomas Zimmermann [this message]
2019-03-26 9:17 ` [PATCH 01/11] drm/fbdevdrm: Add driver skeleton Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 02/11] drm/fbdevdrm: Add fbdevdrm device Thomas Zimmermann
2019-03-26 16:03 ` Adam Jackson
2019-03-27 7:55 ` Thomas Zimmermann
2019-03-27 8:03 ` Daniel Vetter
2019-03-26 9:17 ` [PATCH 03/11] drm/fbdevdrm: Add memory management Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 04/11] drm/fbdevdrm: Add file operations Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 05/11] drm/fbdevdrm: Add GEM and dumb interfaces Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 06/11] drm/fbdevdrm: Add modesetting infrastructure Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 07/11] drm/fbdevdrm: Add DRM <-> fbdev pixel-format conversion Thomas Zimmermann
2019-03-26 16:29 ` Ville Syrjälä
2019-03-27 8:28 ` Thomas Zimmermann
2019-03-27 10:00 ` Ville Syrjälä
2019-03-26 9:17 ` [PATCH 08/11] drm/fbdevdrm: Add mode conversion DRM <-> fbdev Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 09/11] drm/fbdevdrm: Add primary plane Thomas Zimmermann
2019-03-26 13:33 ` Mathieu Malaterre
2019-03-26 13:57 ` Thomas Zimmermann
2019-03-27 9:37 ` Thomas Zimmermann
2019-04-02 7:08 ` Mathieu Malaterre
2019-03-26 9:17 ` [PATCH 10/11] drm/fbdevdrm: Add CRTC Thomas Zimmermann
2019-03-26 9:17 ` [PATCH 11/11] drm/fbdevdrm: Detect and validate display modes Thomas Zimmermann
2019-03-26 16:47 ` Ville Syrjälä
2019-03-26 18:20 ` Daniel Vetter
2019-03-27 8:31 ` Thomas Zimmermann
2019-03-26 14:53 ` [RFC][PATCH 00/11] DRM driver for fbdev devices Daniel Vetter
2019-03-27 9:10 ` Thomas Zimmermann
2019-03-27 9:41 ` Daniel Vetter
2019-03-27 9:55 ` Michel Dänzer
2019-03-27 10:58 ` Daniel Vetter
2019-03-27 14:46 ` Thomas Zimmermann
2019-03-27 17:05 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190326091744.11542-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@linux.ie \
--cc=b.zolnierkie@samsung.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-fbdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox