xref: /linux/drivers/media/platform/rockchip/rkvdec/rkvdec-rcb.h (revision f4b369c6fe0ceaba2da2daff8c9eb415f85926dd)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Rockchip video decoder Rows and Cols Buffers manager
4  *
5  * Copyright (C) 2025 Collabora, Ltd.
6  *  Detlev Casanova <detlev.casanova@collabora.com>
7  */
8 
9 #include <linux/types.h>
10 
11 struct rkvdec_ctx;
12 
13 enum rcb_axis {
14 	PIC_WIDTH = 0,
15 	PIC_HEIGHT = 1
16 };
17 
18 struct rcb_size_info {
19 	u8 multiplier;
20 	enum rcb_axis axis;
21 };
22 
23 int rkvdec_allocate_rcb(struct rkvdec_ctx *ctx,
24 			const struct rcb_size_info *size_info,
25 			size_t rcb_count);
26 dma_addr_t rkvdec_rcb_buf_dma_addr(struct rkvdec_ctx *ctx, int id);
27 size_t rkvdec_rcb_buf_size(struct rkvdec_ctx *ctx, int id);
28 int rkvdec_rcb_buf_count(struct rkvdec_ctx *ctx);
29 void rkvdec_free_rcb(struct rkvdec_ctx *ctx);
30