Skip to content

Commit 6ba5daa

Browse files
committed
drm/msm: Use drm_gem_object in submit bos table
Basically everywhere wants the base ptr type. So store that instead of msm_gem_object. Signed-off-by: Rob Clark <robdclark@chromium.org> Patchwork: https://patchwork.freedesktop.org/patch/551021/
1 parent 1a8b612 commit 6ba5daa

File tree

6 files changed

+40
-40
lines changed

6 files changed

+40
-40
lines changed

drivers/gpu/drm/msm/adreno/a5xx_gpu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ void a5xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring,
6666
static void a5xx_submit_in_rb(struct msm_gpu *gpu, struct msm_gem_submit *submit)
6767
{
6868
struct msm_ringbuffer *ring = submit->ring;
69-
struct msm_gem_object *obj;
69+
struct drm_gem_object *obj;
7070
uint32_t *ptr, dwords;
7171
unsigned int i;
7272

@@ -83,7 +83,7 @@ static void a5xx_submit_in_rb(struct msm_gpu *gpu, struct msm_gem_submit *submit
8383
obj = submit->bos[submit->cmd[i].idx].obj;
8484
dwords = submit->cmd[i].size;
8585

86-
ptr = msm_gem_get_vaddr(&obj->base);
86+
ptr = msm_gem_get_vaddr(obj);
8787

8888
/* _get_vaddr() shouldn't fail at this point,
8989
* since we've already mapped it once in
@@ -103,7 +103,7 @@ static void a5xx_submit_in_rb(struct msm_gpu *gpu, struct msm_gem_submit *submit
103103
OUT_RING(ring, ptr[i]);
104104
}
105105

106-
msm_gem_put_vaddr(&obj->base);
106+
msm_gem_put_vaddr(obj);
107107

108108
break;
109109
}

drivers/gpu/drm/msm/msm_gem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ struct msm_gem_submit {
301301
#define BO_VMA_PINNED 0x1000 /* vma (virtual address) is pinned */
302302
uint32_t flags;
303303
union {
304-
struct msm_gem_object *obj;
304+
struct drm_gem_object *obj;
305305
uint32_t handle;
306306
};
307307
uint64_t iova;

drivers/gpu/drm/msm/msm_gem_submit.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ static int submit_lookup_objects(struct msm_gem_submit *submit,
165165

166166
drm_gem_object_get(obj);
167167

168-
submit->bos[i].obj = to_msm_bo(obj);
168+
submit->bos[i].obj = obj;
169169
}
170170

171171
out_unlock:
@@ -251,7 +251,7 @@ static int submit_lookup_cmds(struct msm_gem_submit *submit,
251251
static void submit_cleanup_bo(struct msm_gem_submit *submit, int i,
252252
unsigned cleanup_flags)
253253
{
254-
struct drm_gem_object *obj = &submit->bos[i].obj->base;
254+
struct drm_gem_object *obj = submit->bos[i].obj;
255255
unsigned flags = submit->bos[i].flags & cleanup_flags;
256256

257257
/*
@@ -287,15 +287,15 @@ static int submit_lock_objects(struct msm_gem_submit *submit)
287287

288288
retry:
289289
for (i = 0; i < submit->nr_bos; i++) {
290-
struct msm_gem_object *msm_obj = submit->bos[i].obj;
290+
struct drm_gem_object *obj = submit->bos[i].obj;
291291

292292
if (slow_locked == i)
293293
slow_locked = -1;
294294

295295
contended = i;
296296

297297
if (!(submit->bos[i].flags & BO_LOCKED)) {
298-
ret = dma_resv_lock_interruptible(msm_obj->base.resv,
298+
ret = dma_resv_lock_interruptible(obj->resv,
299299
&submit->ticket);
300300
if (ret)
301301
goto fail;
@@ -321,9 +321,9 @@ static int submit_lock_objects(struct msm_gem_submit *submit)
321321
submit_unlock_unpin_bo(submit, slow_locked);
322322

323323
if (ret == -EDEADLK) {
324-
struct msm_gem_object *msm_obj = submit->bos[contended].obj;
324+
struct drm_gem_object *obj = submit->bos[contended].obj;
325325
/* we lost out in a seqno race, lock and retry.. */
326-
ret = dma_resv_lock_slow_interruptible(msm_obj->base.resv,
326+
ret = dma_resv_lock_slow_interruptible(obj->resv,
327327
&submit->ticket);
328328
if (!ret) {
329329
submit->bos[contended].flags |= BO_LOCKED;
@@ -346,7 +346,7 @@ static int submit_fence_sync(struct msm_gem_submit *submit, bool no_implicit)
346346
int i, ret = 0;
347347

348348
for (i = 0; i < submit->nr_bos; i++) {
349-
struct drm_gem_object *obj = &submit->bos[i].obj->base;
349+
struct drm_gem_object *obj = submit->bos[i].obj;
350350
bool write = submit->bos[i].flags & MSM_SUBMIT_BO_WRITE;
351351

352352
/* NOTE: _reserve_shared() must happen before
@@ -389,7 +389,7 @@ static int submit_pin_objects(struct msm_gem_submit *submit)
389389
submit->valid = true;
390390

391391
for (i = 0; i < submit->nr_bos; i++) {
392-
struct drm_gem_object *obj = &submit->bos[i].obj->base;
392+
struct drm_gem_object *obj = submit->bos[i].obj;
393393
struct msm_gem_vma *vma;
394394

395395
/* if locking succeeded, pin bo: */
@@ -424,7 +424,7 @@ static void submit_attach_object_fences(struct msm_gem_submit *submit)
424424
int i;
425425

426426
for (i = 0; i < submit->nr_bos; i++) {
427-
struct drm_gem_object *obj = &submit->bos[i].obj->base;
427+
struct drm_gem_object *obj = submit->bos[i].obj;
428428

429429
if (submit->bos[i].flags & MSM_SUBMIT_BO_WRITE)
430430
dma_resv_add_fence(obj->resv, submit->user_fence,
@@ -436,7 +436,7 @@ static void submit_attach_object_fences(struct msm_gem_submit *submit)
436436
}
437437

438438
static int submit_bo(struct msm_gem_submit *submit, uint32_t idx,
439-
struct msm_gem_object **obj, uint64_t *iova, bool *valid)
439+
struct drm_gem_object **obj, uint64_t *iova, bool *valid)
440440
{
441441
if (idx >= submit->nr_bos) {
442442
DRM_ERROR("invalid buffer index: %u (out of %u)\n",
@@ -455,7 +455,7 @@ static int submit_bo(struct msm_gem_submit *submit, uint32_t idx,
455455
}
456456

457457
/* process the reloc's and patch up the cmdstream as needed: */
458-
static int submit_reloc(struct msm_gem_submit *submit, struct msm_gem_object *obj,
458+
static int submit_reloc(struct msm_gem_submit *submit, struct drm_gem_object *obj,
459459
uint32_t offset, uint32_t nr_relocs, struct drm_msm_gem_submit_reloc *relocs)
460460
{
461461
uint32_t i, last_offset = 0;
@@ -473,7 +473,7 @@ static int submit_reloc(struct msm_gem_submit *submit, struct msm_gem_object *ob
473473
/* For now, just map the entire thing. Eventually we probably
474474
* to do it page-by-page, w/ kmap() if not vmap()d..
475475
*/
476-
ptr = msm_gem_get_vaddr_locked(&obj->base);
476+
ptr = msm_gem_get_vaddr_locked(obj);
477477

478478
if (IS_ERR(ptr)) {
479479
ret = PTR_ERR(ptr);
@@ -497,7 +497,7 @@ static int submit_reloc(struct msm_gem_submit *submit, struct msm_gem_object *ob
497497
/* offset in dwords: */
498498
off = submit_reloc.submit_offset / 4;
499499

500-
if ((off >= (obj->base.size / 4)) ||
500+
if ((off >= (obj->size / 4)) ||
501501
(off < last_offset)) {
502502
DRM_ERROR("invalid offset %u at reloc %u\n", off, i);
503503
ret = -EINVAL;
@@ -524,7 +524,7 @@ static int submit_reloc(struct msm_gem_submit *submit, struct msm_gem_object *ob
524524
}
525525

526526
out:
527-
msm_gem_put_vaddr_locked(&obj->base);
527+
msm_gem_put_vaddr_locked(obj);
528528

529529
return ret;
530530
}
@@ -542,10 +542,10 @@ static void submit_cleanup(struct msm_gem_submit *submit, bool error)
542542
cleanup_flags |= BO_VMA_PINNED | BO_OBJ_PINNED;
543543

544544
for (i = 0; i < submit->nr_bos; i++) {
545-
struct msm_gem_object *msm_obj = submit->bos[i].obj;
545+
struct drm_gem_object *obj = submit->bos[i].obj;
546546
submit_cleanup_bo(submit, i, cleanup_flags);
547547
if (error)
548-
drm_gem_object_put(&msm_obj->base);
548+
drm_gem_object_put(obj);
549549
}
550550
}
551551

@@ -554,7 +554,7 @@ void msm_submit_retire(struct msm_gem_submit *submit)
554554
int i;
555555

556556
for (i = 0; i < submit->nr_bos; i++) {
557-
struct drm_gem_object *obj = &submit->bos[i].obj->base;
557+
struct drm_gem_object *obj = submit->bos[i].obj;
558558

559559
drm_gem_object_put(obj);
560560
}
@@ -861,17 +861,17 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
861861
goto out;
862862

863863
for (i = 0; i < args->nr_cmds; i++) {
864-
struct msm_gem_object *msm_obj;
864+
struct drm_gem_object *obj;
865865
uint64_t iova;
866866

867867
ret = submit_bo(submit, submit->cmd[i].idx,
868-
&msm_obj, &iova, NULL);
868+
&obj, &iova, NULL);
869869
if (ret)
870870
goto out;
871871

872872
if (!submit->cmd[i].size ||
873873
((submit->cmd[i].size + submit->cmd[i].offset) >
874-
msm_obj->base.size / 4)) {
874+
obj->size / 4)) {
875875
DRM_ERROR("invalid cmdstream size: %u\n", submit->cmd[i].size * 4);
876876
ret = -EINVAL;
877877
goto out;
@@ -892,7 +892,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
892892
continue;
893893
}
894894

895-
ret = submit_reloc(submit, msm_obj, submit->cmd[i].offset * 4,
895+
ret = submit_reloc(submit, obj, submit->cmd[i].offset * 4,
896896
submit->cmd[i].nr_relocs, submit->cmd[i].relocs);
897897
if (ret)
898898
goto out;

drivers/gpu/drm/msm/msm_gpu.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -219,36 +219,36 @@ static void msm_gpu_devcoredump_free(void *data)
219219
}
220220

221221
static void msm_gpu_crashstate_get_bo(struct msm_gpu_state *state,
222-
struct msm_gem_object *obj, u64 iova, bool full)
222+
struct drm_gem_object *obj, u64 iova, bool full)
223223
{
224224
struct msm_gpu_state_bo *state_bo = &state->bos[state->nr_bos];
225225

226226
/* Don't record write only objects */
227-
state_bo->size = obj->base.size;
227+
state_bo->size = obj->size;
228228
state_bo->iova = iova;
229229

230-
BUILD_BUG_ON(sizeof(state_bo->name) != sizeof(obj->name));
230+
BUILD_BUG_ON(sizeof(state_bo->name) != sizeof(to_msm_bo(obj)->name));
231231

232-
memcpy(state_bo->name, obj->name, sizeof(state_bo->name));
232+
memcpy(state_bo->name, to_msm_bo(obj)->name, sizeof(state_bo->name));
233233

234234
if (full) {
235235
void *ptr;
236236

237-
state_bo->data = kvmalloc(obj->base.size, GFP_KERNEL);
237+
state_bo->data = kvmalloc(obj->size, GFP_KERNEL);
238238
if (!state_bo->data)
239239
goto out;
240240

241-
msm_gem_lock(&obj->base);
242-
ptr = msm_gem_get_vaddr_active(&obj->base);
243-
msm_gem_unlock(&obj->base);
241+
msm_gem_lock(obj);
242+
ptr = msm_gem_get_vaddr_active(obj);
243+
msm_gem_unlock(obj);
244244
if (IS_ERR(ptr)) {
245245
kvfree(state_bo->data);
246246
state_bo->data = NULL;
247247
goto out;
248248
}
249249

250-
memcpy(state_bo->data, ptr, obj->base.size);
251-
msm_gem_put_vaddr(&obj->base);
250+
memcpy(state_bo->data, ptr, obj->size);
251+
msm_gem_put_vaddr(obj);
252252
}
253253
out:
254254
state->nr_bos++;

drivers/gpu/drm/msm/msm_rd.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -310,15 +310,15 @@ static void snapshot_buf(struct msm_rd_state *rd,
310310
struct msm_gem_submit *submit, int idx,
311311
uint64_t iova, uint32_t size, bool full)
312312
{
313-
struct msm_gem_object *obj = submit->bos[idx].obj;
313+
struct drm_gem_object *obj = submit->bos[idx].obj;
314314
unsigned offset = 0;
315315
const char *buf;
316316

317317
if (iova) {
318318
offset = iova - submit->bos[idx].iova;
319319
} else {
320320
iova = submit->bos[idx].iova;
321-
size = obj->base.size;
321+
size = obj->size;
322322
}
323323

324324
/*
@@ -335,15 +335,15 @@ static void snapshot_buf(struct msm_rd_state *rd,
335335
if (!(submit->bos[idx].flags & MSM_SUBMIT_BO_READ))
336336
return;
337337

338-
buf = msm_gem_get_vaddr_active(&obj->base);
338+
buf = msm_gem_get_vaddr_active(obj);
339339
if (IS_ERR(buf))
340340
return;
341341

342342
buf += offset;
343343

344344
rd_write_section(rd, RD_BUFFER_CONTENTS, buf, size);
345345

346-
msm_gem_put_vaddr_locked(&obj->base);
346+
msm_gem_put_vaddr_locked(obj);
347347
}
348348

349349
/* called under gpu->lock */

drivers/gpu/drm/msm/msm_ringbuffer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ static struct dma_fence *msm_job_run(struct drm_sched_job *job)
2424
mutex_lock(&priv->lru.lock);
2525

2626
for (i = 0; i < submit->nr_bos; i++) {
27-
struct drm_gem_object *obj = &submit->bos[i].obj->base;
27+
struct drm_gem_object *obj = submit->bos[i].obj;
2828

2929
msm_gem_vma_unpin_fenced(submit->bos[i].vma, fctx);
3030
msm_gem_unpin_active(obj);

0 commit comments

Comments
 (0)