hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/gpu/drm/radeon/radeon_cs.c
....@@ -24,11 +24,17 @@
2424 * Authors:
2525 * Jerome Glisse <glisse@freedesktop.org>
2626 */
27
+
2728 #include <linux/list_sort.h>
28
-#include <drm/drmP.h>
29
+#include <linux/pci.h>
30
+#include <linux/uaccess.h>
31
+
32
+#include <drm/drm_device.h>
33
+#include <drm/drm_file.h>
2934 #include <drm/radeon_drm.h>
30
-#include "radeon_reg.h"
35
+
3136 #include "radeon.h"
37
+#include "radeon_reg.h"
3238 #include "radeon_trace.h"
3339
3440 #define RADEON_CS_MAX_PRIORITY 32u
....@@ -154,7 +160,7 @@
154160 p->relocs[i].allowed_domains = domain;
155161 }
156162
157
- if (radeon_ttm_tt_has_userptr(p->relocs[i].robj->tbo.ttm)) {
163
+ if (radeon_ttm_tt_has_userptr(p->rdev, p->relocs[i].robj->tbo.ttm)) {
158164 uint32_t domain = p->relocs[i].preferred_domains;
159165 if (!(domain & RADEON_GEM_DOMAIN_GTT)) {
160166 DRM_ERROR("Only RADEON_GEM_DOMAIN_GTT is "
....@@ -178,7 +184,7 @@
178184 }
179185
180186 p->relocs[i].tv.bo = &p->relocs[i].robj->tbo;
181
- p->relocs[i].tv.shared = !r->write_domain;
187
+ p->relocs[i].tv.num_shared = !r->write_domain;
182188
183189 radeon_cs_buckets_add(&buckets, &p->relocs[i].tv.head,
184190 priority);
....@@ -190,12 +196,12 @@
190196 p->vm_bos = radeon_vm_get_bos(p->rdev, p->ib.vm,
191197 &p->validated);
192198 if (need_mmap_lock)
193
- down_read(&current->mm->mmap_sem);
199
+ mmap_read_lock(current->mm);
194200
195201 r = radeon_bo_list_validate(p->rdev, &p->ticket, &p->validated, p->ring);
196202
197203 if (need_mmap_lock)
198
- up_read(&current->mm->mmap_sem);
204
+ mmap_read_unlock(current->mm);
199205
200206 return r;
201207 }
....@@ -249,11 +255,11 @@
249255 int r;
250256
251257 list_for_each_entry(reloc, &p->validated, tv.head) {
252
- struct reservation_object *resv;
258
+ struct dma_resv *resv;
253259
254
- resv = reloc->robj->tbo.resv;
260
+ resv = reloc->robj->tbo.base.resv;
255261 r = radeon_sync_resv(p->rdev, &p->ib.sync, resv,
256
- reloc->tv.shared);
262
+ reloc->tv.num_shared);
257263 if (r)
258264 return r;
259265 }
....@@ -437,7 +443,7 @@
437443 if (bo == NULL)
438444 continue;
439445
440
- drm_gem_object_put_unlocked(&bo->gem_base);
446
+ drm_gem_object_put(&bo->tbo.base);
441447 }
442448 }
443449 kfree(parser->track);