From fe5312f2aacdf2c221dad0b06f7b833514290420 Mon Sep 17 00:00:00 2001 From: Chen Shunqing Date: Sat, 12 Jul 2025 15:36:04 +0800 Subject: [PATCH] media: rockchip: hdmirx: add RK_HDMIRX_CMD_GET_SCAN_MODE Signed-off-by: Chen Shunqing Change-Id: I549c04189564cd90698efae73549f15499da0a96 --- drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c index c0e48799014a..afff5b3addb3 100644 --- a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c +++ b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c @@ -2485,6 +2485,8 @@ static long hdmirx_ioctl_default(struct file *file, void *fh, { struct hdmirx_stream *stream = video_drvdata(file); struct rk_hdmirx_dev *hdmirx_dev = stream->hdmirx_dev; + struct v4l2_dv_timings timings = hdmirx_dev->timings; + struct v4l2_bt_timings *bt = &timings.bt; long ret = 0; bool hpd; enum mute_type type; @@ -2497,6 +2499,14 @@ static long hdmirx_ioctl_default(struct file *file, void *fh, case RK_HDMIRX_CMD_GET_FPS: *(int *)arg = hdmirx_dev->get_timing ? hdmirx_dev->fps : 0; break; + case RK_HDMIRX_CMD_GET_SCAN_MODE: + if (!hdmirx_dev->get_timing) + *(int *)arg = HDMIRX_PROGRESSIVE; + else if (bt->interlaced == V4L2_DV_INTERLACED) + *(int *)arg = HDMIRX_INTERLACED; + else + *(int *)arg = HDMIRX_PROGRESSIVE; + break; case RK_HDMIRX_CMD_GET_SIGNAL_STABLE_STATUS: *(int *)arg = hdmirx_dev->get_timing; break;