All of lore.kernel.org
 help / color / mirror / Atom feed
From: Terry Barnaby <terry1@beam.ltd.uk>
To: linux-media@vger.kernel.org
Subject: Video4Linux: Call an I2C subdev function to start a stream after a CSI2 driver has been started
Date: Tue, 10 May 2022 14:35:38 +0100	[thread overview]
Message-ID: <908eb507-677c-359e-154b-da3a7147af0d@beam.ltd.uk> (raw)

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().

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



             reply	other threads:[~2022-05-10 14:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-10 13:35 Terry Barnaby [this message]
2022-05-10 15:33 ` Video4Linux: Call an I2C subdev function to start a stream after a CSI2 driver has been started Kieran Bingham
2022-05-10 15:43   ` Terry Barnaby
2022-05-10 16:01   ` Terry Barnaby
2022-05-11  4:16     ` Kieran Bingham

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=908eb507-677c-359e-154b-da3a7147af0d@beam.ltd.uk \
    --to=terry1@beam.ltd.uk \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.