You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
video: rockchip: rga3: compatible with legacy global alpha config
Change-Id: I8dcccad5638f1fa7f16dcd9945562596cae047bc Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
This commit is contained in:
@@ -678,7 +678,11 @@ struct rga_req {
|
||||
uint8_t fg_global_alpha;
|
||||
uint8_t bg_global_alpha;
|
||||
|
||||
uint8_t reservr[57];
|
||||
struct {
|
||||
uint32_t global_alpha_en:1;
|
||||
} feature;
|
||||
|
||||
uint8_t reservr[51];
|
||||
};
|
||||
|
||||
struct rga_alpha_config {
|
||||
|
||||
@@ -2087,19 +2087,26 @@ static void rga_cmd_to_rga2_cmd(struct rga_scheduler_t *scheduler,
|
||||
req->alpha_config.bg_pixel_alpha_en =
|
||||
rga_is_alpha_format(req->dst.format);
|
||||
|
||||
if (req_rga->fg_global_alpha < 0xff) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value = req_rga->fg_global_alpha;
|
||||
} else if (!req->alpha_config.fg_pixel_alpha_en) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value = 0xff;
|
||||
}
|
||||
if (req_rga->feature.global_alpha_en) {
|
||||
if (req_rga->fg_global_alpha < 0xff) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value =
|
||||
req_rga->fg_global_alpha;
|
||||
} else if (!req->alpha_config.fg_pixel_alpha_en) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value = 0xff;
|
||||
}
|
||||
|
||||
if (req_rga->bg_global_alpha < 0xff) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
req->alpha_config.bg_global_alpha_value = req_rga->bg_global_alpha;
|
||||
} else if (!req->alpha_config.bg_pixel_alpha_en) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
if (req_rga->bg_global_alpha < 0xff) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
req->alpha_config.bg_global_alpha_value =
|
||||
req_rga->bg_global_alpha;
|
||||
} else if (!req->alpha_config.bg_pixel_alpha_en) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
req->alpha_config.bg_global_alpha_value = 0xff;
|
||||
}
|
||||
} else {
|
||||
req->alpha_config.bg_global_alpha_value = 0xff;
|
||||
req->alpha_config.bg_global_alpha_value = 0xff;
|
||||
}
|
||||
|
||||
|
||||
@@ -1643,19 +1643,26 @@ static void rga_cmd_to_rga3_cmd(struct rga_req *req_rga, struct rga3_req *req)
|
||||
req->alpha_config.fg_pixel_alpha_en = rga_is_alpha_format(req->win1.format);
|
||||
req->alpha_config.bg_pixel_alpha_en = rga_is_alpha_format(req->win0.format);
|
||||
|
||||
if (req_rga->fg_global_alpha < 0xff) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value = req_rga->fg_global_alpha;
|
||||
} else if (!req->alpha_config.fg_pixel_alpha_en) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value = 0xff;
|
||||
}
|
||||
if (req_rga->feature.global_alpha_en) {
|
||||
if (req_rga->fg_global_alpha < 0xff) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value =
|
||||
req_rga->fg_global_alpha;
|
||||
} else if (!req->alpha_config.fg_pixel_alpha_en) {
|
||||
req->alpha_config.fg_global_alpha_en = true;
|
||||
req->alpha_config.fg_global_alpha_value = 0xff;
|
||||
}
|
||||
|
||||
if (req_rga->bg_global_alpha < 0xff) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
req->alpha_config.bg_global_alpha_value = req_rga->bg_global_alpha;
|
||||
} else if (!req->alpha_config.bg_pixel_alpha_en) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
if (req_rga->bg_global_alpha < 0xff) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
req->alpha_config.bg_global_alpha_value =
|
||||
req_rga->bg_global_alpha;
|
||||
} else if (!req->alpha_config.bg_pixel_alpha_en) {
|
||||
req->alpha_config.bg_global_alpha_en = true;
|
||||
req->alpha_config.bg_global_alpha_value = 0xff;
|
||||
}
|
||||
} else {
|
||||
req->alpha_config.bg_global_alpha_value = 0xff;
|
||||
req->alpha_config.bg_global_alpha_value = 0xff;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user