video: rockchip: rga3: fix alpha channel loss in ABC mode

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I54adb160f0dcf934a4001169ad3a7545948e4209
This commit is contained in:
Yu Qiaowei
2022-06-14 15:55:11 +08:00
committed by Tao Huang
parent 45fe385055
commit 17638eab67

View File

@@ -1334,10 +1334,6 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req)
break;
}
/* default use 2 reg, bot_blend_m1 && bot_alpha_cal_m1 */
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;
@@ -1360,6 +1356,10 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req)
* dst => wr
*/
/* enabled by default bot_blend_m1 && bot_alpha_cal_m1 for src channel(win0) */
if (rga_is_alpha_format(req_rga->src.format))
req->alpha_mode_1 = 0x0a00;
set_win_info(&req->win0, &req_rga->src);
/* enable win0 rotate */
@@ -1382,6 +1382,10 @@ void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req)
* dst => wr
*/
/* enabled by default top_blend_m1 && top_alpha_cal_m1 for src channel(win1) */
if (rga_is_alpha_format(req_rga->src.format))
req->alpha_mode_1 = 0x0a;
if (req_rga->pat.yrgb_addr != 0) {
if (req_rga->src.yrgb_addr == req_rga->dst.yrgb_addr) {
/* Convert ABC mode to ABB mode. */