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

Reply via email to