Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44d847b7 authored by David Herrmann's avatar David Herrmann
Browse files

drm: init TTM dev_mapping in ttm_bo_device_init()



With dev->anon_inode we have a global address_space ready for operation
right from the beginning. Therefore, there is no need to do a delayed
setup with TTM. Instead, set dev_mapping during initialization in
ttm_bo_device_init() and remove any "if (dev_mapping)" conditions.

Cc: Dave Airlie <airlied@redhat.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
parent 6796cb16
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -259,7 +259,9 @@ int ast_mm_init(struct ast_private *ast)

	ret = ttm_bo_device_init(&ast->ttm.bdev,
				 ast->ttm.bo_global_ref.ref.object,
				 &ast_bo_driver, DRM_FILE_PAGE_OFFSET,
				 &ast_bo_driver,
				 dev->anon_inode->i_mapping,
				 DRM_FILE_PAGE_OFFSET,
				 true);
	if (ret) {
		DRM_ERROR("Error initialising bo driver; %d\n", ret);
@@ -324,7 +326,6 @@ int ast_bo_create(struct drm_device *dev, int size, int align,
	}

	astbo->bo.bdev = &ast->ttm.bdev;
	astbo->bo.bdev->dev_mapping = dev->anon_inode->i_mapping;

	ast_ttm_placement(astbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);

+3 −1
Original line number Diff line number Diff line
@@ -225,7 +225,9 @@ int bochs_mm_init(struct bochs_device *bochs)

	ret = ttm_bo_device_init(&bochs->ttm.bdev,
				 bochs->ttm.bo_global_ref.ref.object,
				 &bochs_bo_driver, DRM_FILE_PAGE_OFFSET,
				 &bochs_bo_driver,
				 bochs->dev->anon_inode->i_mapping,
				 DRM_FILE_PAGE_OFFSET,
				 true);
	if (ret) {
		DRM_ERROR("Error initialising bo driver; %d\n", ret);
+3 −2
Original line number Diff line number Diff line
@@ -259,7 +259,9 @@ int cirrus_mm_init(struct cirrus_device *cirrus)

	ret = ttm_bo_device_init(&cirrus->ttm.bdev,
				 cirrus->ttm.bo_global_ref.ref.object,
				 &cirrus_bo_driver, DRM_FILE_PAGE_OFFSET,
				 &cirrus_bo_driver,
				 dev->anon_inode->i_mapping,
				 DRM_FILE_PAGE_OFFSET,
				 true);
	if (ret) {
		DRM_ERROR("Error initialising bo driver; %d\n", ret);
@@ -329,7 +331,6 @@ int cirrus_bo_create(struct drm_device *dev, int size, int align,
	}

	cirrusbo->bo.bdev = &cirrus->ttm.bdev;
	cirrusbo->bo.bdev->dev_mapping = dev->anon_inode->i_mapping;

	cirrus_ttm_placement(cirrusbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);

+3 −2
Original line number Diff line number Diff line
@@ -259,7 +259,9 @@ int mgag200_mm_init(struct mga_device *mdev)

	ret = ttm_bo_device_init(&mdev->ttm.bdev,
				 mdev->ttm.bo_global_ref.ref.object,
				 &mgag200_bo_driver, DRM_FILE_PAGE_OFFSET,
				 &mgag200_bo_driver,
				 dev->anon_inode->i_mapping,
				 DRM_FILE_PAGE_OFFSET,
				 true);
	if (ret) {
		DRM_ERROR("Error initialising bo driver; %d\n", ret);
@@ -324,7 +326,6 @@ int mgag200_bo_create(struct drm_device *dev, int size, int align,
	}

	mgabo->bo.bdev = &mdev->ttm.bdev;
	mgabo->bo.bdev->dev_mapping = dev->anon_inode->i_mapping;

	mgag200_ttm_placement(mgabo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);

+0 −2
Original line number Diff line number Diff line
@@ -228,8 +228,6 @@ nouveau_gem_ioctl_new(struct drm_device *dev, void *data,
	struct nouveau_bo *nvbo = NULL;
	int ret = 0;

	drm->ttm.bdev.dev_mapping = drm->dev->anon_inode->i_mapping;

	if (!pfb->memtype_valid(pfb, req->info.tile_flags)) {
		NV_ERROR(cli, "bad page flags: 0x%08x\n", req->info.tile_flags);
		return -EINVAL;
Loading