aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0830-drm-amdgpu-Reconcile-code-to-upstream.patch
blob: 39913ff2cbe5e9798bef704350c7eb856867e631 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
From fe2bd8e7356e063fbb593150e5d222c2822aa130 Mon Sep 17 00:00:00 2001
From: Kent Russell <kent.russell@amd.com>
Date: Wed, 18 Jan 2017 12:21:03 -0500
Subject: [PATCH 0830/4131] drm/amdgpu: Reconcile code to upstream

Replace bo->adev with amdgpu_ttm_adev(bo->tbo.bdev), replace entry.robj
with bo, remove references to gem_base

Change-Id: Ia215797588ec78070ac1aa904712f46b46535caf
Signed-off-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c      | 2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c  | 9 ++++++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index b243d30..2e7292c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -1482,7 +1482,7 @@ amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser,
 		struct amdgpu_bo_list_entry *lobj;
 
 		lobj = &parser->bo_list->array[i];
-		if (!lobj->bo_va || lobj->bo_va->bo->adev != parser->adev)
+		if (!lobj->bo_va || amdgpu_ttm_adev(lobj->bo_va->base.bo->tbo.bdev) != parser->adev)
 			continue;
 
 		list_for_each_entry(mapping, &lobj->bo_va->valids, list) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 06a1b82..4723df7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -181,7 +181,7 @@ int amdgpu_crtc_page_flip_target(struct drm_crtc *crtc,
 	obj = new_amdgpu_fb->obj;
 	new_abo = gem_to_amdgpu_bo(obj);
 
-	if (new_rbo->adev != adev) {
+	if (amdgpu_ttm_adev(new_abo->tbo.bdev) != adev) {
 		DRM_ERROR("Foreign BOs not allowed in the display engine\n");
 		r = -EINVAL;
 		goto cleanup;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index 1a22368..69b2f39 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -336,6 +336,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
 				struct amdgpu_bo **bo_ptr)
 {
 	struct amdgpu_bo *bo;
+	struct amdgpu_gem_object *gobj;
 	enum ttm_bo_type type;
 	unsigned long page_align;
 	u64 initial_bytes_moved, bytes_moved;
@@ -360,7 +361,13 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev,
 	bo = kzalloc(sizeof(struct amdgpu_bo), GFP_KERNEL);
 	if (bo == NULL)
 		return -ENOMEM;
-	r = drm_gem_object_init(adev->ddev, &bo->gem_base, size);
+	gobj = kzalloc(sizeof(struct amdgpu_gem_object), GFP_KERNEL);
+	if (unlikely(!gobj)) {
+		amdgpu_bo_unref(&bo);
+		return -ENOMEM;
+	}
+
+	r = drm_gem_object_init(adev->ddev, &gobj->base, size);
 	if (unlikely(r)) {
 		kfree(bo);
 		return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 48e1ca2..8ec6d92 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1569,7 +1569,7 @@ static int amdgpu_ttm_bo_access_vram(struct amdgpu_bo *abo,
 				     unsigned long offset,
 				     void *buf, int len, int write)
 {
-	struct amdgpu_device *adev = abo->adev;
+	struct amdgpu_device *adev = amdgpu_ttm_adev(abo->tbo.bdev);
 	uint64_t pos = amdgpu_bo_gpu_offset(abo) + offset;
 	uint32_t value = 0;
 	unsigned long flags;
-- 
2.7.4