summaryrefslogtreecommitdiff
path: root/drivers/media/platform/vsp1/vsp1_dl.h
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham+renesas@ideasonboard.com>2018-08-03 14:37:28 +0300
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2018-08-03 23:01:28 +0300
commitf3b98e3c4d2e16bb7c99fc75d652559bd591070f (patch)
tree9604e2dfdc231303b63eae2fb2a3da71eb79a67a /drivers/media/platform/vsp1/vsp1_dl.h
parent7d630c4924d82c4679e2df4bf55c2fd94e668e91 (diff)
downloadlinux-f3b98e3c4d2e16bb7c99fc75d652559bd591070f.tar.xz
media: vsp1: Provide support for extended command pools
VSPD and VSP-DL devices can provide extended display lists supporting extended command display list objects. These extended commands require their own dma memory areas for a header and body specific to the command type. Implement a command pool to allocate all necessary memory in a single DMA allocation to reduce pressure on the TLB, and provide convenient re-usable command objects for the entities to utilise. Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'drivers/media/platform/vsp1/vsp1_dl.h')
-rw-r--r--drivers/media/platform/vsp1/vsp1_dl.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/platform/vsp1/vsp1_dl.h b/drivers/media/platform/vsp1/vsp1_dl.h
index afefd5bfa136..125750dc8b5c 100644
--- a/drivers/media/platform/vsp1/vsp1_dl.h
+++ b/drivers/media/platform/vsp1/vsp1_dl.h
@@ -22,6 +22,7 @@ struct vsp1_dl_manager;
/**
* struct vsp1_dl_ext_cmd - Extended Display command
+ * @pool: pool to which this command belongs
* @free: entry in the pool of free commands list
* @opcode: command type opcode
* @flags: flags used by the command
@@ -32,6 +33,7 @@ struct vsp1_dl_manager;
* @data_dma: DMA address for command-specific data
*/
struct vsp1_dl_ext_cmd {
+ struct vsp1_dl_cmd_pool *pool;
struct list_head free;
u8 opcode;
@@ -58,6 +60,7 @@ struct vsp1_dl_body *vsp1_dlm_dl_body_get(struct vsp1_dl_manager *dlm);
struct vsp1_dl_list *vsp1_dl_list_get(struct vsp1_dl_manager *dlm);
void vsp1_dl_list_put(struct vsp1_dl_list *dl);
struct vsp1_dl_body *vsp1_dl_list_get_body0(struct vsp1_dl_list *dl);
+struct vsp1_dl_ext_cmd *vsp1_dl_get_pre_cmd(struct vsp1_dl_list *dl);
void vsp1_dl_list_commit(struct vsp1_dl_list *dl, bool internal);
struct vsp1_dl_body_pool *