mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-15 04:42:02 +00:00
54 lines
1.7 KiB
Diff
54 lines
1.7 KiB
Diff
From 9694544fd4df1f7cf46676d8ecd38692f49ca26b Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Thu, 17 Jun 2021 13:00:39 +0100
|
|
Subject: [PATCH 415/552] media: i2c: imx290: Fix the pixel rate at 148.5Mpix/s
|
|
|
|
Whilst the datasheet lists the link frequency changing between
|
|
1080p and 720p modes, reality is that with the default blanking
|
|
we have
|
|
(1920 + 280) * (1080 + 45) * 60fps = 148.5MPix/s
|
|
and
|
|
(1280 + 2020) * (720 + 30) * 60fps = 148.5MPix/s
|
|
and this reflects reality whether in 10 or 12 bit readout modes.
|
|
|
|
How this relates to link frequency is unclear as it differs
|
|
from the datasheet, but all exposure and frame rate calcs need
|
|
the pixel rate to be correct, so make it so.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/media/i2c/imx290.c | 16 +---------------
|
|
1 file changed, 1 insertion(+), 15 deletions(-)
|
|
|
|
diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
|
|
index af75e10593fa..6b990e8c6bff 100644
|
|
--- a/drivers/media/i2c/imx290.c
|
|
+++ b/drivers/media/i2c/imx290.c
|
|
@@ -853,23 +853,9 @@ static inline u8 imx290_get_link_freq_index(struct imx290 *imx290)
|
|
return imx290->current_mode->link_freq_index;
|
|
}
|
|
|
|
-static s64 imx290_get_link_freq(struct imx290 *imx290)
|
|
-{
|
|
- u8 index = imx290_get_link_freq_index(imx290);
|
|
-
|
|
- return *(imx290_link_freqs_ptr(imx290) + index);
|
|
-}
|
|
-
|
|
static u64 imx290_calc_pixel_rate(struct imx290 *imx290)
|
|
{
|
|
- s64 link_freq = imx290_get_link_freq(imx290);
|
|
- u8 nlanes = imx290->nlanes;
|
|
- u64 pixel_rate;
|
|
-
|
|
- /* pixel rate = link_freq * 2 * nr_of_lanes / bits_per_sample */
|
|
- pixel_rate = link_freq * 2 * nlanes;
|
|
- do_div(pixel_rate, imx290->bpp);
|
|
- return pixel_rate;
|
|
+ return 148500000;
|
|
}
|
|
|
|
static int imx290_set_fmt(struct v4l2_subdev *sd,
|
|
--
|
|
2.33.0
|
|
|