drm/radeon: fixup issue with radeon and PAT support.
With new userspace libpciaccess we can get a conflicting mapping on the PCIE GART table in the video RAM. Always try and map it _wc. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
50515af207
commit
242e3df80b
|
@ -167,6 +167,11 @@ void drm_core_ioremap(struct drm_map *map, struct drm_device *dev)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_core_ioremap);
|
EXPORT_SYMBOL(drm_core_ioremap);
|
||||||
|
|
||||||
|
void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev)
|
||||||
|
{
|
||||||
|
map->handle = ioremap_wc(map->offset, map->size);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_core_ioremap_wc);
|
||||||
void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev)
|
void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev)
|
||||||
{
|
{
|
||||||
if (!map->handle || !map->size)
|
if (!map->handle || !map->size)
|
||||||
|
|
|
@ -1154,7 +1154,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.mapping.size =
|
||||||
dev_priv->gart_info.table_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.addr =
|
||||||
dev_priv->gart_info.mapping.handle;
|
dev_priv->gart_info.mapping.handle;
|
||||||
|
|
||||||
|
|
|
@ -1089,6 +1089,7 @@ extern int drm_mm_remove_space_from_tail(struct drm_mm *mm, unsigned long size);
|
||||||
extern int drm_mm_add_space_to_tail(struct drm_mm *mm, unsigned long size);
|
extern int drm_mm_add_space_to_tail(struct drm_mm *mm, unsigned long size);
|
||||||
|
|
||||||
extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev);
|
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);
|
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,
|
static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev,
|
||||||
|
|
Loading…
Reference in New Issue