From 39b63d0caad570331c12551b73430d73b8580e6c Mon Sep 17 00:00:00 2001 From: Jianwei Fan Date: Mon, 18 Dec 2023 07:01:32 +0000 Subject: [PATCH] media: i2c: rk628: add RKMODULE_GET_DSI_MODE ioctl for dsi mode Change-Id: I47e642c5535469c6df0d0a2252613b6585bc124d Signed-off-by: Jianwei Fan --- drivers/media/i2c/rk628/rk628_csi_v4l2.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/media/i2c/rk628/rk628_csi_v4l2.c b/drivers/media/i2c/rk628/rk628_csi_v4l2.c index 5deb8465411e..743bca695d7c 100644 --- a/drivers/media/i2c/rk628/rk628_csi_v4l2.c +++ b/drivers/media/i2c/rk628/rk628_csi_v4l2.c @@ -2249,6 +2249,9 @@ static long rk628_csi_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) case RK_HDMIRX_CMD_GET_COLOR_SPACE: *(int *)arg = rk628_hdmirx_get_color_space(csi->rk628); break; + case RKMODULE_GET_DSI_MODE: + *(int *)arg = csi->dsi.vid_mode; + break; default: ret = -ENOIOCTLCMD; break; @@ -2533,6 +2536,7 @@ static long rk628_csi_compat_ioctl32(struct v4l2_subdev *sd, } kfree(seq); break; + case RK_HDMIRX_CMD_GET_COLOR_SPACE: seq = kzalloc(sizeof(*seq), GFP_KERNEL); if (!seq) { @@ -2547,6 +2551,20 @@ static long rk628_csi_compat_ioctl32(struct v4l2_subdev *sd, } kfree(seq); break; + case RKMODULE_GET_DSI_MODE: + seq = kzalloc(sizeof(*seq), GFP_KERNEL); + if (!seq) { + ret = -ENOMEM; + return ret; + } + ret = rk628_csi_ioctl(sd, cmd, seq); + if (!ret) { + ret = copy_to_user(up, seq, sizeof(*seq)); + if (ret) + ret = -EFAULT; + } + kfree(seq); + break; default: ret = -ENOIOCTLCMD; break;