<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Liberation Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Saturday 24 January 2009 01:02:37 you wrote:<br>
> On Fri, 2009-01-23 at 09:16 -0800, Alberto Milone wrote:<br>
> > Dear Aaron,<br>
> ><br>
> ><br>
> > I've noticed that the "nv" driver is not automatically chosen for my<br>
> > Geforce 7300 GT unless I don't specify the "nv" driver in the<br>
> > xorg.conf.<br>
><br>
> Sorry, now that I look at it some more, something else must be wrong.<br>
> The 0x2E2 device ID should have hit the NVGetPCIXpressChip case in<br>
> NVPciProbe:<br>
><br>
>     const CARD32 id = ((dev->device_id & 0xfff0) == 0x00F0 ||<br>
>                        (dev->device_id & 0xfff0) == 0x02E0) ?<br>
>                       NVGetPCIXpressChip(dev) : dev->vendor_id << 16 |<br>
> dev->device_id;<br>
><br>
> and come up with 0x0393.  Can you please put a breakpoint there and see<br>
> what went wrong?<br>
><br>
> -- Aaron<br>
><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>That case loop works well. I made the driver print a warning line right after that point and this is the result:<br>
(WW) NV: Detected device 0x10de0393 (GeForce 7300 GT) at 01@00:00:0<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>The problem is that pci-id of my card (02E2) is not in /usr/share/xserver-xorg/pci/nv.ids<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Without my patch:<br>
:~$ grep 02E2 /usr/share/xserver-xorg/pci/*<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>With my patch:<br>
:~$ grep 02E2 /usr/share/xserver-xorg/pci/*<br>
/usr/share/xserver-xorg/pci/nv.ids:10DE02E2<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>:~$ lspci -n |grep 300<br>
01:00.0 0300: 10de:02e2 (rev a2)<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>This is why, as you can see in autodetection.log X doesn't use "nv" for my card when no driver is specified in the xorg.conf. In manualdetection.log you can see what happens when I set the driver to "nv" manually.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>The NVGetPCIXpressChip case is used when the driver is being loaded but we need to handle this before so that X knows which driver has to be used.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Regards,<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Alberto</p></body></html>