Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes

From: Emil Velikov
Date: Fri Aug 03 2018 - 08:35:46 EST


Hi Martin,

On 1 August 2018 at 15:24, Martin Fuzzey <martin.fuzzey@xxxxxxxxxxxxxx> wrote:
> Hi,
>
> I am running into the same problem using etnaviv on i.MX6 under Android 8.1
>
> The mesa etnaviv code uses CREATE_DUMB / MAP_DUMB for the scanout buffers
> and is called from the surfaceflinger process.
>
> But, under Android 8.1 drm_hwcomposer runs in a seperate process to
> surfaceflinger.
> Since drm_hwcomposer needs to use the KMS API it must be the DRM master,
> that means that surface flinger cannot be DRM master too.
>
> Adding a render node to the imx drm device and configuring mesa to user
> fixes
> the problem but requires the render node to have access rights to use
> CREATE_DUMB
> / MAP_DUMB.
>
>
> Here is my full patch:
>
> Make imx-drm export a render node so that mesa can use it to allocate
>
Let's start with the not-so obvious question:
Why does one open the imx as render node?

Of the top of my head:
There is nothing in egl/android that should require an authenticated device.
Hence, using a card node should be fine - the etnaviv code opens the
render node it needs.

It's been a while since I looked at the imx/etna code, so I may be
missing something.

HTH
Emil