A client buffer holds the DRM framebuffer for an in-kernel DRM client. Until now, exynos created an internal ad-hoc framebuffer for its fbdev emulation, while by-passing the regular interfaces used by user-space compositors.
Convert exynos' fbdev emulation to use client buffers. Replacing the existing code with a client buffer allows for stream-lining exynos code and later also the fbdev helpers. The new framebuffer will be registered against the client's file and will support handles for GEM objects. It is then just another framebuffer within the DRM ecosystem. If all driver's fbdev-emulation helpers can be converted to use client buffers, the emulation's framebuffer handling as a whole can possibly be moved into shared helpers. Patch 1 first fixes a long-standing bug. Patches 2 to 4 convert exynos' fbdev emulation to client buffers. It still allocates a GEM object buffer tailored towards fbdev emulation, but size calculations now use common DRM helpers. Patch 5 cleans up symbol visibility in exynos' fb code. v2: - clean up exynos fb header (Chen-Yu) Thomas Zimmermann (5): drm/exynos: fbdev: Remove offset into screen_buffer drm/exynos: fbdev: Inline exynos_drm_fbdev_update() drm/exynos: fbdev: Calculate buffer geometry with format helpers drm/exynos: fbdev: Use a DRM client buffer drm/exynos: Make exynos_drm_framebuffer_init() an internal interface drivers/gpu/drm/exynos/exynos_drm_fb.c | 3 +- drivers/gpu/drm/exynos/exynos_drm_fb.h | 10 +-- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 101 ++++++++++------------ 3 files changed, 52 insertions(+), 62 deletions(-) base-commit: 94d56a898a2db27f841b17f6966a81ba502fe63c -- 2.54.0
