On Thu, May 12, 2005 at 10:59:50AM -0400, Adam Jackson wrote: > On Thursday 12 May 2005 03:13, Dave Airlie wrote: > > Just missed most of this, but we do have drm_device_is_agp(dev) in the > > drm, only the CVS radeon uses this at present as the DDX can tell it > > also... > > > > But on Linux it just does.. > > pci_find_capability(dev->pdev, PCI_CAP_ID_AGP); > > > > which sounds like your chip says it is AGP but is connected over a PCI > > bus.. > > The PCI G450s are funky. The chip itself is AGP, but the AGP bus it's on > only > extends out to the PCI-AGP bridge chip on the card itself. In other words: > > Host Bridge --[PCI]-- G450 Bridge ==[AGP]== G450 > > So pci_find_capability isn't right, because it really is an AGP device, > there's just no accessible GART. Fortunately the bridge chip is known to be > sane (ie, appears topologically between the GPU chip and the host bridge), > so > he should be able to walk the bus towards the root, find his bridge, and > fall > back to PCI operation based on that. > > Or at least that's how I remember the discussion going, right Ian?
This rang a bell.. The ATI FireGL drivers have some funky agpgart workaround, though it looks prone to false-positives.. agp_generic_agp_v2_enable() contains this addition.. #ifdef FGL_FIX /* AGP 1x or 2x or 4x - at least one of this list */ /* mga g450 pci can be uncovered this way */ if (!(scratch & 7)) continue; #endif /* FGL_FIX */ ... #ifdef FGL_FIX /* set AGP enable bit - only if a valid mode was determined */ /* (a way to unhide mga g450 pci) */ if (command & 7) #endif Dave ------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel