You know, not to be a stickler here, but it irks me sometimes when people do what Luc did here.  I want to make something clear, as a long-time SLACKWARE LINUX user.  RedHat = Linux, but Linux != RedHat.  RedHat may have gained fame by building a Linux distribution that mainstreamed Linux briefly, but let&#39;s not forget that Gentoo, Slackware, Debian, Ubuntu, Novell SuSe, Oracle, and a host of minor Linux distributions exist, too, and RedHat Linux is no longer a true mainstream Linux.  As a Slackware user, I get tired of having those commercial and &quot;OPEN&quot; drivers only available in rpm&#39;s.  Could someone please start making sure the drivers are available in tar.gz or tar.bz2 formats?  In fact, to satisfy my inner geek, I would prefer that the drivers only be available in that format, with build scripts for the different distributions.  If you want to make it easy for the non-technical Linux users (are there any of those who really exist anyhow?) make a quick install script that checks certain things for the distribution that the system may have and builds and installs the correct, stable version of the driver for the operating system.  (I may even build one stable version, then try tweaking different feature configurations to fit my preferences and hardware capabilities, as any good developer does.)  I would be happy to give some time to those build scripts, though I never built either an RPM or a DEB package.  If we can do that, maybe it would make everybody happy.  Standardize with &quot;you must release code in tar.gz format&quot; and then specify what needs to go into the tar.gz file, like documentation, sample code for testing the driver functions, etc.  If you want to specify that they need to comply with the terms of GPL, LGPL, Apache Commons, or whatever licensing mechanism, so be it.  One more thing.  The idea of protecting the IP of the driver or the hardware is a moot point.  If they want to protect the hardware, they patent it.  The patent application is required to contain detailed information about how the algorithm works, or about how the hardware works.  It does not include the exact implementation in code, so the memory locations in the patented hardware and the &#39;reverse engineered&#39; copy hardware will not match, but the algorithms are patented, and the hardware functionality is patented.  If another company releases a derivative form of that algorithm or hardware, which can be proven by performance or functionality (input A, output B in the same method in the same time, with the same processor loading, etc.) then there is a patent infringement case.  In other words, by patenting the hardware and algorithms, the companies open themselves up for more IP theft than by releaseing open source drivers.  What difference does the OS make?<br>
<br><div class="gmail_quote">On Fri, Jul 2, 2010 at 5:58 AM, Luc Verhaegen <span dir="ltr">&lt;<a href="mailto:libv@skynet.be">libv@skynet.be</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Fri, Jul 02, 2010 at 08:10:40AM +1000, Dave Airlie wrote:<br>
&gt; Now this is just my opinion as maintainer of the drm, and doesn&#39;t<br>
&gt; reflect anyone or any official policy, I&#39;ve also no idea if Linus<br>
&gt; agrees or not.<br>
&gt;<br>
&gt; We are going to start to see a number of companies in the embedded<br>
&gt; space submitting 3D drivers for mobile devices to the kernel. I&#39;d like<br>
&gt; to clarify my position once so they don&#39;t all come asking the same<br>
&gt; questions.<br>
&gt;<br>
&gt; If you aren&#39;t going to create an open userspace driver (either MIT or<br>
&gt; LGPL) then don&#39;t waste time submitting a kernel driver to me.<br>
&gt;<br>
&gt; My reasons are as follows, the thing is you can probably excuse some<br>
&gt; of these on a point by point basis, but you need to justify why closed<br>
&gt; userspace on all points.<br>
&gt;<br>
&gt; a) licensing, Alan Cox pointed this out before, if you wrote a GPL<br>
&gt; kernel driver, then wrote a closed userspace on top, you open up a<br>
&gt; while world of derived work issues. Can the userspace operate on a<br>
&gt; non-GPL kernel without major modifications etc. This is a can of worms<br>
&gt; I&#39;d rather not enter into, and there are a few workarounds.<br>
<br>
</div>Yes, this a mess indeed.<br>
<br>
But i fear that this a mess that cannot be fixed, in its entirety, in a single shot.<br>
<br>
Qualcomm making this code available already clearly shows the will and determination of<br>
some people inside qualcomm to do The Right Thing.<br>
<br>
This is Qualcomms first big step on the graphics side, where IP is always amongst the<br>
heaviest. I am certain that Qualcomm wants to go further, but since Qualcomm most<br>
likely licenses some parts of their graphics, Qualcomm can only open up those bits that<br>
they truly own, and then use mainly market/sales-volume driven pressure to get the<br>
original IP owner to play along.<br>
<br>
You should also take into account who Jordan is. He is one of the guys who worked the<br>
Geode before AMD decided to drop that, which is when he got hired by Qualcomm. He worked on<br>
both the graphics drivers and on (then still) LinuxBIOS. I know that redhat has no<br>
intention of going near coreboot, but in my world one cannot become more free, hardware<br>
wise, than supporting coreboot. This gives me very good hopes that this is a serious<br>
attempt by qualcomm to go somewhere, and that this is not some lame attempt to grab<br>
marketing attention.<br>
<br>
Now that you slammed the door on these guys (and on others in the process), what do you<br>
think the response would be? Where will this get us to in the end?<br>
<br>
The licensing should get sorted, and that is of course something for Qualcomm to do,<br>
or prove that it has been sorted already.<br>
<div class="im"><br>
&gt; b) verifying the sanity of the userspace API.<br>
&gt; 1. Security: GPUs can do a lot of damage if left at home alone, since<br>
&gt; mostly you are submitting command streams unverified into the GPU and<br>
&gt; won&#39;t tell us what they mean, there is little way we can work out if<br>
&gt; the GPU is going to over-write my passwd file to get 5 fps more in<br>
&gt; quake. Now newer GPUs have at least started having MMUs, but again<br>
&gt; we&#39;ve no idea if that is the only way they work without docs or a lot<br>
&gt; of trust.<br>
<br>
</div>This makes me wonder: Why do you even care?<br>
<br>
If redhat was working with qualcomm, you would not have taken this stance here at all.<br>
<br>
Since redhat is then not working with qualcomm, why is this then your responsibility?<br>
<br>
Or is denouncing responsibility exactly the reason for your mail here?<br>
<br>
If so, why couldn&#39;t you have stated &quot;please guys, have fun with what you are doing, but<br>
i will not be responsible for it&quot; in a different way.<br>
<br>
What you achieved now is that people will stop bothering with even freeing this,<br>
putting us even further back.<br>
<br>
But i fully understand where you are coming from: redhat only wants to seriously back<br>
the server market, so free software graphics on arm based SOCs probably should not be<br>
encouraged too much. As per usual, big statements are then more important than actual<br>
free software advancement.<br>
<div class="im"><br>
&gt; 2. General API suitability and versioning. How do we check that API is<br>
&gt; sane wrt to userspace, if we can&#39;t verify the userspace. What happens<br>
&gt; if the API has lots of 32/64 compat issues or things like that, and<br>
&gt; when we fix them the binary userspace breaks? How do we know, how do<br>
&gt; we test etc. What happens if a security issue forces us to break the<br>
&gt; userspace API? how do we fix the userspace driver and test to confirm?<br>
&gt;<br>
&gt; c) supplying docs in lieu of an open userspace<br>
&gt; If you were to fully document the GPU so we could verify the<br>
&gt; security/api aspects it leaves us in the position of writing our own<br>
&gt; driver. Now writing that driver on top of the current kernel driver<br>
&gt; would probably limit any innovation, and most people would want to<br>
&gt; write a new kernel driver from scratch. Now we end up with two drivers<br>
&gt; fighting, how do we pick which one to load at boot? can we ever do a<br>
&gt; generic distro kernel for that device (assuming ARM ever solves that<br>
&gt; issue).<br>
<br>
</div>I think that by now you should have realized that this is not how it works for<br>
things as complex as graphics drivers. If, for instance, you hadn&#39;t been given a<br>
wildcard by your employer, you would never have gone close to AMD hw unless for some<br>
spare time poking and occasional bugfixing.<br>
<br>
Also, before you throw this up: for nouveau, documentation would take part of the fun,<br>
the attraction and excitement, away. Provide docs, and then only a few very industrious<br>
people will remain, and they will also get weary after a while, or they get hired by<br>
someone to continue their work, bringing us right back to the corporate world.<br>
<br>
Now, it is interesting how you now are demanding documentation. When did recent and<br>
relevant hw documentation happen for ATI? This pretty much died together when the<br>
ATI&lt;-&gt;SuSE relationship died, as the cooperation of SuSE and AMD is how documentation<br>
was forced out of ATI in the first place, and ATI more and more found ways to get rid<br>
of this responsibility, or overhead as bridgman would most likely name it.<br>
<br>
I think it even should be possible to find statements of you and/or alex, and<br>
definitely bridgman, where it is claimed that for ATI, &quot;the code is the documentation&quot;.<br>
<br>
If you are backing this reasoning for ATI, what is wrong with this code being the<br>
documentation for Qualcomm?<br>
<br>
This point about documentation at least does not seem very credible coming from you,<br>
with your history, especially with respect to the ATI story.<br>
<div class="im"><br>
&gt; I&#39;ve also noticed a trend to just reinvent the whole wheel instead of<br>
&gt; writing a drm/kms driver and having that as the API, again maintainer<br>
&gt; nightmares are made of this.<br>
<br>
</div>Heh, in some of these cases, not having looked at this code in detail yet, such code<br>
predates kms, and drm might not have provided what was needed. Not wanting to<br>
completely diminish the responsibility of qualcomm (or the other companies who are<br>
working or are forced to work like this), you might want to think about providing<br>
stable and fitting infrastructure, not just stating that something is how _you_ are<br>
doing it and declaring that the law.<br>
<br>
Next to that, the IP heavy part that cannot be released (yet?) might be some blob that<br>
is used on both linux, windows, ximbian, etc. The concept of talking to some os<br>
independent blob through some painful and ever-shifting layer is not that alien even to<br>
you, with your staunch defending of ATIs AtomBIOS over more direct modesetting.<br>
<br>
Also, from where i sit, you complaining about people reinventing the wheel does bring<br>
me some bitter amusement.<br>
<br>
As a conclusion: With you having sent this mail, guess what the guys at qualcomm, and<br>
most likely imagination technologies and ARM as well (i think we can already discount<br>
nvidia -- they are far too adept at producing solid closed source drivers -- to<br>
desktop users satisfaction too), will do next?<br>
<br>
We already squandered the free software desktop (on x86), and part of the<br>
responsibility for that is with the graphics hw support (and the radeon versus radeonhd<br>
story shows nicely how to go about squandering such things). What i see here is that<br>
you clearly want to go down a similar street with the now blossoming ARM market.<br>
<br>
Thanks alot,<br>
<font color="#888888"><br>
Luc Verhaegen.<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
dri-devel mailing list<br>
<a href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/dri-devel</a><br>
</div></div></blockquote></div><br>