diff options
author | Dave Airlie <airlied@linux.ie> | 2008-07-15 16:18:22 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2008-07-15 16:18:22 +1000 |
commit | abdd523c759a5e19e733e3b544c2f1bcaa7a0b9a (patch) | |
tree | 169afb7ae7c1699c0d2438f27e06773ed9be68eb | |
parent | 76c8e19a29d635d2c62937a381ab33014cfe6cea (diff) |
drm: add fix for PAT on radeon with 2.6.26
-rw-r--r-- | linux-core/drmP.h | 1 | ||||
-rw-r--r-- | linux-core/drm_compat.h | 4 | ||||
-rw-r--r-- | linux-core/drm_memory.c | 8 | ||||
-rw-r--r-- | shared-core/radeon_cp.c | 2 |
4 files changed, 14 insertions, 1 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 00db3000..331f3ac5 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -1255,6 +1255,7 @@ static inline struct drm_mm *drm_get_mm(struct drm_mm_node *block) } extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev); +extern void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev); extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev); static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev, diff --git a/linux-core/drm_compat.h b/linux-core/drm_compat.h index 30834f33..3339219d 100644 --- a/linux-core/drm_compat.h +++ b/linux-core/drm_compat.h @@ -362,4 +362,8 @@ extern struct page *drm_vm_sg_nopage(struct vm_area_struct *vma, unsigned long address, int *type); #endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)) +#define drm_core_ioremap_wc drm_core_ioremap +#endif + #endif diff --git a/linux-core/drm_memory.c b/linux-core/drm_memory.c index 75f5b521..6af73c8d 100644 --- a/linux-core/drm_memory.c +++ b/linux-core/drm_memory.c @@ -348,6 +348,14 @@ void drm_core_ioremap(struct drm_map *map, struct drm_device *dev) } EXPORT_SYMBOL_GPL(drm_core_ioremap); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev) +{ + map->handle = ioremap_wc(map->offset, map->size); +} +#endif + void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev) { if (!map->handle || !map->size) diff --git a/shared-core/radeon_cp.c b/shared-core/radeon_cp.c index 9b1ea855..9bfda005 100644 --- a/shared-core/radeon_cp.c +++ b/shared-core/radeon_cp.c @@ -1158,7 +1158,7 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init) dev_priv->gart_info.mapping.size = dev_priv->gart_info.table_size; - drm_core_ioremap(&dev_priv->gart_info.mapping, dev); + drm_core_ioremap_wc(&dev_priv->gart_info.mapping, dev); dev_priv->gart_info.addr = dev_priv->gart_info.mapping.handle; |