From f743a7adbd6e230d66a6206fa115b59fec2d88eb Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 22 Nov 2023 01:07:42 +0000
Subject: [PATCH] disable pwm7
---
kernel/drivers/media/i2c/gc2145.c | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/kernel/drivers/media/i2c/gc2145.c b/kernel/drivers/media/i2c/gc2145.c
index bb7388e..0ea0b91 100644
--- a/kernel/drivers/media/i2c/gc2145.c
+++ b/kernel/drivers/media/i2c/gc2145.c
@@ -2583,8 +2583,11 @@
}
ret = gc2145_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:
@@ -2597,12 +2600,16 @@
ret = copy_from_user(cfg, up, sizeof(*cfg));
if (!ret)
ret = gc2145_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 = gc2145_ioctl(sd, cmd, &stream);
+ else
+ ret = -EFAULT;
break;
default:
ret = -ENOIOCTLCMD;
@@ -2871,7 +2878,7 @@
if (ret)
dev_info(dev, "Failed to get power regulators\n");
- return __gc2145_power_on(gc2145);
+ return ret;
}
static int gc2145_probe(struct i2c_client *client,
@@ -2915,11 +2922,6 @@
ret = gc2145_parse_of(gc2145);
if (ret != 0)
- return -EINVAL;
-
- gc2145->xvclk_frequency = clk_get_rate(gc2145->xvclk);
- if (gc2145->xvclk_frequency < 6000000 ||
- gc2145->xvclk_frequency > 27000000)
return -EINVAL;
v4l2_ctrl_handler_init(&gc2145->ctrls, 3);
@@ -2972,6 +2974,12 @@
gc2145->fps = DIV_ROUND_CLOSEST(gc2145->framesize_cfg[0].max_fps.denominator,
gc2145->framesize_cfg[0].max_fps.numerator);
+ __gc2145_power_on(gc2145);
+ gc2145->xvclk_frequency = clk_get_rate(gc2145->xvclk);
+ if (gc2145->xvclk_frequency < 6000000 ||
+ gc2145->xvclk_frequency > 27000000)
+ goto error;
+
ret = gc2145_detect(gc2145);
if (ret < 0) {
dev_info(&client->dev, "Check id failed:\n"
--
Gitblit v1.6.2