On Tue, Apr 20, 2010 at 04:44:54PM +0300, Ville Syrjälä wrote:
> On Tue, Apr 20, 2010 at 02:31:52PM +0200, gli...@freedesktop.org wrote:
> > From: Jerome Glisse <jgli...@redhat.com>
> > 
> > Convert most AGP chipset to use scratch page as default entries.
> > This help avoiding GPU querying 0 address and trigger computer
> > fault. With KMS and memory manager we bind/unbind AGP memory
> > constantly and it seems that some GPU are still doing AGP
> > traffic even after GPU report being idle with the memory segment.
> > 
> > Tested (radeon GPU KMS + Xorg + compiz + glxgears + quake3) on :
> > - SIS 1039:0001 & 1039:0003
> > - Intel 865 8086:2571
> > 
> > Compile tested for other bridges
> > 
> > V2 enable scratch page on uninorth
> > 
> > Signed-off-by: Jerome Glisse <jgli...@redhat.com>
> <snip>
> > diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c
> > index 73dbf40..cf4dc4c 100644
> > --- a/drivers/char/agp/amd-k7-agp.c
> > +++ b/drivers/char/agp/amd-k7-agp.c
> > @@ -178,6 +179,13 @@ static int amd_create_gatt_table(struct 
> > agp_bridge_data *bridge)
> >             readl(page_dir.remapped+GET_PAGE_DIR_OFF(addr));        /* PCI 
> > Posting. */
> >     }
> >  
> > +   for (i = 0; i < value->num_entries; i++) {
> > +           addr = (i * PAGE_SIZE) + agp_bridge->gart_bus_addr;
> > +           cur_gatt = GET_GATT(addr);
> > +           writel(agp_bridge->scratch_page, cur_gatt+GET_GATT_OFF(addr));
> > +           readl(cur_gatt+GET_GATT_OFF(addr));     /* PCI Posting. */
> > +   }
> 
> Isn't it enough to do a single PCI posting flush after writing all the
> entries?
> 

Yes it should be enough but i cut & paste code of each AGP driver for
consistency.

Cheers,
Jerome
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to