diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0689-media-i2c-ov5647-Neither-analogue-gain-nor-exposure-.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0689-media-i2c-ov5647-Neither-analogue-gain-nor-exposure-.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0689-media-i2c-ov5647-Neither-analogue-gain-nor-exposure-.patch b/target/linux/bcm27xx/patches-5.4/950-0689-media-i2c-ov5647-Neither-analogue-gain-nor-exposure-.patch new file mode 100644 index 0000000000..039809e94e --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0689-media-i2c-ov5647-Neither-analogue-gain-nor-exposure-.patch @@ -0,0 +1,58 @@ +From ea0b801a818e837e657c53687f03d62805e2e586 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Wed, 29 Apr 2020 21:47:25 +0100 +Subject: [PATCH] media: i2c: ov5647: Neither analogue gain nor + exposure need EXECUTE_ON_WRITE + +The controls for analogue gain and exposure were defined with +V4L2_CTRL_FLAG_EXECUTE_ON_WRITE. This is not required as we only need +to send changes to the sensor. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> +--- + drivers/media/i2c/ov5647.c | 27 ++++++++++++--------------- + 1 file changed, 12 insertions(+), 15 deletions(-) + +--- a/drivers/media/i2c/ov5647.c ++++ b/drivers/media/i2c/ov5647.c +@@ -1472,7 +1472,6 @@ static int ov5647_probe(struct i2c_clien + struct v4l2_subdev *sd; + struct device_node *np = client->dev.of_node; + u32 xclk_freq; +- struct v4l2_ctrl *ctrl; + int hblank; + + sensor = devm_kzalloc(dev, sizeof(*sensor), GFP_KERNEL); +@@ -1525,20 +1524,18 @@ static int ov5647_probe(struct i2c_clien + V4L2_EXPOSURE_MANUAL, /* max */ + 0, /* skip_mask */ + V4L2_EXPOSURE_MANUAL); /* default */ +- ctrl = v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops, +- V4L2_CID_EXPOSURE, +- 4, /* min lines */ +- 65535, /* max lines (4+8+4 bits)*/ +- 1, /* step */ +- 1000); /* default number of lines */ +- ctrl->flags |= V4L2_CTRL_FLAG_EXECUTE_ON_WRITE; +- ctrl = v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops, +- V4L2_CID_ANALOGUE_GAIN, +- 16, /* min, 16 = 1.0x */ +- 1023, /* max (10 bits) */ +- 1, /* step */ +- 32); /* default, 32 = 2.0x */ +- ctrl->flags |= V4L2_CTRL_FLAG_EXECUTE_ON_WRITE; ++ v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops, ++ V4L2_CID_EXPOSURE, ++ 4, /* min lines */ ++ 65535, /* max lines (4+8+4 bits)*/ ++ 1, /* step */ ++ 1000); /* default number of lines */ ++ v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops, ++ V4L2_CID_ANALOGUE_GAIN, ++ 16, /* min, 16 = 1.0x */ ++ 1023, /* max (10 bits) */ ++ 1, /* step */ ++ 32); /* default, 32 = 2.0x */ + + /* Set the default mode before we init the subdev */ + sensor->mode = OV5647_DEFAULT_MODE; |