From fb9c8680331d352c8e5f4114cfe3d9a92e8947fa Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Mon, 13 Jul 2020 17:34:30 +0800 Subject: [PATCH] media: rockchip: ispp: support sharp fbc rotation Change-Id: Ide6b2adf289d03524b0105b3b7640c419e86fb2a Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/ispp/params.c | 3 +++ drivers/media/platform/rockchip/ispp/stream.c | 2 ++ include/uapi/linux/rkispp-config.h | 1 + 3 files changed, 6 insertions(+) diff --git a/drivers/media/platform/rockchip/ispp/params.c b/drivers/media/platform/rockchip/ispp/params.c index 4be9b0c1d162..1905f9aa3713 100644 --- a/drivers/media/platform/rockchip/ispp/params.c +++ b/drivers/media/platform/rockchip/ispp/params.c @@ -343,6 +343,9 @@ static void shp_config(struct rkispp_params_vdev *params_vdev, void __iomem *base = params_vdev->dev->base_addr; u32 i, val; + rkispp_set_bits(base + RKISPP_SHARP_CTRL, SW_SHP_WR_ROT_MODE(3), + SW_SHP_WR_ROT_MODE(arg->rotation)); + rkispp_write(base + RKISPP_SHARP_SC_DOWN, (arg->scl_down_v & 0x1) << 1 | (arg->scl_down_h & 0x1)); diff --git a/drivers/media/platform/rockchip/ispp/stream.c b/drivers/media/platform/rockchip/ispp/stream.c index 85c1b996c534..e949c0d02bea 100644 --- a/drivers/media/platform/rockchip/ispp/stream.c +++ b/drivers/media/platform/rockchip/ispp/stream.c @@ -1041,6 +1041,8 @@ static int config_mb(struct rkispp_stream *stream) } if (stream->out_cap_fmt.wr_fmt & FMT_YUYV) mult = 2; + else if (stream->out_cap_fmt.wr_fmt & FMT_FBC) + mult = 0; set_vir_stride(stream, ALIGN(stream->out_fmt.width * mult, 16) >> 2); v4l2_dbg(1, rkispp_debug, &dev->v4l2_dev, "%s last module:%d\n", __func__, i); diff --git a/include/uapi/linux/rkispp-config.h b/include/uapi/linux/rkispp-config.h index 4c745e1521c5..ace9c2985026 100644 --- a/include/uapi/linux/rkispp-config.h +++ b/include/uapi/linux/rkispp-config.h @@ -167,6 +167,7 @@ struct rkispp_nr_config { } __attribute__ ((packed)); struct rkispp_sharp_config { + u8 rotation; u8 scl_down_v; u8 scl_down_h; u8 tile_ycnt;