[PATCH 2/2] drm/tiny: Add ofdrm for Open Firmware framebuffers
Michal Suchánek
msuchanek at suse.de
Thu May 19 04:51:56 AEST 2022
Hello,
On Wed, May 18, 2022 at 08:30:06PM +0200, Thomas Zimmermann wrote:
> Open Firmware provides basic display output via the 'display' node.
> DT platform code already provides a device that represents the node's
> framebuffer. Add a DRM driver for the device. The display mode and
> color format is pre-initialized by the system's firmware. Runtime
> modesetting via DRM is not possible. The display is useful during
> early boot stages or as error fallback.
>
> Similar functionality is already provided by fbdev's offb driver,
> which is insufficient for modern userspace. The old driver includes
> support for BootX device tree, which can be found on old 32-bit
> PowerPC Macintosh systems. If these are still in use, the
> functionality can be added to ofdrm or implemented in a new
> driver. As with simepldrm, the fbdev driver cannot be selected is
> ofdrm is already enabled.
>
> Two noteable points about the driver:
>
> * Reading the framebuffer aperture from the device tree is not
> reliable on all systems. Ofdrm takes the heuristics and a comment
> from offb to pick the correct range.
>
> * No resource management may be tied to the underlying PCI device.
> Otherwise the handover to the native driver will fail with a resource
> conflict. PCI management is therefore done as part of the platform
> device's cleanup.
>
> The driver has been tested on qemu's ppc64le emulation. The device
> hand-over has been tested with bochs.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> ---
> MAINTAINERS | 1 +
> drivers/gpu/drm/tiny/Kconfig | 12 +
> drivers/gpu/drm/tiny/Makefile | 1 +
> drivers/gpu/drm/tiny/ofdrm.c | 748 ++++++++++++++++++++++++++++++++++
> drivers/video/fbdev/Kconfig | 1 +
> 5 files changed, 763 insertions(+)
> create mode 100644 drivers/gpu/drm/tiny/ofdrm.c
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 43d833273ae9..090cbe1aa5e3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -6395,6 +6395,7 @@ L: dri-devel at lists.freedesktop.org
> S: Maintained
> T: git git://anongit.freedesktop.org/drm/drm-misc
> F: drivers/gpu/drm/drm_aperture.c
> +F: drivers/gpu/drm/tiny/ofdrm.c
> F: drivers/gpu/drm/tiny/simpledrm.c
> F: include/drm/drm_aperture.h
>
> diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
> index 627d637a1e7e..0bc54af42e7f 100644
> --- a/drivers/gpu/drm/tiny/Kconfig
> +++ b/drivers/gpu/drm/tiny/Kconfig
> @@ -51,6 +51,18 @@ config DRM_GM12U320
> This is a KMS driver for projectors which use the GM12U320 chipset
> for video transfer over USB2/3, such as the Acer C120 mini projector.
>
> +config DRM_OFDRM
> + tristate "Open Firmware display driver"
> + depends on DRM && MMU && PPC
Does this build with !PCI?
The driver uses some PCI functions, so it might possibly break with
randconfig. I don't think there are practical !PCI PPC configurations.
Thanks
Michal
More information about the Linuxppc-dev
mailing list