video: rockchip: rga3: rga3_reg: fixup yuv/rgb convert to rgba missing alpha channel

Signed-off-by: Li Huang <putin.li@rock-chips.com>
Change-Id: I1ca62b1481b1b2968567c3a9714d757a690bfb8d
This commit is contained in:
Li Huang
2022-03-09 19:30:17 +08:00
committed by Tao Huang
parent 890ca19516
commit dbb3dbcdd2

View File

@@ -1338,6 +1338,18 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req)
if (rga_is_alpha_format(req_rga->src.format))
req->alpha_mode_1 = 0x0a00;
req->win0_a_global_val = req_rga->alpha_global_value;
req->win1_a_global_val = req_rga->alpha_global_value;
/* fixup yuv/rgb convert to rgba missing alpha channel */
if (!(req_rga->alpha_rop_flag & 1)) {
if (!rga_is_alpha_format(req_rga->src.format) &&
rga_is_alpha_format(req_rga->dst.format)) {
req->win0_a_global_val = 0xff;
req->win1_a_global_val = 0xff;
}
}
/*
* Layer binding:
* src => win1
@@ -1533,9 +1545,6 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req)
}
}
req->win0_a_global_val = req_rga->alpha_global_value;
req->win1_a_global_val = req_rga->alpha_global_value;
/* yuv to rgb */
/* 601 limit */
if (req_rga->yuv2rgb_mode == 1) {