Message ID | 20250321104615.31809-1-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Kieran Bingham |
Headers | show |
Series | drm: renesas: rz-du: Support dmabuf import | expand |
Hi Laurent, Quoting Laurent Pinchart (2025-03-21 10:46:15) > The rz-du driver uses GEM DMA helpers, but does not implement the > drm_driver .gem_prime_import_sg_table operation. This prevents > importing dmabufs. Fix it by implementing the missing operation using > the DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() helper macro. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > --- > Kieran, would you be able to test this ? Thanks! This patch fixes display for me on the RZ/V2H Kakip to render images from the Raspberry Pi v3 camera (IMX708) directly on the Raspberry Pi v2 7" Touch screen display. Without this patch I get the following errors (reconfirmed now) "Unable to import framebuffer dmabuf: Invalid argument" And with this patch - I can stream directly to the display in RGB888 with the extra enablement from Lad Prabhakar for DSI. Thanks, Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Tested-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> # RZ/V2H + DSI > --- > drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > index cbd9b9841267..5e40f0c1e7b0 100644 > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > @@ -79,7 +79,7 @@ DEFINE_DRM_GEM_DMA_FOPS(rzg2l_du_fops); > > static const struct drm_driver rzg2l_du_driver = { > .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, > - .dumb_create = rzg2l_du_dumb_create, > + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(rzg2l_du_dumb_create), > DRM_FBDEV_DMA_DRIVER_OPS, > .fops = &rzg2l_du_fops, > .name = "rzg2l-du", > > base-commit: 9e75b6ef407fee5d4ed8021cd7ddd9d6a8f7b0e8 > -- > Regards, > > Laurent Pinchart >
Hi Laurent, Thanks for your patch! On Fri, Mar 21, 2025 at 12:46:15PM +0200, Laurent Pinchart wrote: > The rz-du driver uses GEM DMA helpers, but does not implement the > drm_driver .gem_prime_import_sg_table operation. This prevents > importing dmabufs. Fix it by implementing the missing operation using > the DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() helper macro. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> I've tested this patch on RZ/G3E DSI. I can see performance increment. Thanks! Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> > --- > Kieran, would you be able to test this ? > --- > drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > index cbd9b9841267..5e40f0c1e7b0 100644 > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > @@ -79,7 +79,7 @@ DEFINE_DRM_GEM_DMA_FOPS(rzg2l_du_fops); > > static const struct drm_driver rzg2l_du_driver = { > .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, > - .dumb_create = rzg2l_du_dumb_create, > + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(rzg2l_du_dumb_create), > DRM_FBDEV_DMA_DRIVER_OPS, > .fops = &rzg2l_du_fops, > .name = "rzg2l-du", > > base-commit: 9e75b6ef407fee5d4ed8021cd7ddd9d6a8f7b0e8 > -- > Regards, > > Laurent Pinchart > Thanks & Regards, Tommaso
Hi Laurent, > -----Original Message----- > From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > Sent: 21 March 2025 10:46 > Subject: [PATCH] drm: renesas: rz-du: Support dmabuf import > > The rz-du driver uses GEM DMA helpers, but does not implement the > drm_driver .gem_prime_import_sg_table operation. This prevents importing dmabufs. Fix it by > implementing the missing operation using the DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() helper macro. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com> Cheers, Biju > --- > Kieran, would you be able to test this ? > --- > drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c b/drivers/gpu/drm/renesas/rz- > du/rzg2l_du_drv.c > index cbd9b9841267..5e40f0c1e7b0 100644 > --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c > @@ -79,7 +79,7 @@ DEFINE_DRM_GEM_DMA_FOPS(rzg2l_du_fops); > > static const struct drm_driver rzg2l_du_driver = { > .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, > - .dumb_create = rzg2l_du_dumb_create, > + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(rzg2l_du_dumb_create), > DRM_FBDEV_DMA_DRIVER_OPS, > .fops = &rzg2l_du_fops, > .name = "rzg2l-du", > > base-commit: 9e75b6ef407fee5d4ed8021cd7ddd9d6a8f7b0e8 > -- > Regards, > > Laurent Pinchart
diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c index cbd9b9841267..5e40f0c1e7b0 100644 --- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c @@ -79,7 +79,7 @@ DEFINE_DRM_GEM_DMA_FOPS(rzg2l_du_fops); static const struct drm_driver rzg2l_du_driver = { .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, - .dumb_create = rzg2l_du_dumb_create, + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(rzg2l_du_dumb_create), DRM_FBDEV_DMA_DRIVER_OPS, .fops = &rzg2l_du_fops, .name = "rzg2l-du",
The rz-du driver uses GEM DMA helpers, but does not implement the drm_driver .gem_prime_import_sg_table operation. This prevents importing dmabufs. Fix it by implementing the missing operation using the DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() helper macro. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> --- Kieran, would you be able to test this ? --- drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: 9e75b6ef407fee5d4ed8021cd7ddd9d6a8f7b0e8