Message ID | 20250504101336.18748-1-hdegoede@redhat.com |
---|---|
Headers | show |
Series | media: mt9m114: Changes to make it work with atomisp devices | expand |
Hi Hans, Thank you for the patch. On Sun, May 04, 2025 at 12:13:22PM +0200, Hans de Goede wrote: > Make aptina_pll_calculate() debug log the calculated p1 min and max values, > this makes it easier to see how the m, n and p1 values were chosen. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/i2c/aptina-pll.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/media/i2c/aptina-pll.c b/drivers/media/i2c/aptina-pll.c > index b1f89bbf9d47..cd2ed4583c97 100644 > --- a/drivers/media/i2c/aptina-pll.c > +++ b/drivers/media/i2c/aptina-pll.c > @@ -129,6 +129,8 @@ int aptina_pll_calculate(struct device *dev, > p1_max = min(limits->p1_max, limits->out_clock_max * div / > (pll->ext_clock * pll->m)); > > + dev_dbg(dev, "pll: p1 min %u max %u\n", p1_min, p1_max); > + > for (p1 = p1_max & ~1; p1 >= p1_min; p1 -= 2) { > unsigned int mf_inc = p1 / gcd(div, p1); > unsigned int mf_high;
Hi Hans, Thank you for the patch. On Sun, May 04, 2025 at 12:13:28PM +0200, Hans de Goede wrote: > Update hblank and vblank defaults when the pixel-array format changes, > to maintain 30 fps on format changes. I don't think this should be the kernel's responsibility to do so. Sakari, any opinion ? > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/media/i2c/mt9m114.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c > index ba8b7660f88a..be3e7bb44ad8 100644 > --- a/drivers/media/i2c/mt9m114.c > +++ b/drivers/media/i2c/mt9m114.c > @@ -333,6 +333,10 @@ > #define MT9M114_MIN_VBLANK 21 > #define MT9M114_DEF_HBLANK 308 > #define MT9M114_DEF_VBLANK 21 > +#define MT9M114_DEF_HTS \ > + (MT9M114_PIXEL_ARRAY_WIDTH + MT9M114_DEF_HBLANK) > +#define MT9M114_DEF_VTS \ > + (MT9M114_PIXEL_ARRAY_HEIGHT + MT9M114_DEF_VBLANK) > > #define MT9M114_DEF_FRAME_RATE 30 > #define MT9M114_MAX_FRAME_RATE 120 > @@ -1130,18 +1134,22 @@ static void mt9m114_pa_ctrl_update_exposure(struct mt9m114 *sensor, bool manual) > static void mt9m114_pa_ctrl_update_blanking(struct mt9m114 *sensor, > const struct v4l2_mbus_framefmt *format) > { > - unsigned int max_blank; > + unsigned int def_blank, max_blank; > > /* Update the blanking controls ranges based on the output size. */ > max_blank = MT9M114_CAM_SENSOR_CFG_LINE_LENGTH_PCK_MAX > - format->width; > + def_blank = MT9M114_DEF_HTS - format->width; > __v4l2_ctrl_modify_range(sensor->pa.hblank, MT9M114_MIN_HBLANK, > - max_blank, 1, MT9M114_DEF_HBLANK); > + max_blank, 1, def_blank); > + __v4l2_ctrl_s_ctrl(sensor->pa.hblank, def_blank); > > max_blank = MT9M114_CAM_SENSOR_CFG_FRAME_LENGTH_LINES_MAX > - format->height; > + def_blank = MT9M114_DEF_VTS - format->height; > __v4l2_ctrl_modify_range(sensor->pa.vblank, MT9M114_MIN_VBLANK, > - max_blank, 1, MT9M114_DEF_VBLANK); > + max_blank, 1, def_blank); > + __v4l2_ctrl_s_ctrl(sensor->pa.vblank, def_blank); > } > > /* -----------------------------------------------------------------------------
Hi Hans, On Sun, May 04, 2025 at 12:13:30PM +0200, Hans de Goede wrote: > Put sensor back in reset on power-down. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/media/i2c/mt9m114.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c > index 43efcbdf614e..fa7c2137c6ba 100644 > --- a/drivers/media/i2c/mt9m114.c > +++ b/drivers/media/i2c/mt9m114.c > @@ -2202,6 +2202,7 @@ static int mt9m114_power_on(struct mt9m114 *sensor) > > static void mt9m114_power_off(struct mt9m114 *sensor) > { > + gpiod_set_value(sensor->reset, 1); The sensor requires a delay of at least 10 EXTCLK cycles here. > clk_disable_unprepare(sensor->clk); > regulator_bulk_disable(ARRAY_SIZE(sensor->supplies), sensor->supplies); > }