From 6b4c37ce13db6d5dac02b8d2b2eeb768f1936ba2 Mon Sep 17 00:00:00 2001 From: Jianwei Fan Date: Tue, 2 Aug 2022 07:55:41 +0000 Subject: [PATCH] media: i2c: lt6911uxc: add ioctl RKMODULE_GET_HDMI_MODE Signed-off-by: Jianwei Fan Change-Id: Iffde98bbf7529122e9c474ad91de03e949cbea22 --- drivers/media/i2c/lt6911uxc.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/media/i2c/lt6911uxc.c b/drivers/media/i2c/lt6911uxc.c index 30538f6de9b9..86e2c93a0909 100644 --- a/drivers/media/i2c/lt6911uxc.c +++ b/drivers/media/i2c/lt6911uxc.c @@ -956,6 +956,9 @@ static long lt6911uxc_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) case RKMODULE_GET_MODULE_INFO: lt6911uxc_get_module_inf(lt6911uxc, (struct rkmodule_inf *)arg); break; + case RKMODULE_GET_HDMI_MODE: + *(int *)arg = RKMODULE_HDMIIN_MODE; + break; default: ret = -ENOIOCTLCMD; break; @@ -971,6 +974,7 @@ static long lt6911uxc_compat_ioctl32(struct v4l2_subdev *sd, void __user *up = compat_ptr(arg); struct rkmodule_inf *inf; long ret; + int *seq; switch (cmd) { case RKMODULE_GET_MODULE_INFO: @@ -988,7 +992,21 @@ static long lt6911uxc_compat_ioctl32(struct v4l2_subdev *sd, } kfree(inf); break; + case RKMODULE_GET_HDMI_MODE: + seq = kzalloc(sizeof(*seq), GFP_KERNEL); + if (!seq) { + ret = -ENOMEM; + return ret; + } + ret = lt6911uxc_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;