All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel@ffwll.ch, airlied@linux.ie,
	maarten.lankhorst@linux.intel.com, kraxel@redhat.com,
	corbet@lwn.net, lgirdwood@gmail.com, broonie@kernel.org,
	sam@ravnborg.org, robh@kernel.org, emil.l.velikov@gmail.com,
	geert+renesas@glider.be, hdegoede@redhat.com,
	bluescreen_avenger@verizon.net, gregkh@linuxfoundation.org,
	dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH v4 0/9] drm: Support simple-framebuffer devices and firmware fbs
Date: Thu, 29 Apr 2021 12:24:03 +0200	[thread overview]
Message-ID: <20210429102403.drx4dn6mq2fo467y@gilmour> (raw)
In-Reply-To: <20210416090048.11492-1-tzimmermann@suse.de>

[-- Attachment #1: Type: text/plain, Size: 3125 bytes --]

On Fri, Apr 16, 2021 at 11:00:39AM +0200, Thomas Zimmermann wrote:
> This patchset adds support for simple-framebuffer platform devices and
> a handover mechanism for native drivers to take-over control of the
> hardware.
> 
> The new driver, called simpledrm, binds to a simple-frambuffer platform
> device. The kernel's boot code creates such devices for firmware-provided
> framebuffers, such as EFI-GOP or VESA. Typically the BIOS, UEFI or boot
> loader sets up the framebuffers. Description via device tree is also an
> option.
> 
> Simpledrm is small enough to be linked into the kernel. The driver's main
> purpose is to provide graphical output during the early phases of the boot
> process, before the native DRM drivers are available. Native drivers are
> typically loaded from an initrd ram disk. Occationally simpledrm can also
> serve as interim solution on graphics hardware without native DRM driver.
> 
> So far distributions rely on fbdev drivers, such as efifb, vesafb or
> simplefb, for early-boot graphical output. However fbdev is deprecated and
> the drivers do not provide DRM interfaces for modern userspace.
> 
> Patches 1 and 2 prepare the DRM format helpers for simpledrm.
> 
> Patches 4 to 8 add the simpledrm driver. It's build on simple DRM helpers
> and SHMEM. It supports 16-bit, 24-bit and 32-bit RGB framebuffers. During
> pageflips, SHMEM buffers are copied into the framebuffer memory, similar
> to cirrus or mgag200. The code in patches 7 and 8 handles clocks and
> regulators. It's based on the simplefb drivers, but has been modified for
> DRM.
> 
> Patches 3 and 9 add a hand-over mechanism. Simpledrm acquires it's
> framebuffer's I/O-memory range and can be hot-unplugged by a native driver.
> The native driver will remove simpledrm before taking over the hardware.
> The removal is integrated into existing helpers, so existing drivers use
> it automatically.
> 
> I've also been working on fastboot support (i.e., flicker-free booting).
> This requires state-readout from simpledrm via generic interfaces, as
> outlined in [1]. I do have some prototype code, but it will take a while
> to get this ready. Simpledrm will then support it.
> 
> I've tested simpledrm with x86 EFI and VESA framebuffers, which both work
> reliably. The fbdev console and Weston work automatically. Xorg requires
> manual configuration of the device. Xorgs current modesetting driver does
> not work with both, platform and PCI device, for the same physical
> hardware. Once configured, X11 works. I looked into X11, but couldn't see
> an easy way of fixing the problem. With the push towards Wayland+Xwayland
> I expect the problem to become a non-issue soon. Additional testing has
> been reported at [2].
> 
> One cosmetical issue is that simpledrm's device file is card0 and the
> native driver's device file is card1. After simpledrm has been kicked out,
> only card1 is left. This does not seem to be a practical problem however.

Provided that patches 4 to 8 are squashed when merged:
Acked-by: Maxime Ripard <maxime@cerno.tech>

Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime@cerno.tech>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: bluescreen_avenger@verizon.net, geert+renesas@glider.be,
	corbet@lwn.net, airlied@linux.ie, emil.l.velikov@gmail.com,
	linux-doc@vger.kernel.org, lgirdwood@gmail.com,
	dri-devel@lists.freedesktop.org,
	virtualization@lists.linux-foundation.org, hdegoede@redhat.com,
	broonie@kernel.org, kraxel@redhat.com,
	gregkh@linuxfoundation.org, sam@ravnborg.org
Subject: Re: [PATCH v4 0/9] drm: Support simple-framebuffer devices and firmware fbs
Date: Thu, 29 Apr 2021 12:24:03 +0200	[thread overview]
Message-ID: <20210429102403.drx4dn6mq2fo467y@gilmour> (raw)
In-Reply-To: <20210416090048.11492-1-tzimmermann@suse.de>


[-- Attachment #1.1: Type: text/plain, Size: 3125 bytes --]

On Fri, Apr 16, 2021 at 11:00:39AM +0200, Thomas Zimmermann wrote:
> This patchset adds support for simple-framebuffer platform devices and
> a handover mechanism for native drivers to take-over control of the
> hardware.
> 
> The new driver, called simpledrm, binds to a simple-frambuffer platform
> device. The kernel's boot code creates such devices for firmware-provided
> framebuffers, such as EFI-GOP or VESA. Typically the BIOS, UEFI or boot
> loader sets up the framebuffers. Description via device tree is also an
> option.
> 
> Simpledrm is small enough to be linked into the kernel. The driver's main
> purpose is to provide graphical output during the early phases of the boot
> process, before the native DRM drivers are available. Native drivers are
> typically loaded from an initrd ram disk. Occationally simpledrm can also
> serve as interim solution on graphics hardware without native DRM driver.
> 
> So far distributions rely on fbdev drivers, such as efifb, vesafb or
> simplefb, for early-boot graphical output. However fbdev is deprecated and
> the drivers do not provide DRM interfaces for modern userspace.
> 
> Patches 1 and 2 prepare the DRM format helpers for simpledrm.
> 
> Patches 4 to 8 add the simpledrm driver. It's build on simple DRM helpers
> and SHMEM. It supports 16-bit, 24-bit and 32-bit RGB framebuffers. During
> pageflips, SHMEM buffers are copied into the framebuffer memory, similar
> to cirrus or mgag200. The code in patches 7 and 8 handles clocks and
> regulators. It's based on the simplefb drivers, but has been modified for
> DRM.
> 
> Patches 3 and 9 add a hand-over mechanism. Simpledrm acquires it's
> framebuffer's I/O-memory range and can be hot-unplugged by a native driver.
> The native driver will remove simpledrm before taking over the hardware.
> The removal is integrated into existing helpers, so existing drivers use
> it automatically.
> 
> I've also been working on fastboot support (i.e., flicker-free booting).
> This requires state-readout from simpledrm via generic interfaces, as
> outlined in [1]. I do have some prototype code, but it will take a while
> to get this ready. Simpledrm will then support it.
> 
> I've tested simpledrm with x86 EFI and VESA framebuffers, which both work
> reliably. The fbdev console and Weston work automatically. Xorg requires
> manual configuration of the device. Xorgs current modesetting driver does
> not work with both, platform and PCI device, for the same physical
> hardware. Once configured, X11 works. I looked into X11, but couldn't see
> an easy way of fixing the problem. With the push towards Wayland+Xwayland
> I expect the problem to become a non-issue soon. Additional testing has
> been reported at [2].
> 
> One cosmetical issue is that simpledrm's device file is card0 and the
> native driver's device file is card1. After simpledrm has been kicked out,
> only card1 is left. This does not seem to be a practical problem however.

Provided that patches 4 to 8 are squashed when merged:
Acked-by: Maxime Ripard <maxime@cerno.tech>

Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2021-04-29 10:24 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-16  9:00 [PATCH v4 0/9] drm: Support simple-framebuffer devices and firmware fbs Thomas Zimmermann
2021-04-16  9:00 ` Thomas Zimmermann
2021-04-16  9:00 ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 1/9] drm/format-helper: Pass destination pitch to drm_fb_memcpy_dstclip() Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 2/9] drm/format-helper: Add blitter functions Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 3/9] drm/aperture: Add infrastructure for aperture ownership Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 4/9] drm: Add simpledrm driver Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 5/9] drm/simpledrm: Add fbdev emulation Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 6/9] drm/simpledrm: Initialize framebuffer data from device-tree node Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 7/9] drm/simpledrm: Acquire clocks from DT device node Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 8/9] drm/simpledrm: Acquire regulators " Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00 ` [PATCH v4 9/9] drm/simpledrm: Acquire memory aperture for framebuffer Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-16  9:00   ` Thomas Zimmermann
2021-04-19  8:00 ` [PATCH v4 0/9] drm: Support simple-framebuffer devices and firmware fbs Geert Uytterhoeven
2021-04-19  8:00   ` Geert Uytterhoeven
2021-04-19  8:00   ` Geert Uytterhoeven
2021-04-20  8:46   ` Daniel Vetter
2021-04-20  8:46     ` Daniel Vetter
2021-04-20  8:46     ` Daniel Vetter
2021-04-20  9:16     ` Geert Uytterhoeven
2021-04-20  9:16       ` Geert Uytterhoeven
2021-04-20  9:16       ` Geert Uytterhoeven
2021-04-20 11:11       ` Daniel Vetter
2021-04-20 11:11         ` Daniel Vetter
2021-04-20 11:11         ` Daniel Vetter
2021-04-20  9:22     ` Gerd Hoffmann
2021-04-20  9:22       ` Gerd Hoffmann
2021-04-20  9:22       ` Gerd Hoffmann
2021-04-20  9:27       ` Geert Uytterhoeven
2021-04-20  9:27         ` Geert Uytterhoeven
2021-04-20  9:27         ` Geert Uytterhoeven
2021-04-26 12:22         ` Thomas Zimmermann
2021-04-26 12:22           ` Thomas Zimmermann
2021-04-26 12:22           ` Thomas Zimmermann
2021-04-26 19:05           ` Geert Uytterhoeven
2021-04-26 19:05             ` Geert Uytterhoeven
2021-04-26 19:05             ` Geert Uytterhoeven
2021-04-26 12:18     ` Thomas Zimmermann
2021-04-26 12:18       ` Thomas Zimmermann
2021-04-26 12:18       ` Thomas Zimmermann
2021-04-26 15:08       ` Daniel Vetter
2021-04-26 15:08         ` Daniel Vetter
2021-04-26 15:08         ` Daniel Vetter
2021-04-29 10:24 ` Maxime Ripard [this message]
2021-04-29 10:24   ` Maxime Ripard

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=20210429102403.drx4dn6mq2fo467y@gilmour \
    --to=maxime@cerno.tech \
    --cc=airlied@linux.ie \
    --cc=bluescreen_avenger@verizon.net \
    --cc=broonie@kernel.org \
    --cc=corbet@lwn.net \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=emil.l.velikov@gmail.com \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=robh@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=tzimmermann@suse.de \
    --cc=virtualization@lists.linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.