drm/etnaviv: move PMRs to submit object
To make them available to the event worker even after the actual command stream execution has finished. Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
このコミットが含まれているのは:
@@ -88,10 +88,9 @@ void etnaviv_cmdbuf_suballoc_destroy(struct etnaviv_cmdbuf_suballoc *suballoc)
|
||||
|
||||
struct etnaviv_cmdbuf *
|
||||
etnaviv_cmdbuf_new(struct etnaviv_cmdbuf_suballoc *suballoc, u32 size,
|
||||
size_t nr_bos, size_t nr_pmrs)
|
||||
size_t nr_bos)
|
||||
{
|
||||
struct etnaviv_cmdbuf *cmdbuf;
|
||||
struct etnaviv_perfmon_request *pmrs;
|
||||
size_t sz = size_vstruct(nr_bos, sizeof(cmdbuf->bo_map[0]),
|
||||
sizeof(*cmdbuf));
|
||||
int granule_offs, order, ret;
|
||||
@@ -100,12 +99,6 @@ etnaviv_cmdbuf_new(struct etnaviv_cmdbuf_suballoc *suballoc, u32 size,
|
||||
if (!cmdbuf)
|
||||
return NULL;
|
||||
|
||||
sz = sizeof(*pmrs) * nr_pmrs;
|
||||
pmrs = kzalloc(sz, GFP_KERNEL);
|
||||
if (!pmrs)
|
||||
goto out_free_cmdbuf;
|
||||
|
||||
cmdbuf->pmrs = pmrs;
|
||||
cmdbuf->suballoc = suballoc;
|
||||
cmdbuf->size = size;
|
||||
|
||||
@@ -132,10 +125,6 @@ retry:
|
||||
cmdbuf->vaddr = suballoc->vaddr + cmdbuf->suballoc_offset;
|
||||
|
||||
return cmdbuf;
|
||||
|
||||
out_free_cmdbuf:
|
||||
kfree(cmdbuf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf)
|
||||
@@ -151,7 +140,6 @@ void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf)
|
||||
suballoc->free_space = 1;
|
||||
mutex_unlock(&suballoc->lock);
|
||||
wake_up_all(&suballoc->free_event);
|
||||
kfree(cmdbuf->pmrs);
|
||||
kfree(cmdbuf);
|
||||
}
|
||||
|
||||
|
新しいイシューから参照
ユーザーをブロックする