mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 00:39:48 +00:00
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
3 changed files with 7 additions and 1 deletions
|
@ -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 a new issue