Hi Dave and Daniel,
This PR brings a cleanup and modernization series for Exynos DRM,
focused on fbdev emulation and DMA/GEM internals.
Major changes are:
- migrate fbdev allocation to DRM client buffers,
- switch fbdev geometry calculations to DRM format helpers with tighter
checks,
- fix screen_buffer handling to match fb_info semantics,
- adopt DRM core DMA tracking and remove redundant Exynos-side code.
Please kindly let me know if there is any problem.
Thanks,
Inki Dae
The following changes since commit 512f9f150f367176fa9e5f4613b4863409a6f686:
Merge tag 'drm-msm-next-2026-04-02' of https://gitlab.freedesktop.org/drm/msm
into drm-next (2026-04-03 18:57:00 +1000)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos
tags/exynos-drm-next-for-v7.2
for you to fetch changes up to b9bb45aeaf028450c753782280922d31120b342a:
drm/exynos: Make exynos_drm_framebuffer_init() an internal interface
(2026-05-21 23:11:46 +0900)
----------------------------------------------------------------
New feature and cleanup for Exynos fbdev
- Move fbdev emulation to DRM client buffers
. Reuses standard ADDFB2/GEM paths and simplifies cleanup.
- Use DRM format helpers for geometry and size
. Applies 4CC-based format/pitch/size calculation with stronger checks and
PAGE_SIZE alignment.
. Sets screen_size and fix.smem_len from actual allocated size.
Exynos DRM internal cleanup
- Adopt DRM core DMA tracking and drop redundant code
. Removes private DMA tracking, exynos_drm_gem_prime_import(), and obsolete
iommu_dma_init_domain() stub.
- Reduce duplication and tighten local scope
. Replaces MAX_FB_BUFFER with DRM_FORMAT_MAX_PLANES.
. Drops redundant exynos_drm_gem.size and internalizes local-only helpers.
Bug fix for Exynos fbdev behavior
- Fix screen_buffer offset handling
. Keeps screen_buffer at framebuffer base and avoids applying scanout offset.
. Includes Fixes and stable Cc for backporting.
----------------------------------------------------------------
Chen-Yu Tsai (5):
drm/exynos: Internalize exynos_drm_gem_free_object()
drm/exynos: Use DRM core dedicated DMA device tracking facility
drm/exynos: Drop exynos_drm_gem.size field
drm/exynos: Drop MAX_FB_BUFFER in favor of DRM_FORMAT_MAX_PLANES
drm/exynos/dma: Drop iommu_dma_init_domain() stub
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_dma.c | 15 ++--
drivers/gpu/drm/exynos/exynos_drm_drv.c | 1 -
drivers/gpu/drm/exynos/exynos_drm_drv.h | 9 ---
drivers/gpu/drm/exynos/exynos_drm_fb.c | 9 +--
drivers/gpu/drm/exynos/exynos_drm_fb.h | 10 +--
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 111 +++++++++++++++---------------
drivers/gpu/drm/exynos/exynos_drm_g2d.c | 13 ++--
drivers/gpu/drm/exynos/exynos_drm_gem.c | 50 ++++++--------
drivers/gpu/drm/exynos/exynos_drm_gem.h | 8 ---
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 2 +-
drivers/gpu/drm/exynos/exynos_drm_ipp.h | 4 +-
11 files changed, 103 insertions(+), 129 deletions(-)