Hey Laurent, On Tue, Jan 05, 2021 at 05:27:37PM +0200, Laurent Pinchart wrote: > Hello, > > This large patch series has been sitting in my tree for way too long. I > haven't posted it yet as I'm running into an issue on my test hardware > that I can't prove is not a regression from this series, but the > pressure has grown and the patches are better on the list for review. > > There's really not much to detail in the cover letter as there are > "just" fixes and cleanups I developed while bringing up camera support > for an i.MX7D platform, and later on an i.MX8MM that shares the same > MIPI-CSI2 and CSI IP cores (with some differences). > > The issue I've noticed is that the CSI writes two images consecutively > to the same buffer, overwritting memory after the end of the buffer. I > believe this bug to already be present in mainline, but I can't prove it > as my sensor won't work without some of the patches in this series. The > problem could also be sensor-specific. > > Rui, would you be able to test this on your i.MX7 hardware to make sure > there's no regression ? Thanks for these small improvements, ehehh. Well, we already have a regression reported by Fabio in imx6ull, but just give a couple of days to go over this and restore my setup with the warp7 board. ------ Cheers, Rui > > Laurent Pinchart (75): > media: imx: Drop dependency on I2C > media: imx: Move dependency on VIDEO_DEV to common Kconfig symbol > media: imx: Drop manual dependency on VIDEO_IMX_MEDIA > media: imx: Move IMX_IPUV3_CORE dependency to VIDEO_IMX_CSI > media: imx: Compile imx6-media-objs only for CONFIG_VIDEO_IMX_CSI > media: imx: Set default sizes through macros in all drivers > media: imx: utils: Add ability to filter pixel formats by mbus code > media: imx: capture: Use dev_* instead of v4l2_* to log messages > media: imx: capture: Use device name to construct bus_info > media: imx: capture: Remove forward declaration of capture_qops > media: imx: capture: Handle errors from v4l2_fh_open() > media: imx: capture: Clean up capture_priv structure > media: imx: capture: Remove capture_priv stop field > media: imx: capture: Move queue and ctrl handler init to init function > media: imx: capture: Initialize video_device programmatically > media: imx: capture: Register the video device after completing init > media: imx: capture: Store v4l2_pix_format in imx_media_video_dev > media: imx: capture: Move default format init to a separate function > media: imx: capture: Rename querycap handler to capture_querycap > media: imx: capture: Rename ioctl operations with legacy prefix > media: imx: capture: Add a mechanism to disable control inheritance > media: imx: capture: Remove unneeded variable in > __capture_legacy_try_fmt > media: imx: capture: Pass v4l2_pix_format to > __capture_legacy_try_fmt() > media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt() > media: imx: capture: Extract format lookup from > __capture_legacy_try_fmt > media: imx: capture: Simplify capture_validate_fmt() implementation > media: imx: capture: Simplify __capture_legacy_try_fmt() > media: imx: capture: Decouple video node from source with MC-centric > API > media: imx: capture: Expose V4L2_CAP_IO_MC for the MC-centric API > media: imx: imx7-media-csi: Disable legacy video node API > media: imx: capture: Support creating immutable link to capture device > media: imx: imx7-media-csi: Remove control handler > media: imx: imx7-media-csi: Move (de)init from link setup to > .s_stream() > media: imx: imx7-media-csi: Create immutable link to capture device > media: imx: imx7-media-csi: Replace CSICR*_RESET_VAL with values > media: imx: imx7-media-csi: Tidy up register fields MACROS > media: imx: imx7-media-csi: Reorganize code in sections > media: imx: imx7-media-csi: Validate capture format in > .link_validate() > media: imx: imx7-media-csi: Rename imx7_csi_dma_start() to *_setup() > media: imx: imx7-media-csi: Split imx7_csi_dma_stop() > media: imx: imx7-media-csi: Move CSI configuration before source start > media: imx: imx7-media-csi: Merge streaming_start() with csi_enable() > media: imx: imx7-media-csi: Merge hw_reset() with init_interface() > media: imx: imx7-media-csi: Set the MIPI data type based on the bus > code > media: imx: imx7-media-csi: Don't set the buffer stride when disabling > media: imx: imx7-media-csi: Merge all config in imx7_csi_configure() > media: imx: imx7-media-csi: Clear all configurable CSICR18 fields > media: imx: imx7-media-csi: Set RFF burst type in imx7_csi_configure() > media: imx: imx7-media-csi: Simplify imx7_csi_rx_fifo_clear() > media: imx: imx7-media-csi: Don't double-enable the CSI > media: imx: imx7-media-csi: Don't double-enable the RxFIFO > media: imx: imx7-media-csi: Remove double reflash of DMA controller > media: imx: imx7-media-csi: Don't enable SOF and EOF interrupts > media: imx: imx7_media-csi: Add support for additional Bayer patterns > media: v4l2-mc: Add link flags to v4l2_create_fwnode_links_to_pad() > media: imx: imx7_media-csi: Create immutable link to source device > dt-bindings: media: Convert i.MX7 MIPI CSI-2 receiver binding to YAML > dt-bindings: media: fsl,imx7-mipi-csi2: Drop the reset-names property > dt-bindings: media: fsl,imx7-mipi-csi2: Drop fsl,csis-hs-settle > property > media: imx: imx7_mipi_csis: Acquire reset control without naming it > media: imx: imx7_mipi_csis: Fix input size alignment > media: imx: imx7_mipi_csis: Make source .s_power() optional > media: imx: imx7_mipi_csis: Avoid double get of wrap clock > media: imx: imx7_mipi_csis: Drop 10-bit YUV support > media: imx: imx7_mipi_csis: Fix UYVY8 media bus format > media: imx: imx7_mipi_csis: Inline mipi_csis_set_hsync_settle() > media: imx: imx7_mipi_csis: Move link setup check out of locked > section > media: imx: imx7_mipi_csis: Calculate Ths_settle from source pixel > rate > media: imx: imx7_mipi_csis: Turn register access macros into functions > media: imx: imx7_mipi_csis: Fully initialize MIPI_CSIS_DPHYCTRL > register > media: imx: imx7_mipi_csis: Define macros for DPHY_BCTRL_L fields > media: imx: imx7_mipi_csis: Make ISP registers macros take channel ID > media: imx: imx7_mipi_csis: Rename register macros to match datasheet > media: imx: imx7_mipi_csis: Use register macros in > mipi_csis_dump_regs() > media: imx: imx7_mipi_csis: Print shadow registers in > mipi_csis_dump_regs() > > .../bindings/media/fsl,imx7-mipi-csi2.yaml | 194 ++++ > .../bindings/media/imx7-mipi-csi2.txt | 90 -- > MAINTAINERS | 2 +- > drivers/media/v4l2-core/v4l2-mc.c | 6 +- > drivers/staging/media/imx/Kconfig | 12 +- > drivers/staging/media/imx/Makefile | 8 +- > drivers/staging/media/imx/TODO | 9 +- > drivers/staging/media/imx/imx-ic-prp.c | 4 +- > drivers/staging/media/imx/imx-ic-prpencvf.c | 24 +- > drivers/staging/media/imx/imx-media-capture.c | 685 ++++++----- > .../staging/media/imx/imx-media-csc-scaler.c | 2 +- > drivers/staging/media/imx/imx-media-csi.c | 33 +- > .../staging/media/imx/imx-media-dev-common.c | 4 + > drivers/staging/media/imx/imx-media-utils.c | 23 +- > drivers/staging/media/imx/imx-media-vdic.c | 7 +- > drivers/staging/media/imx/imx-media.h | 12 +- > drivers/staging/media/imx/imx6-mipi-csi2.c | 6 +- > drivers/staging/media/imx/imx7-media-csi.c | 1016 ++++++++--------- > drivers/staging/media/imx/imx7-mipi-csis.c | 412 ++++--- > include/media/v4l2-mc.h | 8 +- > 20 files changed, 1422 insertions(+), 1135 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/fsl,imx7-mipi-csi2.yaml > delete mode 100644 Documentation/devicetree/bindings/media/imx7-mipi-csi2.txt > > -- > Regards, > > Laurent Pinchart >