Hi Tomi, Thank you for the patch. On Tuesday 28 Mar 2017 16:07:52 Tomi Valkeinen wrote: > From: Hemant Hariyani <hemanthariyani@xxxxxx> > > Add support for render nodes in omap driver and allow required > ioctls to be accessible via render nodes. But the OMAP DSS doesn't perform rendering... This seems an abuse of render nodes, I think the API should instead be implemented by the GPU driver. > This enables unprivileged clients to allocate resources like GEM buffers > for rendering their content into. Mode setting (KMS ioctls) is not > allowed using render nodes. These buffers are then shared with > a previleged process (e.g compositor) that has mode setting access. > > An example of this use case is Android where the hardware composer is > the only master and has mode setting access. Every other client then > uses render node(e.g /dev/dri/renderD128 to allocate and use its buffers. > > Signed-off-by: Hemant Hariyani <hemanthariyani@xxxxxx> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> > --- > drivers/gpu/drm/omapdrm/omap_drv.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c > b/drivers/gpu/drm/omapdrm/omap_drv.c index fe83efbbf127..ce0a1c04403d > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_drv.c > +++ b/drivers/gpu/drm/omapdrm/omap_drv.c > @@ -629,12 +629,18 @@ static int ioctl_gem_info(struct drm_device *dev, void > *data, } > > static const struct drm_ioctl_desc ioctls[DRM_COMMAND_END - > DRM_COMMAND_BASE] = { - DRM_IOCTL_DEF_DRV(OMAP_GET_PARAM, ioctl_get_param, > DRM_AUTH), > - DRM_IOCTL_DEF_DRV(OMAP_SET_PARAM, ioctl_set_param, > DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(OMAP_GEM_NEW, > ioctl_gem_new, DRM_AUTH), > - DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_PREP, ioctl_gem_cpu_prep, DRM_AUTH), > - DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_FINI, ioctl_gem_cpu_fini, DRM_AUTH), > - DRM_IOCTL_DEF_DRV(OMAP_GEM_INFO, ioctl_gem_info, DRM_AUTH), > + DRM_IOCTL_DEF_DRV(OMAP_GET_PARAM, ioctl_get_param, > + DRM_AUTH | DRM_RENDER_ALLOW), > + DRM_IOCTL_DEF_DRV(OMAP_SET_PARAM, ioctl_set_param, > + DRM_AUTH | DRM_MASTER | DRM_ROOT_ONLY), > + DRM_IOCTL_DEF_DRV(OMAP_GEM_NEW, ioctl_gem_new, > + DRM_AUTH | DRM_RENDER_ALLOW), > + DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_PREP, ioctl_gem_cpu_prep, > + DRM_AUTH | DRM_RENDER_ALLOW), > + DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_FINI, ioctl_gem_cpu_fini, > + DRM_AUTH | DRM_RENDER_ALLOW), > + DRM_IOCTL_DEF_DRV(OMAP_GEM_INFO, ioctl_gem_info, > + DRM_AUTH | DRM_RENDER_ALLOW), > }; > > /* > @@ -724,7 +730,7 @@ static const struct file_operations omapdriver_fops = { > > static struct drm_driver omap_drm_driver = { > .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | > - DRIVER_ATOMIC, > + DRIVER_ATOMIC | DRIVER_RENDER, > .open = dev_open, > .lastclose = dev_lastclose, > #ifdef CONFIG_DEBUG_FS -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel