[PATCH v6 8/8] gpu: drm: meson: Fix DMA max segment size for DMABUF imports
From: Anand Moon
Date: Sat May 30 2026 - 05:47:42 EST
When using hardware-accelerated video decoding via v4l2m2m-copy with mpv or
similar players, the video decoder driver (`meson_vdec`) exports contiguous
memory allocations as DMABUFs. When these buffers are subsequently imported
by the display controller driver (`meson-drm`) for rendering via the GPU or
compositor, the DMA API throws constraint validation warnings.
- Call dma_set_max_seg_size(dev, UINT_MAX) to allow large
scatter‑gather segments.
- Ensures the DRM core and canvas allocations can handle
full sized buffers without hitting DMA‑API warnings.
This aligns the driver with common DMA setup practices and
avoids failures on platforms with strict segment limits.
Cc: Nicolas Dufresne <nicolas@xxxxxxxxxxxx>
Signed-off-by: Anand Moon <linux.amoon@xxxxxxxxx>
---
drivers/gpu/drm/meson/meson_drv.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 49ff9f1f16d3..8570add8b831 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -247,6 +247,8 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
goto free_drm;
}
+ dma_set_max_seg_size(dev, UINT_MAX);
+
ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_osd1);
if (ret)
goto free_drm;
--
2.50.1