media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
[ Upstream commit ded874ece29d3fe2abd3775810a06056067eb68c ] This introduces two macros: RGA_COLOR_FMT_IS_YUV and RGA_COLOR_FMT_IS_RGB which allow quick checking of the colorspace familily of a RGA color format. These macros are then used to refactor the logic for CSC mode selection. The two nested tests for input colorspace are simplified into a single one, with a logical and, making the whole more readable. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
2cb3b14eb6
commit
a676d83b8f
@ -208,22 +208,19 @@ static void rga_cmd_set_trans_info(struct rga_ctx *ctx)
|
||||
dst_info.data.format = ctx->out.fmt->hw_format;
|
||||
dst_info.data.swap = ctx->out.fmt->color_swap;
|
||||
|
||||
if (ctx->in.fmt->hw_format >= RGA_COLOR_FMT_YUV422SP) {
|
||||
if (ctx->out.fmt->hw_format < RGA_COLOR_FMT_YUV422SP) {
|
||||
switch (ctx->in.colorspace) {
|
||||
case V4L2_COLORSPACE_REC709:
|
||||
src_info.data.csc_mode =
|
||||
RGA_SRC_CSC_MODE_BT709_R0;
|
||||
break;
|
||||
default:
|
||||
src_info.data.csc_mode =
|
||||
RGA_SRC_CSC_MODE_BT601_R0;
|
||||
break;
|
||||
}
|
||||
if (RGA_COLOR_FMT_IS_YUV(ctx->in.fmt->hw_format) &&
|
||||
RGA_COLOR_FMT_IS_RGB(ctx->out.fmt->hw_format)) {
|
||||
switch (ctx->in.colorspace) {
|
||||
case V4L2_COLORSPACE_REC709:
|
||||
src_info.data.csc_mode = RGA_SRC_CSC_MODE_BT709_R0;
|
||||
break;
|
||||
default:
|
||||
src_info.data.csc_mode = RGA_SRC_CSC_MODE_BT601_R0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ctx->out.fmt->hw_format >= RGA_COLOR_FMT_YUV422SP) {
|
||||
if (RGA_COLOR_FMT_IS_YUV(ctx->out.fmt->hw_format)) {
|
||||
switch (ctx->out.colorspace) {
|
||||
case V4L2_COLORSPACE_REC709:
|
||||
dst_info.data.csc_mode = RGA_SRC_CSC_MODE_BT709_R0;
|
||||
|
@ -103,6 +103,11 @@
|
||||
#define RGA_COLOR_FMT_CP_8BPP 15
|
||||
#define RGA_COLOR_FMT_MASK 15
|
||||
|
||||
#define RGA_COLOR_FMT_IS_YUV(fmt) \
|
||||
(((fmt) >= RGA_COLOR_FMT_YUV422SP) && ((fmt) < RGA_COLOR_FMT_CP_1BPP))
|
||||
#define RGA_COLOR_FMT_IS_RGB(fmt) \
|
||||
((fmt) < RGA_COLOR_FMT_YUV422SP)
|
||||
|
||||
#define RGA_COLOR_NONE_SWAP 0
|
||||
#define RGA_COLOR_RB_SWAP 1
|
||||
#define RGA_COLOR_ALPHA_SWAP 2
|
||||
|
Loading…
x
Reference in New Issue
Block a user