summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2023-01-08 17:06:26 +0300
committerMauro Carvalho Chehab <mchehab@kernel.org>2023-02-08 10:24:33 +0300
commit3406639ee2ad5bf736b9b38091bf108ac600327a (patch)
tree2ad777c2cf6c233acbeff1204ae67fd10e9550fd /drivers/staging
parent0611888592df86c3f348146dc26d4b00f850e194 (diff)
downloadlinux-3406639ee2ad5bf736b9b38091bf108ac600327a.tar.xz
media: atomisp: ov2680: Use defines for fps, lines-per-frame and skip-frames
The fps, lines-per-frame and skip-frames values are the same for all resolutions, use defines for these. The ov2680_res_preview[] incorrectly sets fps to 60 for some low-res modes, this is incorrect with the current fixed (resolution independent) lines-per-frame value. Note this not drop the now no longer used fps, lines-per-frame and skip-frames struct ov2680_resolution members. The entire struct is going away in the next patches so that would just cause unnecessary changes. Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/media/atomisp/i2c/atomisp-ov2680.c16
-rw-r--r--drivers/staging/media/atomisp/i2c/ov2680.h2
2 files changed, 6 insertions, 12 deletions
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
index ed547e0a38cf..36f94406af0f 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-ov2680.c
@@ -678,11 +678,8 @@ fail_power_on:
static int ov2680_g_frame_interval(struct v4l2_subdev *sd,
struct v4l2_subdev_frame_interval *interval)
{
- struct ov2680_device *dev = to_ov2680_sensor(sd);
-
interval->interval.numerator = 1;
- interval->interval.denominator = dev->res->fps;
-
+ interval->interval.denominator = OV2680_FPS;
return 0;
}
@@ -726,8 +723,8 @@ static int ov2680_enum_frame_interval(struct v4l2_subdev *sd,
fie->which > V4L2_SUBDEV_FORMAT_ACTIVE)
return -EINVAL;
- fract.denominator = ov2680_res_preview[fie->index].fps;
fract.numerator = 1;
+ fract.denominator = OV2680_FPS;
fie->interval = fract;
@@ -736,12 +733,7 @@ static int ov2680_enum_frame_interval(struct v4l2_subdev *sd,
static int ov2680_g_skip_frames(struct v4l2_subdev *sd, u32 *frames)
{
- struct ov2680_device *dev = to_ov2680_sensor(sd);
-
- mutex_lock(&dev->input_lock);
- *frames = dev->res->skip_frames;
- mutex_unlock(&dev->input_lock);
-
+ *frames = OV2680_SKIP_FRAMES;
return 0;
}
@@ -785,7 +777,7 @@ static int ov2680_init_controls(struct ov2680_device *sensor)
const struct v4l2_ctrl_ops *ops = &ov2680_ctrl_ops;
struct ov2680_ctrls *ctrls = &sensor->ctrls;
struct v4l2_ctrl_handler *hdl = &ctrls->handler;
- int exp_max = sensor->res->lines_per_frame - OV2680_INTEGRATION_TIME_MARGIN;
+ int exp_max = OV2680_LINES_PER_FRAME - OV2680_INTEGRATION_TIME_MARGIN;
v4l2_ctrl_handler_init(hdl, 4);
diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index d9e794759575..35c8ea50f6ed 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -38,6 +38,8 @@
/* 1704 * 1294 * 30fps = 66MHz pixel clock */
#define OV2680_PIXELS_PER_LINE 1704
#define OV2680_LINES_PER_FRAME 1294
+#define OV2680_FPS 30
+#define OV2680_SKIP_FRAMES 3
/* If possible send 16 extra rows / lines to the ISP as padding */
#define OV2680_END_MARGIN 16