On 2/10/22 1:04 PM, Jacopo Mondi wrote: Hello Jacopo, > v1: > https://patchwork.linuxtv.org/project/linux-media/list/?series=7249 > > A branch for testing based on the most recent media-master is available at > https://git.sr.ht/~jmondi_/linux #jmondi/media-master/ov5640-v2 > > If anyone with a DVP setup could verify I have not broken their use case > I would very much appreciate that :) I started testing this on my bench. So far things look good. To be able to test this, I have to revert this patch : "media: i2c: ov5640: Remain in power down for DVP mode unless streaming" Otherwise the sensor will not power up when starting streaming. I have tested several formats, as you worked more on this sensor, could you tell me, does format YUYV_2x8 work in parallel mode at 1920x1080 or 1024x768 ? I managed to get it working fine at 640x480 . The sensor looks to report valid framesizes for this mbus code : # v4l2-ctl -d /dev/v4l-subdev1 --list-subdev-mbus-codes \ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=0) 0x4001: MEDIA_BUS_FMT_JPEG_1X8 0x2006: MEDIA_BUS_FMT_UYVY8_2X8 0x200f: MEDIA_BUS_FMT_UYVY8_1X16 0x2008: MEDIA_BUS_FMT_YUYV8_2X8 0x2011: MEDIA_BUS_FMT_YUYV8_1X16 0x1008: MEDIA_BUS_FMT_RGB565_2X8_LE 0x1007: MEDIA_BUS_FMT_RGB565_2X8_BE 0x1017: MEDIA_BUS_FMT_RGB565_1X16 0x100a: MEDIA_BUS_FMT_RGB888_1X24 0x1013: MEDIA_BUS_FMT_BGR888_1X24 0x3001: MEDIA_BUS_FMT_SBGGR8_1X8 0x3013: MEDIA_BUS_FMT_SGBRG8_1X8 0x3002: MEDIA_BUS_FMT_SGRBG8_1X8 0x3014: MEDIA_BUS_FMT_SRGGB8_1X8 # v4l2-ctl -d /dev/v4l-subdev1 --list-subdev-framesizes pad=0,code=0x2008 ioctl: VIDIOC_SUBDEV_ENUM_FRAME_SIZE (pad=0) Size Range: 160x120 - 160x120 Size Range: 176x144 - 176x144 Size Range: 320x240 - 320x240 Size Range: 640x480 - 640x480 Size Range: 720x480 - 720x480 Size Range: 720x576 - 720x576 Size Range: 1024x768 - 1024x768 Size Range: 1280x720 - 1280x720 Size Range: 1920x1080 - 1920x1080 Size Range: 2592x1944 - 2592x1944 # but the ISC does not receive any frames at 1024x768 and 1920x1080. What I can say is that the raw bayer format works at 1920x1080 , frames are received correctly. Thanks, Eugen > > v1 -> v2: > - rework the modes definition to process the full pixel array > - rework get_selection to report the correct BOUND and DEFAULT targets > - implement init_cfg > - minor style changes as suggested by Laurent > - test with 1 data lane > > Thanks > j > > Jacopo Mondi (23): > media: ov5640: Add pixel rate to modes > media: ov5604: Re-arrange modes definition > media: ov5640: Add ov5640_is_csi2() function > media: ov5640: Associate bpp with formats > media: ov5640: Add LINK_FREQ control > media: ov5640: Update pixel_rate and link_freq > media: ov5640: Rework CSI-2 clock tree > media: ov5640: Rework timings programming > media: ov5640: Fix 720x480 in RGB888 mode > media: ov5640: Rework analog crop rectangles > media: ov5640: Re-sort per-mode register tables > media: ov5640: Remove ov5640_mode_init_data > media: ov5640: Add HBLANK control > media: ov5640: Add VBLANK control > media: ov5640: Fix durations to comply with FPS > media: ov5640: Implement init_cfg > media: ov5640: Implement get_selection > media: ov5640: Limit frame_interval to DVP mode only > media: ov5640: Register device properties > media: ov5640: Add RGB565_1X16 format > media: ov5640: Add RGB888/BGR888 formats > media: ov5640: Restrict sizes to mbus code > media: ov5640: Adjust format to bpp in s_fmt > > drivers/media/i2c/ov5640.c | 1143 ++++++++++++++++++++++++++---------- > 1 file changed, 830 insertions(+), 313 deletions(-) > > -- > 2.35.0 >