mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
media: rockchip: rga: calculate x_div/y_div using v4l2_format_info
Calculate the x_div and y_div variables with the information from v4l2_format_info instead of storing these in the rga_fmt struct. Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Sven Püschel <s.pueschel@pengutronix.de> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
92f50870ae
commit
3de2ea285a
|
|
@ -42,6 +42,7 @@ rga_get_addr_offset(struct rga_frame *frm, struct rga_addr_offset *offset,
|
|||
{
|
||||
struct rga_corners_addr_offset offsets;
|
||||
struct rga_addr_offset *lt, *lb, *rt, *rb;
|
||||
const struct v4l2_format_info *format_info;
|
||||
unsigned int x_div = 0,
|
||||
y_div = 0, uv_stride = 0, pixel_width = 0;
|
||||
|
||||
|
|
@ -50,8 +51,16 @@ rga_get_addr_offset(struct rga_frame *frm, struct rga_addr_offset *offset,
|
|||
rt = &offsets.right_top;
|
||||
rb = &offsets.right_bottom;
|
||||
|
||||
x_div = frm->fmt->x_div;
|
||||
y_div = frm->fmt->y_div;
|
||||
format_info = v4l2_format_info(frm->pix.pixelformat);
|
||||
/* x_div is only used for the u/v planes.
|
||||
* When the format doesn't have these, use 1 to avoid a division by zero.
|
||||
*/
|
||||
if (format_info->bpp[1])
|
||||
x_div = format_info->hdiv * format_info->bpp_div[1] /
|
||||
format_info->bpp[1];
|
||||
else
|
||||
x_div = 1;
|
||||
y_div = format_info->vdiv;
|
||||
uv_stride = frm->stride / x_div;
|
||||
pixel_width = frm->stride / frm->pix.width;
|
||||
|
||||
|
|
@ -476,128 +485,96 @@ static struct rga_fmt formats[] = {
|
|||
.color_swap = RGA_COLOR_ALPHA_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_ABGR8888,
|
||||
.depth = 32,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_ABGR32,
|
||||
.color_swap = RGA_COLOR_RB_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_ABGR8888,
|
||||
.depth = 32,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_XBGR32,
|
||||
.color_swap = RGA_COLOR_RB_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_XBGR8888,
|
||||
.depth = 32,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_RGB24,
|
||||
.color_swap = RGA_COLOR_NONE_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_RGB888,
|
||||
.depth = 24,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_BGR24,
|
||||
.color_swap = RGA_COLOR_RB_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_RGB888,
|
||||
.depth = 24,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_ARGB444,
|
||||
.color_swap = RGA_COLOR_RB_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_ABGR4444,
|
||||
.depth = 16,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_ARGB555,
|
||||
.color_swap = RGA_COLOR_RB_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_ABGR1555,
|
||||
.depth = 16,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_RGB565,
|
||||
.color_swap = RGA_COLOR_RB_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_BGR565,
|
||||
.depth = 16,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_NV21,
|
||||
.color_swap = RGA_COLOR_UV_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV420SP,
|
||||
.depth = 12,
|
||||
.y_div = 2,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_NV61,
|
||||
.color_swap = RGA_COLOR_UV_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV422SP,
|
||||
.depth = 16,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_NV12,
|
||||
.color_swap = RGA_COLOR_NONE_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV420SP,
|
||||
.depth = 12,
|
||||
.y_div = 2,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_NV12M,
|
||||
.color_swap = RGA_COLOR_NONE_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV420SP,
|
||||
.depth = 12,
|
||||
.y_div = 2,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_NV16,
|
||||
.color_swap = RGA_COLOR_NONE_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV422SP,
|
||||
.depth = 16,
|
||||
.y_div = 1,
|
||||
.x_div = 1,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_YUV420,
|
||||
.color_swap = RGA_COLOR_NONE_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV420P,
|
||||
.depth = 12,
|
||||
.y_div = 2,
|
||||
.x_div = 2,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_YUV422P,
|
||||
.color_swap = RGA_COLOR_NONE_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV422P,
|
||||
.depth = 16,
|
||||
.y_div = 1,
|
||||
.x_div = 2,
|
||||
},
|
||||
{
|
||||
.fourcc = V4L2_PIX_FMT_YVU420,
|
||||
.color_swap = RGA_COLOR_UV_SWAP,
|
||||
.hw_format = RGA_COLOR_FMT_YUV420P,
|
||||
.depth = 12,
|
||||
.y_div = 2,
|
||||
.x_div = 2,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@
|
|||
struct rga_fmt {
|
||||
u32 fourcc;
|
||||
int depth;
|
||||
u8 y_div;
|
||||
u8 x_div;
|
||||
u8 color_swap;
|
||||
u8 hw_format;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user