diff options
| -rw-r--r-- | linux-core/drmP.h | 1 | ||||
| -rw-r--r-- | linux-core/drm_agpsupport.c | 8 | ||||
| -rw-r--r-- | shared-core/i915_dma.c | 1 | 
3 files changed, 10 insertions, 0 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index ac3ca4d2..c014eddf 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -1133,6 +1133,7 @@ extern int drm_agp_free_memory(DRM_AGP_MEM * handle);  extern int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start);  extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);  extern struct drm_ttm_backend *drm_agp_init_ttm(struct drm_device *dev); +extern void drm_agp_chipset_flush(struct drm_device *dev);  				/* Stub support (drm_stub.h) */  extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,  		     struct drm_driver *driver); diff --git a/linux-core/drm_agpsupport.c b/linux-core/drm_agpsupport.c index b68efc64..8c7f570e 100644 --- a/linux-core/drm_agpsupport.c +++ b/linux-core/drm_agpsupport.c @@ -650,4 +650,12 @@ struct drm_ttm_backend *drm_agp_init_ttm(struct drm_device *dev)  }  EXPORT_SYMBOL(drm_agp_init_ttm); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) +void drm_agp_flush_chipset(struct drm_device *dev) +{ +	agp_flush_chipset(dev->agp->bridge); +} +EXPORT_SYMBOL(drm_agp_flush_chipset); +#endif +  #endif				/* __OS_HAS_AGP */ diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c index 5d0c0001..18c3f0f0 100644 --- a/shared-core/i915_dma.c +++ b/shared-core/i915_dma.c @@ -1043,6 +1043,7 @@ static int i915_execbuffer(struct drm_device *dev, void *data,  	/* make sure all previous memory operations have passed */  	DRM_MEMORYBARRIER(); +	drm_agp_chipset_flush(dev);  	/* submit buffer */  	batch->start = buffers[num_buffers-1]->offset;  | 
