Hi Terry, Quoting Terry Barnaby (2022-05-10 14:35:38) > Hi, > > We are working on a system that uses a NXP IMX8MP SOC with a TP2855 > analogue video front end chip that can capture 1920x1080p25 or PAL > 720x576i25 analogue video streams which is generally working using > gstreamer as the higher level software driving this. > > We have an intermittent video stream start up problem which we believe > is down to: > > 1. The TP2855 is initialised first and its subdev *_s_stream() call is > called to start the video input. > > 2. The NXP CSI2 video input hardware is then started: > imx8-mipi-csi2-sam.c: mipi_csis_s_stream(). I don't think I can see this file in the latest linux sources. Are you working on an out of tree BSP driver supported by a vendor? If so - you might be able to contact them directly for support, but if we don't have the source code it can be hard to support your issue. -- Regards Kieran > > 3. The TP2855 enables the CSI2 clock after its *_s_stream() call, > probably in hardware after its PLL's have locked, by sending a CSI2 > start sequence on the CSI2 clock pair. This clock is then a continuous > clock ie. it does not go into low power mode during horizontal/vertical > blanking. > > 4. The NXP CSI2 video input hardware, based on some Samsung IP, does not > see the CSI2 clock unless it sees the CSI2 start sequence and depending > on timings it may not see this at video pipeline startup and we get not > video stream from the CSI2 hardware. > > I was hoping the subdev *_s_stream() call would be after all of the > hardware's pipeline was setup so I could instigate a CSI2 clock restart > in the TP2855 driver, but unfortunately this is called before the CSI2 > hardware is setup. > > I can add a one shot timer to do this in the TP2855 subdev *_s_stream() > call, but obviously this is not ideal. Is there anyway to get a subdev > function called in the video4linux API automatically once all of the > video streams hardware is setup ? > > Any ideas/recommendations ? > > Terry > >