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
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel