On 15 November 2010 15:10, Dan Nicholson <[email protected]> wrote:
>> This patch selects nouveau by default for NVIDIA GPUs
>> Also, don't treat DRI setup failure as an error for nouveau.
>
> Can you please split this patch in two parts since there are two
> completely orthogonal changes? Also, it would be good if the commit
> message explained why these changes are necessary. See:

here you are:

This patch default to a proper driver for nvidia cards considering that:
- nv development is over and it's no more supported by nivdia who
"owns" most of its commiters
- nouveau offer far more features than nv: EXA, XRender, XV and even
3D, features needed by
  modern desktop
  (see http://nouveau.freedesktop.org/wiki/FeatureMatrix)

Worse, nv doesn't actually support all cars than xorg claims it supports
just look at nv_driver.c::NVIsSupported()
In Mandriva, we've our own PCI listing to driver mapping where we regularly
have to use something other than nv for nivida card since nv didn't supported
them (see eg: https://qa.mandriva.com/show_bug.cgi?id=59178)

Sometimes I had to send patches to NVidia's Aaron to get nv to
actually recognize
some card. See eg https://qa.mandriva.com/show_bug.cgi?id=50398
=> https://bzattachment.mandriva.com/attachment.cgi?id=15325

See also 
http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/ldetect-lst/branches/2010.0/lst/pcitable?revision=267140&view=markup
and 
http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/ldetect-lst/branches/2010.0/lst/Cards%2B?revision=267139&view=markup
then look for "NVIDIA cards not working with nv"
And that just for the cards we got report about. And we were not the
Linux distro with the most users!

Since anything older than NV0[345] is not supported by nouveau

What this patch does
- select "vesa" driver for very old cards
- still select "nv" driver for very slighty newer old cards
- select "nouveau" driver for anything newer
Orginal patch from Fedora X Ninjas <[email protected]>
[PATCH 07/17] autoconfig: select nouveau by default for NVIDIA GPUs


This patch default to a proper driver for nvidia cards considering that:
- nv development is over and it's no more supported by nivdia who "owns" most of its commiters
- nouveau offer far more features than nv: EXA, XRender, XV and even 3D, features needed by
  modern desktop
  (see http://nouveau.freedesktop.org/wiki/FeatureMatrix)

Worse, nv doesn't actually support all cars than xorg claims it supports
just look at nv_driver.c::NVIsSupported()
In Mandriva, we've our own PCI listing to driver mapping where we regularly
have to use something other than nv for nivida card since nv didn't supported
them (see eg: https://qa.mandriva.com/show_bug.cgi?id=59178)

Sometimes I had to send patches to NVidia's Aaron to get nv to actually recognize
some card. See eg https://qa.mandriva.com/show_bug.cgi?id=50398
=> https://bzattachment.mandriva.com/attachment.cgi?id=15325

See also http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/ldetect-lst/branches/2010.0/lst/pcitable?revision=267140&view=markup
and http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/ldetect-lst/branches/2010.0/lst/Cards%2B?revision=267139&view=markup
then look for "NVIDIA cards not working with nv"
And that just for the cards we got report about. And we were not the Linux distro with the most users!

Since anything older than NV0[345] is not supported by nouveau

What this patch does
- select "vesa" driver for very old cards
- still select "nv" driver for very slighty newer old cards
- select "nouveau" driver for anything newer

diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 74016af..9c296f5 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -1118,7 +1118,23 @@ videoPtrToDriverList(struct pci_device *dev,
 	    break;
 	case 0x102b:		    driverList[0] = "mga";	break;
 	case 0x10c8:		    driverList[0] = "neomagic"; break;
-	case 0x10de: case 0x12d2:   driverList[0] = "nv";	break;
+	case 0x10de: case 0x12d2:
+	    switch (dev->device_id) {
+	    /* NV1 */
+	    case 0x0008:
+	    case 0x0009:
+		driverList[0] = "vesa";
+		break;
+	    /* NV3 */
+	    case 0x0018:
+	    case 0x0019:
+		driverList[0] = "nv";
+		break;
+	    default:
+		driverList[0] = "nouveau";
+		break;
+	    }
+	    break;
 	case 0x1106:		    driverList[0] = "openchrome"; break;
         case 0x1b36:		    driverList[0] = "qxl"; break;
 	case 0x1163:		    driverList[0] = "rendition"; break;
-- 
1.7.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to