All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Pratyush Yadav <p.yadav@ti.com>
Cc: Maxime Ripard <mripard@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Vinod Koul <vkoul@kernel.org>,
	Peter Ujfalusi <peter.ujfalusi@gmail.com>,
	Steve Longerbeam <slongerbeam@gmail.com>,
	Benoit Parrot <bparrot@ti.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
	dmaengine@vger.kernel.org, Vignesh Raghavendra <vigneshr@ti.com>,
	Chunfeng Yun <chunfeng.yun@mediatek.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: [PATCH v2 13/18] media: ti: Add CSI2RX support for J721E
Date: Fri, 4 Jun 2021 11:04:29 +0300	[thread overview]
Message-ID: <b930c6e5-1210-5b13-2e29-25ffaa99519d@ideasonboard.com> (raw)
In-Reply-To: <20210603124920.5o34klhlhjg5phlj@ti.com>

On 03/06/2021 15:49, Pratyush Yadav wrote:
> On 27/05/21 04:29PM, Tomi Valkeinen wrote:
>> Hi Pratyush,
>>
>> On 26/05/2021 18:23, Pratyush Yadav wrote:
>>> TI's J721E uses the Cadence CSI2RX and DPHY peripherals to facilitate
>>> capture over a CSI-2 bus.
>>>
>>> The Cadence CSI2RX IP acts as a bridge between the TI specific parts and
>>> the CSI-2 protocol parts. TI then has a wrapper on top of this bridge
>>> called the SHIM layer. It takes in data from stream 0, repacks it, and
>>> sends it to memory over PSI-L DMA.
>>>
>>> This driver acts as the "front end" to V4L2 client applications. It
>>> implements the required ioctls and buffer operations, passes the
>>> necessary calls on to the bridge, programs the SHIM layer, and performs
>>> DMA via the dmaengine API to finally return the data to a buffer
>>> supplied by the application.
>>>
>>> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
>>
>> I noticed that my test app didn't work at all with this, and I also wasn't
>> able to use v4l2-ctl to set the format.
> 
> I have not used v4l2-ctl, but I can see yavta works fine. What command
> did you use for setting format via v4l2-ctl?
> 
>>
>> At least for my test app the problem was that this driver doesn't initialize
>> the format at all. My app first calls VIDIOC_G_FMT with v4l2_format.type ==
>> V4L2_BUF_TYPE_VIDEO_CAPTURE, then after the call modifies the fields it
>> wants to change and calls VIDIOC_S_FMT. This failed, as G_FMT returned
>> uninitialized fmt, i.e. type was 0, which my app didn't set again.
>>
>> I believe the driver should have an initial format, something that it will
>> accept if an app calls G_FMT and then S_FMT.
> 
> Right. This is a bug. The question is what should the initial format be?
> It is more or less arbitrary since there is no configuration made yet
> and we don't know what the camera can or will send. So for example, what
> if I use UYVY 640x480? The camera might not support it at all. Is it
> still OK to have it as the default?

I think it doesn't really matter what the initial format is, as long as 
it's valid for the subdev itself. There are two separate things:

1) Subdev config, where the subdev is considered independently from the 
other subdevs. E.g. the formats in the input pads and output pads should 
be valid, taking into account the capabilities of the subdev. The subdev 
driver has to take care of these, i.e. if the user sets a format on a 
pad, the driver must adjust the other pads (if needed) to keep the 
subdev config valid.

2) pipeline validation, where all the subdevs in the pipeline are looked 
at and validated that the settings are compatible.

We're talking about 1) here, and it doesn't matter if the camera 
supports the csirx initial format or not.

  Tomi

WARNING: multiple messages have this Message-ID (diff)
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Pratyush Yadav <p.yadav@ti.com>
Cc: Maxime Ripard <mripard@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Vinod Koul <vkoul@kernel.org>,
	Peter Ujfalusi <peter.ujfalusi@gmail.com>,
	Steve Longerbeam <slongerbeam@gmail.com>,
	Benoit Parrot <bparrot@ti.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
	dmaengine@vger.kernel.org, Vignesh Raghavendra <vigneshr@ti.com>,
	Chunfeng Yun <chunfeng.yun@mediatek.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: [PATCH v2 13/18] media: ti: Add CSI2RX support for J721E
Date: Fri, 4 Jun 2021 11:04:29 +0300	[thread overview]
Message-ID: <b930c6e5-1210-5b13-2e29-25ffaa99519d@ideasonboard.com> (raw)
In-Reply-To: <20210603124920.5o34klhlhjg5phlj@ti.com>

On 03/06/2021 15:49, Pratyush Yadav wrote:
> On 27/05/21 04:29PM, Tomi Valkeinen wrote:
>> Hi Pratyush,
>>
>> On 26/05/2021 18:23, Pratyush Yadav wrote:
>>> TI's J721E uses the Cadence CSI2RX and DPHY peripherals to facilitate
>>> capture over a CSI-2 bus.
>>>
>>> The Cadence CSI2RX IP acts as a bridge between the TI specific parts and
>>> the CSI-2 protocol parts. TI then has a wrapper on top of this bridge
>>> called the SHIM layer. It takes in data from stream 0, repacks it, and
>>> sends it to memory over PSI-L DMA.
>>>
>>> This driver acts as the "front end" to V4L2 client applications. It
>>> implements the required ioctls and buffer operations, passes the
>>> necessary calls on to the bridge, programs the SHIM layer, and performs
>>> DMA via the dmaengine API to finally return the data to a buffer
>>> supplied by the application.
>>>
>>> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
>>
>> I noticed that my test app didn't work at all with this, and I also wasn't
>> able to use v4l2-ctl to set the format.
> 
> I have not used v4l2-ctl, but I can see yavta works fine. What command
> did you use for setting format via v4l2-ctl?
> 
>>
>> At least for my test app the problem was that this driver doesn't initialize
>> the format at all. My app first calls VIDIOC_G_FMT with v4l2_format.type ==
>> V4L2_BUF_TYPE_VIDEO_CAPTURE, then after the call modifies the fields it
>> wants to change and calls VIDIOC_S_FMT. This failed, as G_FMT returned
>> uninitialized fmt, i.e. type was 0, which my app didn't set again.
>>
>> I believe the driver should have an initial format, something that it will
>> accept if an app calls G_FMT and then S_FMT.
> 
> Right. This is a bug. The question is what should the initial format be?
> It is more or less arbitrary since there is no configuration made yet
> and we don't know what the camera can or will send. So for example, what
> if I use UYVY 640x480? The camera might not support it at all. Is it
> still OK to have it as the default?

I think it doesn't really matter what the initial format is, as long as 
it's valid for the subdev itself. There are two separate things:

1) Subdev config, where the subdev is considered independently from the 
other subdevs. E.g. the formats in the input pads and output pads should 
be valid, taking into account the capabilities of the subdev. The subdev 
driver has to take care of these, i.e. if the user sets a format on a 
pad, the driver must adjust the other pads (if needed) to keep the 
subdev config valid.

2) pipeline validation, where all the subdevs in the pipeline are looked 
at and validated that the settings are compatible.

We're talking about 1) here, and it doesn't matter if the camera 
supports the csirx initial format or not.

  Tomi

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  reply	other threads:[~2021-06-04  8:04 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-26 15:22 [PATCH v2 00/18] CSI2RX support on J721E Pratyush Yadav
2021-05-26 15:22 ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 01/18] phy: Distinguish between Rx and Tx for MIPI D-PHY with submodes Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 02/18] phy: cdns-dphy: Prepare for Rx support Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 03/18] phy: cdns-dphy: Allow setting mode Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 04/18] phy: cdns-dphy: Add Rx support Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-28  6:09   ` Tomi Valkeinen
2021-05-28  6:09     ` Tomi Valkeinen
2021-05-26 15:22 ` [PATCH v2 05/18] media: ov5640: Use runtime PM to control sensor power Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-28  6:44   ` Tomi Valkeinen
2021-05-28  6:44     ` Tomi Valkeinen
2021-05-28  7:25     ` Pratyush Yadav
2021-05-28  7:25       ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 06/18] media: cadence: csi2rx: Add external DPHY support Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-28  7:23   ` Tomi Valkeinen
2021-05-28  7:23     ` Tomi Valkeinen
2021-05-28  7:30     ` Pratyush Yadav
2021-05-28  7:30       ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 07/18] media: cadence: csi2rx: Soft reset the streams before starting capture Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 08/18] media: cadence: csi2rx: Set the STOP bit when stopping a stream Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-26 15:22 ` [PATCH v2 09/18] media: cadence: csi2rx: Fix stream data configuration Pratyush Yadav
2021-05-26 15:22   ` Pratyush Yadav
2021-05-26 15:23 ` [PATCH v2 10/18] media: cadence: csi2rx: Populate subdev devnode Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-05-28  7:16   ` Tomi Valkeinen
2021-05-28  7:16     ` Tomi Valkeinen
2021-05-28  7:24     ` Pratyush Yadav
2021-05-28  7:24       ` Pratyush Yadav
2021-05-28  7:35       ` Tomi Valkeinen
2021-05-28  7:35         ` Tomi Valkeinen
2021-06-03 12:42         ` Pratyush Yadav
2021-06-03 12:42           ` Pratyush Yadav
2021-05-26 15:23 ` [PATCH v2 11/18] dmaengine: ti: k3-psil-j721e: Add entry for CSI2RX Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-05-31  6:51   ` Péter Ujfalusi
2021-05-31  6:51     ` Péter Ujfalusi
2021-05-31  9:16     ` Pratyush Yadav
2021-05-31  9:16       ` Pratyush Yadav
2021-05-26 15:23 ` [PATCH v2 12/18] media: Re-structure TI platform drivers Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-05-28  8:29   ` Tomi Valkeinen
2021-05-28  8:29     ` Tomi Valkeinen
2021-05-26 15:23 ` [PATCH v2 13/18] media: ti: Add CSI2RX support for J721E Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-05-27 13:29   ` Tomi Valkeinen
2021-05-27 13:29     ` Tomi Valkeinen
2021-06-03 12:49     ` Pratyush Yadav
2021-06-03 12:49       ` Pratyush Yadav
2021-06-04  8:04       ` Tomi Valkeinen [this message]
2021-06-04  8:04         ` Tomi Valkeinen
2021-05-26 15:23 ` [PATCH v2 14/18] media: dt-bindings: Add DT bindings for TI J721E CSI2RX driver Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-05-27 14:23   ` Rob Herring
2021-05-27 14:23     ` Rob Herring
2021-06-03 12:43     ` Pratyush Yadav
2021-06-03 12:43       ` Pratyush Yadav
2021-05-26 15:23 ` [PATCH v2 15/18] media: dt-bindings: Convert Cadence CSI2RX binding to YAML Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-06-01 17:45   ` Rob Herring
2021-06-01 17:45     ` Rob Herring
2021-06-03 12:23     ` Pratyush Yadav
2021-06-03 12:23       ` Pratyush Yadav
2021-05-26 15:23 ` [PATCH v2 16/18] phy: dt-bindings: Convert Cadence DPHY " Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-06-02 19:51   ` Rob Herring
2021-06-02 19:51     ` Rob Herring
2021-05-26 15:23 ` [PATCH v2 17/18] phy: dt-bindings: cdns,dphy: make clocks optional Pratyush Yadav
2021-05-26 15:23   ` Pratyush Yadav
2021-06-02 13:27   ` Maxime Ripard
2021-06-02 13:27     ` Maxime Ripard
2021-06-03  8:16     ` Pratyush Yadav
2021-06-03  8:16       ` Pratyush Yadav
2021-06-02 20:03   ` Rob Herring
2021-06-02 20:03     ` Rob Herring
2021-05-26 15:23 ` [PATCH v2 18/18] phy: dt-bindings: cdns,dphy: add power-domains property Pratyush Yadav
2021-05-26 15:23   ` [PATCH v2 18/18] phy: dt-bindings: cdns, dphy: " Pratyush Yadav
2021-06-02 20:03   ` [PATCH v2 18/18] phy: dt-bindings: cdns,dphy: " Rob Herring
2021-06-02 20:03     ` Rob Herring
2021-05-27 12:42 ` [PATCH v2 00/18] CSI2RX support on J721E Tomi Valkeinen
2021-05-27 12:42   ` Tomi Valkeinen
2021-06-03 12:54   ` Pratyush Yadav
2021-06-03 12:54     ` Pratyush Yadav
2021-05-27 13:23 ` Tomi Valkeinen
2021-05-27 13:23   ` Tomi Valkeinen
2021-06-03 12:52   ` Pratyush Yadav
2021-06-03 12:52     ` Pratyush Yadav
2021-06-04  7:54     ` Tomi Valkeinen
2021-06-04  7:54       ` Tomi Valkeinen

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=b930c6e5-1210-5b13-2e29-25ffaa99519d@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=bparrot@ti.com \
    --cc=chunfeng.yun@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=kishon@ti.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=mchehab@kernel.org \
    --cc=mripard@kernel.org \
    --cc=p.yadav@ti.com \
    --cc=peter.ujfalusi@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=slongerbeam@gmail.com \
    --cc=vigneshr@ti.com \
    --cc=vkoul@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.