Linux kernel regressions
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Cc: Martijn Braam <martijn@brixit.nl>,
	regressions@lists.linux.dev, jernej.skrabec@gmail.com,
	sakari.ailus@linux.intel.com, mchehab@kernel.org,
	linux-media@vger.kernel.org, hverkuil@xs4all.nl
Subject: Re: [REGRESSION] breakage in sun6i-csi media api
Date: Fri, 2 Jun 2023 13:03:52 +0300	[thread overview]
Message-ID: <20230602100352.GK19463@pendragon.ideasonboard.com> (raw)
In-Reply-To: <ZHm46or-MhTb457b@aptenodytes>

Hi Paul,

On Fri, Jun 02, 2023 at 11:39:54AM +0200, Paul Kocialkowski wrote:
> Hi,
> 
> (Re-adding folks from the original email, adding Laurent and Hans.)
> 
> On Fri 02 Jun 23, 11:24, Martijn Braam wrote:
> > Hi Paul,
> > 
> > That's basically it yes. My software doesn't expect the bridge block,
> > because it wasn't there. The pipeline always worked "automatically".
> > 
> > This is the workaround that's been made now it run on newer kernels:
> > https://gitlab.com/postmarketOS/megapixels/-/merge_requests/31
> > 
> > I'm pretty sure format propagation would fix this issue.
> 
> Okay that's good to know.
> 
> To be honest it's still not very clear to me if in-driver format propagation is
> a "nice to have" feature or something that all media pipeline drivers are
> supposed to implement.

For MC-based drivers, in-kernel propagation *inside* subdevs is
mandatory, in-kernel propagration *between* subdevs is not allowed. The
latter is the responsibility of userspace.

For traditional (I'd say legacy, but I know not everybody likes that
term :-)) drivers that only expose video device nodes and do not expose
subdev nodes to userspace, the driver is responsible for configuring the
full pipeline internally based on the S_FMT call on the video nodes
only. This isn't applicable to the sun6i-csi driver, as it exposes
subdev nodes to userspace.

> Anyway I feel like this is not really a regression but a result of the driver
> being converted to a newer API.
> 
> Also there's a V4L2_CAP_IO_MC flag which should indicate that the video device
> must be controlled via the media controller API instead of being
> video-device-centric, but I've seen comments asking not to set the flag even
> when MC is used so I'm a bit confused here.

Would you have pointers to those comments ?

> Perhaps the flag is only required when there is no automatic format
> propagation?

The flag is more or less required when you expose subdev nodes to
userspace.

> If anyone has solid answers on these points I'd be happy to read some
> clarification (and act accordingly).
>
> > On 6/2/23 11:16, Paul Kocialkowski wrote:
> > > Hi Martijn,
> > > 
> > > On Thu 01 Jun 23, 23:19, Martijn Braam wrote:
> > > > It seems like this commit:
> > > > 
> > > > media: sun6i-csi: Add bridge v4l2 subdev with port management
> > > > 
> > > > Has changed the way the media pipeline on a64 devices, in my case the PINE64
> > > > PinePhone works. Since this is an API towards userspace and there's active
> > > > applications that use it I think this counts as a regression.
> > > Do you have more details on what changed specifically?
> > > 
> > > The commit added a bridge subdev in addition to the video node, which is
> > > generally a better description of the CSI hardware and also a necessity
> > > to support the ISP data flow.
> > > 
> > > Maybe your userspace application is not configuring the bridge media block with
> > > the right format, which results in a mismatch?
> > > 
> > > Some work was started to achieve automatic format propagation, perhaps it
> > > would be enough to solve your issue.
> > > 
> > > Cheers,
> > > 
> > > Paul
> > > 
> > > > #regzbot introduced: 0d2b746b1bef73de62d2d311e594a7ffed4ca43

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2023-06-02 10:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-01 21:19 [REGRESSION] breakage in sun6i-csi media api Martijn Braam
2023-06-02  9:16 ` Paul Kocialkowski
     [not found]   ` <e168d246-528d-b615-aa50-af8f17af4442@brixit.nl>
2023-06-02  9:39     ` Paul Kocialkowski
2023-06-02 10:03       ` Laurent Pinchart [this message]
2023-06-26 12:23         ` Linux regression tracking (Thorsten Leemhuis)
2023-06-28 22:08           ` Mauro Carvalho Chehab
2023-07-12 14:47             ` Paul Kocialkowski
2023-08-29 11:33               ` Linux regression tracking #update (Thorsten Leemhuis)
2023-07-12 14:55         ` Paul Kocialkowski
2023-07-12 17:00           ` Laurent Pinchart

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=20230602100352.GK19463@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jernej.skrabec@gmail.com \
    --cc=linux-media@vger.kernel.org \
    --cc=martijn@brixit.nl \
    --cc=mchehab@kernel.org \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=regressions@lists.linux.dev \
    --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