Re: New DRM driver model - gets rid of DRM() macros!

Ian Romanick
2004-09-28T16:56:59Z

Jon Smirl wrote:

I /should/ be able to look at the code changes sometime this week. In
the mean time, here are some initial comments...

> What are everyone's thoughts on this? There is no technical reason it
> can't be implemented on Linux 2.4/BSD, although I don't see any reason
> to do it for 2.4.

I'm of two minds about this. On the one hand, I agree with you. 2.4 is
in maintainence mode, and making a big change like this to the graphics
driver system is outside that scope. On the other hand, if the 2.4 and
the 2.6 code bases diverge too much, bugs fixed on the 2.6 side are less
likely to be fixed on the 2.4 side. Moreover, with more divergence
between the two, each gets less coverage. I could really go either way
on it.

> Any ideas on how to generate a unique identifier for the core? It
> probably should be regenerated by the Makefile whenever the core
> changes. Personalities would have to match the core identifier. This
> would stop people from loading binary modules that don't match the
> core.

I guess we'd want something like 'drm_core_version_<version number>'.
Each layered driver would just have to reference the matching symbol.
One neat thing about doing this is that we could theoretically make core
modules that support multiple versions of the interal API and export a
drm_core_version_* symbol for each.

I have only one problem with this type of setup. If the user has a
version mismatch, it's not trivially obvious why they aren't getting
direct rendering. There are already a number of ways a user can get
"stuck" like this, and this adds another one. It's not a new problem,
but it is one that needs to be addressed.

> After sometime testing and fixing obvious problems I'll generate a
> patch for the 2.6 kernel and lkml.
>
> [root@smirl linux-2.6]# lsmod | more
> Module Size Used by
> tdfx 2816 0
> sis 10176 0
> mga 56704 0
> i915 16896 0
> via 19428 0
> savage 3840 0
> r128 44672 0
> radeon 70272 0
> drm 59684 8 tdfx,sis,mga,i915,via,savage,r128,radeon

Anyone have a PCI card so that we can test actually using more than one
at a time? In the mean time, I think just having them all load at once
and one of them work is good enough.