drm/etnaviv: move cmdbuf into submit object
Less dynamic allocations and slims down the cmdbuf object to only the required information, as everything else is already available in the submit object. This also simplifies buffer and mappings lifetime management, as they are now exlusively attached to the submit object and not additionally to the cmdbuf. Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
@@ -33,22 +33,15 @@ struct etnaviv_cmdbuf {
|
||||
void *vaddr;
|
||||
u32 size;
|
||||
u32 user_size;
|
||||
/* fence after which this buffer is to be disposed */
|
||||
struct dma_fence *fence;
|
||||
/* per GPU in-flight list */
|
||||
struct list_head node;
|
||||
/* BOs attached to this command buffer */
|
||||
unsigned int nr_bos;
|
||||
struct etnaviv_vram_mapping *bo_map[0];
|
||||
};
|
||||
|
||||
struct etnaviv_cmdbuf_suballoc *
|
||||
etnaviv_cmdbuf_suballoc_new(struct etnaviv_gpu * gpu);
|
||||
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);
|
||||
|
||||
int etnaviv_cmdbuf_init(struct etnaviv_cmdbuf_suballoc *suballoc,
|
||||
struct etnaviv_cmdbuf *cmdbuf, u32 size);
|
||||
void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf);
|
||||
|
||||
u32 etnaviv_cmdbuf_get_va(struct etnaviv_cmdbuf *buf);
|
||||
|
Reference in New Issue
Block a user