Hi, Am Sonntag, 14. April 2024, 22:34:40 CEST schrieb git@xxxxxxxxxxxx: > From: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > > The output image is defined as being 4208x3118 pixels in size. > Y_ADD_STA register was set to 0, and Y_ADD_END to 3118, giving > 3119 lines total. > > The datasheet lists a requirement for Y_ADD_STA to be a multiple > of a power of 2 depending on binning/scaling mode (2 for full pixel, > 4 for x2-bin/scale, 8 for (x2-bin)+(x2-subsample) or x4-bin, or 16 > for (x4-bin)+(x2-subsample)). > (Y_ADD_END – Y_ADD_STA + 1) also has to be a similar power of 2. > > The current configuration for the full res modes breaks that second > requirement, and we can't increase Y_ADD_STA to 1 to retain exactly > the same field of view as that then breaks the first requirement. > For the binned modes, they are worse off as 3118 is not a multiple of > 4. > > Increase the main mode to 4208x3120 so that it is the same FOV as the > binned modes, with Y_ADD_STA at 0. > Fix Y_ADD_STA and Y_ADD_END for the binned modes so that they meet the > sensor requirements. > > This does change the Bayer order as the default configuration is for > H&V flips to be enabled, so readout is from Y_STA_END to Y_ADD_STA, > and this patch has changed Y_STA_END. > > Signed-off-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > Reviewed-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx> > Signed-off-by: Luis Garcia <git@xxxxxxxxxxxx> > Reviewed-by: Pavel Machek <pavel@xxxxxx> > --- > drivers/media/i2c/imx258.c | 26 +++++++++++++------------- > 1 file changed, 13 insertions(+), 13 deletions(-) > > diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c > index 2dbafd21dd70..4a7048d834c6 100644 > --- a/drivers/media/i2c/imx258.c > +++ b/drivers/media/i2c/imx258.c > [snip] > @@ -707,7 +707,7 @@ static int imx258_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) > /* Initialize try_fmt */ > try_fmt->width = supported_modes[0].width; > try_fmt->height = supported_modes[0].height; > - try_fmt->code = MEDIA_BUS_FMT_SGRBG10_1X10; > + try_fmt->code = MEDIA_BUS_FMT_SBGGR10_1X10; Does someone have access to the data sheet? I am wondering how the arrangement of the pixel array is shown. I've the following (identical) array for these sensors: * imx290/imx327 * imx219 * imx415 G B G B R G R G G B G B R G R G Yet each driver configures a different bus format: * imx290.c: MEDIA_BUS_FMT_SRGGB10_1X10 * imx415.c: MEDIA_BUS_FMT_SGBRG10_1X10 * imx219.c: MEDIA_BUS_FMT_SRGGB10_1X10 (no flip) imx219 actually defines all 4 10 Bit Bayer patterns and the comment indicates this depends on how v or h flip is configured. Reading the commit message apparently the same is true for this driver. Still this is confusing as I would have expected flipping to be disabled by default, expecting the same Bayer pattern order for all drivers. Can someone shed some light? Best regards, Alexander -- TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany Amtsgericht München, HRB 105018 Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider http://www.tq-group.com/