From 80eac8dcf1ec423088bbe4cd548841ed56bae5c8 Mon Sep 17 00:00:00 2001 From: Jianwei Fan Date: Fri, 11 Feb 2022 19:06:13 +0800 Subject: [PATCH] media: i2c: gc0312: fix flip and mirror register Signed-off-by: Jianwei Fan Change-Id: Ibc7ebf2de267022497808f61fb5719797ba3b789 --- drivers/media/i2c/gc0312.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/gc0312.c b/drivers/media/i2c/gc0312.c index acf52fbbfe5b..3d6933e7dfbe 100644 --- a/drivers/media/i2c/gc0312.c +++ b/drivers/media/i2c/gc0312.c @@ -140,7 +140,7 @@ static const struct sensor_register gc0312_vga_regs[] = { {0x0f, 0x02}, {0x10, 0x88}, {0x16, 0x00}, - {0x17, 0x17}, + {0x17, 0x10}, {0x18, 0x1a}, {0x19, 0x14}, {0x1b, 0x48}, @@ -790,8 +790,11 @@ static long gc0312_compat_ioctl32(struct v4l2_subdev *sd, } ret = gc0312_ioctl(sd, cmd, inf); - if (!ret) + if (!ret) { ret = copy_to_user(up, inf, sizeof(*inf)); + if (ret) + ret = -EFAULT; + } kfree(inf); break; case RKMODULE_AWB_CFG: @@ -804,12 +807,16 @@ static long gc0312_compat_ioctl32(struct v4l2_subdev *sd, ret = copy_from_user(cfg, up, sizeof(*cfg)); if (!ret) ret = gc0312_ioctl(sd, cmd, cfg); + else + ret = -EFAULT; kfree(cfg); break; case RKMODULE_SET_QUICK_STREAM: ret = copy_from_user(&stream, up, sizeof(u32)); if (!ret) ret = gc0312_ioctl(sd, cmd, &stream); + else + ret = -EFAULT; break; default: ret = -ENOIOCTLCMD;