A client buffer holds the DRM framebuffer for an in-kernel DRM client. So far, gma500 has created an internal ad-hoc framebuffer for its fbdev emulation, while by-passing the regular interfaces used by user-space compositors.
Replacing the existing code with a client buffer allows for stream- lining gma500 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. This is then just another framebuffer within the DRM ecosystem. As there's still a custom GEM buffer object involved, patch 1 exports an interface to create a client buffer around it. Patches 2 and 3 update size calculation in gma500's fbdev emulation and makes it use the helpers provided by DRM. Patch 4 converts the code to client buffers and patch 5 removes the now-unused framebuffer code. Tested on an Atom N2800 Cedarview system. Thomas Zimmermann (5): drm/client: Export drm_client_buffer_create() drm/gma500: fbdev: Set framebuffer size to GEM object size drm/gma500: fbdev: Calculate buffer geometry with format helpers drm/gma500: fbdev: Use a DRM client buffer drm/gma500: Create framebuffers with drm_gem_fb_create() drivers/gpu/drm/drm_client.c | 3 +- drivers/gpu/drm/gma500/fbdev.c | 101 +++++++++++++------------- drivers/gpu/drm/gma500/framebuffer.c | 104 +++------------------------ drivers/gpu/drm/gma500/psb_drv.h | 6 -- include/drm/drm_client.h | 3 + 5 files changed, 64 insertions(+), 153 deletions(-) -- 2.52.0
