On Monday, 19 December 2016, Thierry Reding <<a href="mailto:thierry.reding@gmail.com">thierry.reding@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Nov 30, 2016 at 02:44:36PM +0100, Christian Gmeiner wrote:<br>
[...]<br>
> +static struct pipe_screen *imx_open_render_node(struct renderonly *ro)<br>
> +{<br>
> +   return etna_drm_screen_create_<wbr>rendernode(ro);<br>
> +}<br>
<br>
Patch 2/3 never made it into my inbox for some reason, and had to find<br>
it in some archives. I'll have to resort to commenting on the code here.<br>
>From what I saw, etna_drm_screen_create_<wbr>rendernode() hard-codes the GPU<br>
render node (to /dev/dri/renderD128, I think). It's a little brittle for<br>
obvious reasons, but I think you might be able to get away with it,<br>
depending on the SoC.<br>
<br>
On Tegra we have a bunch of people that stick discrete GPUs into the<br>
PCIe slot and run a second instance of Nouveau on that. It's an<br>
interesting use-case, but it also has the drawback of creating a second<br>
renderD device. What's more, it uses the same kernel driver, so hard-<br>
coding the device node is going to give us a 50-50 chance on average<br>
that we get the right one. Back when I had written the original proposal<br>
I had also coded a heuristic that would walk sysfs and select the render<br>
node that was on the same bus as the card node. This was before Emil had<br>
removed the dependency on udev, but I've rewritten that code to work<br>
with Emil's drmDevice*() API, which needs some fleshing out[0].<br>
<br>
Out of curiosity, is this something that could happen on i.MX devices as<br>
well? Or even if not i.MX, I'm fairly sure that there are other SoCs<br>
that have a Vivante GPU and a PCI slot that people could use to stick<br>
big GPUs into, so you may run into the same issue eventually.<br>
<br></blockquote><div>Thanks Thierry for the nice write-up. Must admit that I was feeling a bit lazy.</div><div><br></div><div>Considering the ~ok odds and the fact that we don't have platform support for the drm*Device helpers I'm inclined to have this fixed after the merge.</div><div><br></div><div>Let's have etna and(?) tegra and sort bugs during the RCs ;-)</div><div><br></div><div>Emil</div><div>P.S. Pardon the html formatting</div>