From 5d9b65e8a74580d8f3f1e039279fa9bf74639fa1 Mon Sep 17 00:00:00 2001 From: Jianwei Fan Date: Fri, 23 Aug 2024 11:42:21 +0800 Subject: [PATCH] media: i2c: tc35874x: add RKMODULE_GET_HDMI_MODE ioctl Change-Id: Ia3952f78b03c7947de8f94174f35180e2d32c270 Signed-off-by: Jianwei Fan --- drivers/media/i2c/tc35874x.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/media/i2c/tc35874x.c b/drivers/media/i2c/tc35874x.c index 68cfd4316fe8..818875acf4d1 100644 --- a/drivers/media/i2c/tc35874x.c +++ b/drivers/media/i2c/tc35874x.c @@ -1954,6 +1954,9 @@ static long tc35874x_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) case RKMODULE_GET_MODULE_INFO: tc35874x_get_module_inf(tc35874x, (struct rkmodule_inf *)arg); break; + case RKMODULE_GET_HDMI_MODE: + *(int *)arg = RKMODULE_HDMIIN_MODE; + break; default: ret = -ENOIOCTLCMD; break; @@ -1970,6 +1973,7 @@ static long tc35874x_compat_ioctl32(struct v4l2_subdev *sd, struct rkmodule_inf *inf; struct rkmodule_awb_cfg *cfg; long ret; + int *seq; switch (cmd) { case RKMODULE_GET_MODULE_INFO: @@ -2001,6 +2005,21 @@ static long tc35874x_compat_ioctl32(struct v4l2_subdev *sd, ret = -EFAULT; kfree(cfg); break; + case RKMODULE_GET_HDMI_MODE: + seq = kzalloc(sizeof(*seq), GFP_KERNEL); + if (!seq) { + ret = -ENOMEM; + return ret; + } + + ret = tc35874x_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;