From c820efabce9874275e6af7c720558930e29bacbd Mon Sep 17 00:00:00 2001 From: Yu Qiaowei Date: Thu, 21 Aug 2025 11:30:53 +0800 Subject: [PATCH] video: rockchip: rga3: mpi_commit: support modify width/height in rotate 90/270 Change-Id: I20372e8b4b12ebc10ad3b9d89d9ef67c04edbdd5 Signed-off-by: Yu Qiaowei --- drivers/video/rockchip/rga3/rga_drv.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/video/rockchip/rga3/rga_drv.c b/drivers/video/rockchip/rga3/rga_drv.c index b764ae6ed460..8a270a75b1c7 100644 --- a/drivers/video/rockchip/rga3/rga_drv.c +++ b/drivers/video/rockchip/rga3/rga_drv.c @@ -159,13 +159,24 @@ int rga_mpi_commit(struct rga_mpi_job_t *mpi_job) &mpi_cmd.pat, &cached_cmd->pat); - if ((mpi_job->dst != NULL) && (request->flags & RGA_CONTEXT_DST_MASK)) + if ((mpi_job->dst != NULL) && (request->flags & RGA_CONTEXT_DST_MASK)) { rga_mpi_set_channel_info(RGA_CONTEXT_DST_MASK, request->flags, mpi_job->dst, &mpi_cmd.dst, &cached_cmd->dst); + /* rotate 90/270 */ + if (((mpi_cmd.rotate_mode & 0xf) == 1) && + ((mpi_cmd.sina == 65536 && mpi_cmd.cosa == 0) || + (mpi_cmd.sina == -65536 && mpi_cmd.cosa == 0))) { + swap(mpi_cmd.dst.act_w, mpi_cmd.dst.act_h); + + if (request->flags & RGA_CONTEXT_DST_CACHE_INFO) + swap(cached_cmd->dst.act_w, cached_cmd->dst.act_h); + } + } + /* set buffer handle */ if (mpi_job->dma_buf_src0 != NULL) { ret = rga_mpi_set_channel_buffer(mpi_job->dma_buf_src0,