Merge branch 'drm-next-4.9' of git://people.freedesktop.org/~agd5f/linux into drm-next
More radeon and amdgpu changes for 4.9. Highlights: - Initial SI support for amdgpu (controlled by a Kconfig option) - misc ttm cleanups - runtimepm fixes - S3/S4 fixes - power improvements - lots of code cleanups and optimizations * 'drm-next-4.9' of git://people.freedesktop.org/~agd5f/linux: (151 commits) drm/ttm: remove cpu_address member from ttm_tt drm/radeon/radeon_device: remove unused function drm/amdgpu: clean function declarations in amdgpu_ttm.c up drm/amdgpu: use the new ring ib and dma frame size callbacks (v2) drm/amdgpu/vce3: add ring callbacks for ib and dma frame size drm/amdgpu/vce2: add ring callbacks for ib and dma frame size drm/amdgpu/vce: add common ring callbacks for ib and dma frame size drm/amdgpu/uvd6: add ring callbacks for ib and dma frame size drm/amdgpu/uvd5: add ring callbacks for ib and dma frame size drm/amdgpu/uvd4.2: add ring callbacks for ib and dma frame size drm/amdgpu/sdma3: add ring callbacks for ib and dma frame size drm/amdgpu/sdma2.4: add ring callbacks for ib and dma frame size drm/amdgpu/cik_sdma: add ring callbacks for ib and dma frame size drm/amdgpu/si_dma: add ring callbacks for ib and dma frame size drm/amdgpu/gfx8: add ring callbacks for ib and dma frame size drm/amdgpu/gfx7: add ring callbacks for ib and dma frame size drm/amdgpu/gfx6: add ring callbacks for ib and dma frame size drm/amdgpu/ring: add an interface to get dma frame and ib size drm/amdgpu/sdma3: drop unused functions drm/amdgpu/gfx6: drop gds_switch callback ...
This commit is contained in:
@@ -61,7 +61,7 @@ void qxl_ttm_placement_from_domain(struct qxl_bo *qbo, u32 domain, bool pinned)
|
||||
if (domain == QXL_GEM_DOMAIN_VRAM)
|
||||
qbo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_VRAM | pflag;
|
||||
if (domain == QXL_GEM_DOMAIN_SURFACE)
|
||||
qbo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_PRIV0 | pflag;
|
||||
qbo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_PRIV | pflag;
|
||||
if (domain == QXL_GEM_DOMAIN_CPU)
|
||||
qbo->placements[c++].flags = TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM | pflag;
|
||||
if (!c)
|
||||
@@ -151,7 +151,7 @@ void *qxl_bo_kmap_atomic_page(struct qxl_device *qdev,
|
||||
|
||||
if (bo->tbo.mem.mem_type == TTM_PL_VRAM)
|
||||
map = qdev->vram_mapping;
|
||||
else if (bo->tbo.mem.mem_type == TTM_PL_PRIV0)
|
||||
else if (bo->tbo.mem.mem_type == TTM_PL_PRIV)
|
||||
map = qdev->surface_mapping;
|
||||
else
|
||||
goto fallback;
|
||||
@@ -191,7 +191,7 @@ void qxl_bo_kunmap_atomic_page(struct qxl_device *qdev,
|
||||
|
||||
if (bo->tbo.mem.mem_type == TTM_PL_VRAM)
|
||||
map = qdev->vram_mapping;
|
||||
else if (bo->tbo.mem.mem_type == TTM_PL_PRIV0)
|
||||
else if (bo->tbo.mem.mem_type == TTM_PL_PRIV)
|
||||
map = qdev->surface_mapping;
|
||||
else
|
||||
goto fallback;
|
||||
@@ -311,7 +311,7 @@ int qxl_bo_check_id(struct qxl_device *qdev, struct qxl_bo *bo)
|
||||
|
||||
int qxl_surf_evict(struct qxl_device *qdev)
|
||||
{
|
||||
return ttm_bo_evict_mm(&qdev->mman.bdev, TTM_PL_PRIV0);
|
||||
return ttm_bo_evict_mm(&qdev->mman.bdev, TTM_PL_PRIV);
|
||||
}
|
||||
|
||||
int qxl_vram_evict(struct qxl_device *qdev)
|
||||
|
@@ -168,7 +168,7 @@ static int qxl_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
|
||||
man->default_caching = TTM_PL_FLAG_CACHED;
|
||||
break;
|
||||
case TTM_PL_VRAM:
|
||||
case TTM_PL_PRIV0:
|
||||
case TTM_PL_PRIV:
|
||||
/* "On-card" video ram */
|
||||
man->func = &ttm_bo_manager_func;
|
||||
man->gpu_offset = 0;
|
||||
@@ -235,7 +235,7 @@ static int qxl_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
|
||||
mem->bus.base = qdev->vram_base;
|
||||
mem->bus.offset = mem->start << PAGE_SHIFT;
|
||||
break;
|
||||
case TTM_PL_PRIV0:
|
||||
case TTM_PL_PRIV:
|
||||
mem->bus.is_iomem = true;
|
||||
mem->bus.base = qdev->surfaceram_base;
|
||||
mem->bus.offset = mem->start << PAGE_SHIFT;
|
||||
@@ -376,7 +376,7 @@ static void qxl_bo_move_notify(struct ttm_buffer_object *bo,
|
||||
qbo = to_qxl_bo(bo);
|
||||
qdev = qbo->gem_base.dev->dev_private;
|
||||
|
||||
if (bo->mem.mem_type == TTM_PL_PRIV0 && qbo->surface_id)
|
||||
if (bo->mem.mem_type == TTM_PL_PRIV && qbo->surface_id)
|
||||
qxl_surface_evict(qdev, qbo, new_mem ? true : false);
|
||||
}
|
||||
|
||||
@@ -422,7 +422,7 @@ int qxl_ttm_init(struct qxl_device *qdev)
|
||||
DRM_ERROR("Failed initializing VRAM heap.\n");
|
||||
return r;
|
||||
}
|
||||
r = ttm_bo_init_mm(&qdev->mman.bdev, TTM_PL_PRIV0,
|
||||
r = ttm_bo_init_mm(&qdev->mman.bdev, TTM_PL_PRIV,
|
||||
qdev->surfaceram_size / PAGE_SIZE);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed initializing Surfaces heap.\n");
|
||||
@@ -445,7 +445,7 @@ int qxl_ttm_init(struct qxl_device *qdev)
|
||||
void qxl_ttm_fini(struct qxl_device *qdev)
|
||||
{
|
||||
ttm_bo_clean_mm(&qdev->mman.bdev, TTM_PL_VRAM);
|
||||
ttm_bo_clean_mm(&qdev->mman.bdev, TTM_PL_PRIV0);
|
||||
ttm_bo_clean_mm(&qdev->mman.bdev, TTM_PL_PRIV);
|
||||
ttm_bo_device_release(&qdev->mman.bdev);
|
||||
qxl_ttm_global_fini(qdev);
|
||||
DRM_INFO("qxl: ttm finalized\n");
|
||||
@@ -489,7 +489,7 @@ static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
|
||||
if (i == 0)
|
||||
qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
|
||||
else
|
||||
qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
|
||||
qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV].priv;
|
||||
|
||||
}
|
||||
return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
|
||||
|
Reference in New Issue
Block a user