mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Prabhakar <prabhakar.csengg@gmail.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Kieran Bingham <kieran.bingham@ideasonboard.com>,
	Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org,
	Biju Das <biju.das.jz@bp.renesas.com>,
	Fabrizio Castro <fabrizio.castro.jz@renesas.com>,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: Re: [RFC PATCH 00/12] media: ov5645: Add support for streams
Date: Thu, 5 Sep 2024 09:48:27 +0300	[thread overview]
Message-ID: <3eeae62a-e22b-443a-aad4-f1a384c0a3f7@ideasonboard.com> (raw)
In-Reply-To: <20240904210719.52466-1-prabhakar.mahadev-lad.rj@bp.renesas.com>

On 05/09/2024 00:07, Prabhakar wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> Hi All,
> 
> This patch series aims to add the below features,
> - Support subdev active state
> - Support for streams
> - Support for virtual channel
> - Code cleanup
> 
> Sending this is as an RFC, I've done limited testing and Im seeing issue
> when route is updated and wanted some feedback on the implementation.
> 
> When route is updated for the sensor with below command, and when start
> streaming I get "Dangling sink streams: mask 0x1" error. Should the
> corresponding bridge also need to support routes to fix this? or is it
> something missing Ive missed in the current implementation.
> 
> $ media-ctl -R "'ov5645 0-003c' [1/0->0/1[1]]"
> 
> Output after route update:
> - entity 4: ov5645 0-003c (2 pads, 1 link, 1 route)
>              type V4L2 subdev subtype Sensor flags 0
>              device node name /dev/v4l-subdev1
>          routes:
>                  1/0 -> 0/1 [ACTIVE]
>          pad0: SOURCE
>                  [stream:1 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb
>                   crop:(0,0)/1920x1080]
>                  -> "csi-10830400.csi2":0 [ENABLED,IMMUTABLE]
>          pad1: SINK,0x8
>                  [stream:0 fmt:UYVY8_1X16/2592x1944 field:none colorspace:srgb
>                   crop:(0,0)/1920x1080]

I think you actually want 1/0->0/0 routing. The error says that the sink 
side device has routing which does not have a stream at stream ID 1, or 
no routing support at all, which implies a single stream at stream ID 0.

  Tomi

>                
> v4l2-compliance log after this patch series:
> --------------------------------------------
> root@smarc-rzg2l:~# v4l2-compliance -u /dev/v4l-subdev1
> v4l2-compliance 1.28.1-5233, 64 bits, 64-bit time_t
> v4l2-compliance SHA: fc15e229d9d3 2024-07-23 19:22:15
> 
> Compliance test for device /dev/v4l-subdev1:
> 
> Driver Info:
>          Driver version   : 6.11.0
>          Capabilities     : 0x00000002
>                  Streams Support
>          Client Capabilities:[   53.919041] ov5645 0-003c: =================  START STATUS  =================
>   0x0000000000000[   53.927271] ov5645 0-003c: ==================  END STATUS  ==================
> 003
> streams interval-uses-which
> Required ioctls:
>          test VIDIOC_SUDBEV_QUERYCAP: OK
>          test invalid ioctls: OK
> 
> Allow for multiple opens:
>          test second /dev/v4l-subdev1 open: OK
>          test VIDIOC_SUBDEV_QUERYCAP: OK
>          test for unlimited opens: OK
> 
> Debug ioctls:
>          test VIDIOC_LOG_STATUS: OK (Not Supported)
> 
> Input ioctls:
>          test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>          test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>          test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>          test VIDIOC_ENUMAUDIO: OK (Not Supported)
>          test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>          test VIDIOC_G/S_AUDIO: OK (Not Supported)
>          Inputs: 0 Audio Inputs: 0 Tuners: 0
> 
> Output ioctls:
>          test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>          test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>          test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>          test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>          test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>          Outputs: 0 Audio Outputs: 0 Modulators: 0
> 
> Input/Output configuration ioctls:
>          test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>          test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>          test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>          test VIDIOC_G/S_EDID: OK (Not Supported)
> 
> Sub-Device routing ioctls:
>          test Try VIDIOC_SUBDEV_G_ROUTING/VIDIOC_SUBDEV_S_ROUTING: OK
>          test Active VIDIOC_SUBDEV_G_ROUTING/VIDIOC_SUBDEV_S_ROUTING: OK
> 
> Control ioctls:
>          test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
>          test VIDIOC_QUERYCTRL: OK
>          test VIDIOC_G/S_CTRL: OK
>          test VIDIOC_G/S/TRY_EXT_CTRLS: OK
>          test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
>          test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>          Standard Controls: 12 Private Controls: 0
> 
> Format ioctls:
>          test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported)
>          test VIDIOC_G/S_PARM: OK (Not Supported)
>          test VIDIOC_G_FBUF: OK (Not Supported)
>          test VIDIOC_G_FMT: OK (Not Supported)
>          test VIDIOC_TRY_FMT: OK (Not Supported)
>          test VIDIOC_S_FMT: OK (Not Supported)
>          test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>          test Cropping: OK (Not Supported)
>          test Composing: OK (Not Supported)
>          test Scaling: OK (Not Supported)
> 
> Codec ioctls:
>          test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>          test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>          test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
> 
> Buffer ioctls:
>          test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported)
>          test CREATE_BUFS maximum buffers: OK
>          test VIDIOC_REMOVE_BUFS: OK
>          test VIDIOC_EXPBUF: OK (Not Supported)
>          test Requests: OK (Not Supported)
> 
> Total for device /dev/v4l-subdev1: 47, Succeeded: 47, Failed: 0, Warnings: 0
> 
> Cheers,
> Prabhakar
> 
> Lad Prabhakar (12):
>    media: i2c: ov5645: Add V4L2_SUBDEV_FL_HAS_EVENTS and subscribe hooks
>    media: i2c: ov5645: Use local `dev` pointer for subdev device
>      assignment
>    media: i2c: ov5645: Enable runtime PM after
>      v4l2_async_register_subdev()
>    media: i2c: ov5645: Use dev_err_probe instead of dev_err
>    media: i2c: ov5645: Use v4l2_async_register_subdev_sensor()
>    media: i2c: ov5645: Drop `power_lock` mutex
>    media: i2c: ov5645: Use subdev active state
>    media: i2c: ov5645: Switch to {enable,disable}_streams
>    media: i2c: ov5645: Add internal image sink pad
>    media: i2c: ov5645: Report internal routes to userspace
>    media: i2c: ov5645: Report streams using frame descriptors
>    media: i2c: ov5645: Add virtual channel support
> 
>   drivers/media/i2c/ov5645.c | 507 +++++++++++++++++++++++--------------
>   1 file changed, 316 insertions(+), 191 deletions(-)
> 


  parent reply	other threads:[~2024-09-05  6:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-04 21:07 Prabhakar
2024-09-04 21:07 ` [RFC PATCH 01/12] media: i2c: ov5645: Add V4L2_SUBDEV_FL_HAS_EVENTS and subscribe hooks Prabhakar
2024-09-04 21:07 ` [RFC PATCH 02/12] media: i2c: ov5645: Use local `dev` pointer for subdev device assignment Prabhakar
2024-09-04 21:07 ` [RFC PATCH 03/12] media: i2c: ov5645: Enable runtime PM after v4l2_async_register_subdev() Prabhakar
2024-09-04 21:07 ` [RFC PATCH 04/12] media: i2c: ov5645: Use dev_err_probe instead of dev_err Prabhakar
2024-09-04 21:07 ` [RFC PATCH 05/12] media: i2c: ov5645: Use v4l2_async_register_subdev_sensor() Prabhakar
2024-09-04 21:07 ` [RFC PATCH 06/12] media: i2c: ov5645: Drop `power_lock` mutex Prabhakar
2024-09-04 21:07 ` [RFC PATCH 07/12] media: i2c: ov5645: Use subdev active state Prabhakar
2024-09-04 21:07 ` [RFC PATCH 08/12] media: i2c: ov5645: Switch to {enable,disable}_streams Prabhakar
2024-09-04 21:07 ` [RFC PATCH 09/12] media: i2c: ov5645: Add internal image sink pad Prabhakar
2024-09-04 21:07 ` [RFC PATCH 10/12] media: i2c: ov5645: Report internal routes to userspace Prabhakar
2024-09-04 21:07 ` [RFC PATCH 11/12] media: i2c: ov5645: Report streams using frame descriptors Prabhakar
2024-09-04 21:07 ` [RFC PATCH 12/12] media: i2c: ov5645: Add virtual channel support Prabhakar
2024-09-05  6:48 ` Tomi Valkeinen [this message]
2024-09-05  9:11   ` [RFC PATCH 00/12] media: ov5645: Add support for streams Tomi Valkeinen
2024-09-05 10:27     ` Lad, Prabhakar
2024-09-05 10:29       ` Tomi Valkeinen
2024-09-05 10:51         ` Lad, Prabhakar
2024-09-05 10:57           ` Tomi Valkeinen
2024-09-05  9:11   ` Lad, Prabhakar

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=3eeae62a-e22b-443a-aad4-f1a384c0a3f7@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=fabrizio.castro.jz@renesas.com \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=prabhakar.csengg@gmail.com \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=sakari.ailus@linux.intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®