media: i2c: lt7911d: add ioctl RKMODULE_GET_HDMI_MODE

Signed-off-by: Jianwei Fan <jianwei.fan@rock-chips.com>
Change-Id: Iedacb279f362651deaba63b44b05a974b1dc3448
This commit is contained in:
Jianwei Fan
2022-08-02 08:00:28 +00:00
committed by Tao Huang
parent 5b8d53d61f
commit 25f5becb7d

View File

@@ -917,6 +917,9 @@ static long lt7911d_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
case RKMODULE_GET_MODULE_INFO:
lt7911d_get_module_inf(lt7911d, (struct rkmodule_inf *)arg);
break;
case RKMODULE_GET_HDMI_MODE:
*(int *)arg = RKMODULE_HDMIIN_MODE;
break;
default:
ret = -ENOIOCTLCMD;
break;
@@ -932,6 +935,7 @@ static long lt7911d_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:
@@ -949,7 +953,21 @@ static long lt7911d_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 = lt7911d_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;