Re: [RFC 3/6] drm: add SimpleDRM driver
From: Stephen Warren <hidden>
Date: 2013-06-26 20:58:09
Also in:
dri-devel, lkml
On 06/24/2013 04:27 PM, David Herrmann wrote:
The SimpleDRM driver binds to simple-framebuffer devices and provides a DRM/KMS API. It provides only a single CRTC+encoder+connector combination plus one initial mode. Userspace can create one dumb-buffer and attach it to the CRTC. Only if the buffer is destroyed, a new buffer can be created. The buffer is directly mapped into user-space, so we have only resources for a single buffer. Otherwise, shadow buffers plus damage-request would be needed.
quoted hunk ↗ jump to hunk
diff --git a/drivers/gpu/drm/simpledrm/Kconfig b/drivers/gpu/drm/simpledrm/Kconfig
+config DRM_SIMPLEDRM + tristate "Simple firmware framebuffer DRM driver" + depends on DRM && !FB_SIMPLE + help + SimpleDRM can run on all systems with pre-initialized graphics + hardware. It uses a framebuffer that was initialized during + firmware boot. No page-flipping, modesetting or other advanced + features are available. However, other DRM drivers can be loaded + later and take over from SimpleDRM if they provide real hardware + support. + + SimpleDRM supports: "simple-framebuffer" DeviceTree objects, x86 VESA + BIOS Extensions (VBE), EFI framebuffers
DT objects, yes. I'm not sure it's quite true to say it actually directly supports VBE or EFI FBs; it's more the code in patch 2/6 that supports those. I guess this is a bit nit-picky of a distinction though.
quoted hunk ↗ jump to hunk
diff --git a/drivers/gpu/drm/simpledrm/simpledrm_drv.c b/drivers/gpu/drm/simpledrm/simpledrm_drv.c
+static int parse_dt(struct platform_device *pdev, + struct simplefb_platform_data *mode)
+ strlcpy(mode->format, format, sizeof(mode->format));
Even here, I believe the DT data sticks around so just copying the pointer should be safe. It'd be worth validating that for sure though. I didn't review the DRM stuff here since I'm not at all familiar with DRM.