From 6706d3c8655928d2f1aef2318081fd6cfc3bfe43 Mon Sep 17 00:00:00 2001 From: Wang Panzhenzhuan Date: Wed, 28 Jun 2023 19:55:22 +0800 Subject: [PATCH] video: rockchip: vehicle: default use nv12 scale to vop show 1. default use nv12 scale to vop show 2. force scale to 1920x1080 before to vop show Signed-off-by: Wang Panzhenzhuan Change-Id: Ib6cbe8a638ab6a285c4982cd031b39db90f58c04 --- .../video/rockchip/vehicle/vehicle_flinger.c | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/video/rockchip/vehicle/vehicle_flinger.c b/drivers/video/rockchip/vehicle/vehicle_flinger.c index 5fd279559f0f..acad15d19596 100644 --- a/drivers/video/rockchip/vehicle/vehicle_flinger.c +++ b/drivers/video/rockchip/vehicle/vehicle_flinger.c @@ -46,7 +46,6 @@ static int vehicle_dump_cif; static int vehicle_dump_rga; static int vehicle_dump_vop; -static bool nv12_display = true; enum force_value { FORCE_WIDTH = 1920, @@ -662,7 +661,10 @@ static int rk_flinger_rga_scaler(struct flinger *flinger, rga_request.rotate_mode = 0; rga_request.sina = 0; rga_request.cosa = 0; - rga_request.yuv2rgb_mode = 0x1 << 0; // limit range + + rga_request.yuv2rgb_mode = 0x0 << 0; // yuvtoyuv config 0 + /* yuv to rgb color space transform if need */ + //rga_request.yuv2rgb_mode = 0x1 << 0; // limit range //rga_request.yuv2rgb_mode = 0x2 << 0; // full range rga_request.src.act_w = src_buffer->src.w; @@ -685,7 +687,7 @@ static int rk_flinger_rga_scaler(struct flinger *flinger, rga_request.dst.yrgb_addr = dst_buffer->fd; rga_request.dst.uv_addr = 0; rga_request.dst.v_addr = 0; - rga_request.dst.format = RGA_FORMAT_RGBX_8888; + rga_request.dst.format = RGA_FORMAT_YCrCb_420_SP; rga_request.scale_mode = 1; @@ -1294,20 +1296,12 @@ try_again: VEHICLE_DG("it is ypbpr signal\n"); iep_buffer = &(flg->target_buffer[NUM_TARGET_BUFFERS - 1]); iep_buffer->state = ACQUIRE; - //scaler by rga for rgbx8888/rgb888/rgb565 display - if (!nv12_display) { - rk_flinger_rga_render(flg, src_buffer, iep_buffer); - src_buffer->state = FREE; - rk_flinger_rga_scaler(flg, iep_buffer, dst_buffer); - iep_buffer->state = FREE; - rk_flinger_vop_show(flg, dst_buffer); - } else { - rk_flinger_rga_render(flg, src_buffer, dst_buffer); - src_buffer->state = FREE; - rk_flinger_vop_show(flg, dst_buffer); - // rk_flinger_vop_show(flg, src_buffer); - } - + //scaler by rga to force widthxheight display + rk_flinger_rga_render(flg, src_buffer, iep_buffer); + src_buffer->state = FREE; + rk_flinger_rga_scaler(flg, iep_buffer, dst_buffer); + iep_buffer->state = FREE; + rk_flinger_vop_show(flg, dst_buffer); for (i = 0; i < NUM_TARGET_BUFFERS; i++) { buffer = &(flinger->target_buffer[i]); if (buffer->state == DISPLAY)