From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: "Jacopo Mondi" <jacopo.mondi@ideasonboard.com>,
"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>,
"Tomi Valkeinen" <tomi.valkeinen@ideasonboard.com>,
linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH 06/11] media: adv748x-csi2: Implement enum_mbus_codes
Date: Mon, 6 May 2024 10:10:00 +0200 [thread overview]
Message-ID: <lj7mhgt62wzkdoqdforp7dyztwyn5xiz4jwjrxsqjkfq5aeqo5@t2g7o5dd6ual> (raw)
In-Reply-To: <20240505210740.GD23227@pendragon.ideasonboard.com>
Hi Laurent
On Mon, May 06, 2024 at 12:07:40AM GMT, Laurent Pinchart wrote:
> Hi Jacopo,
>
> Thank you for the patch.
>
> On Fri, May 03, 2024 at 05:51:21PM +0200, Jacopo Mondi wrote:
> > Define a list of supported mbus codes for the TXA and TXB CSI-2
> > transmitters and implement the enum_mbus_code operation.
>
> The commit message should explain why, not just what. Explaining why the
Should I explain why the driver has to implement enum_mbus_codes ?
> formats for TXA and TXB differ would also be useful.
ok
>
> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> > ---
> > drivers/media/i2c/adv748x/adv748x-csi2.c | 35 ++++++++++++++++++++++++
> > 1 file changed, 35 insertions(+)
> >
> > diff --git a/drivers/media/i2c/adv748x/adv748x-csi2.c b/drivers/media/i2c/adv748x/adv748x-csi2.c
> > index 9da7f6742a2b..219417b319a6 100644
> > --- a/drivers/media/i2c/adv748x/adv748x-csi2.c
> > +++ b/drivers/media/i2c/adv748x/adv748x-csi2.c
> > @@ -21,6 +21,18 @@ static const struct v4l2_mbus_framefmt adv748x_csi2_default_fmt = {
> > .field = V4L2_FIELD_NONE,
> > };
> >
> > +static const unsigned int adv748x_csi2_txa_fmts[] = {
> > + MEDIA_BUS_FMT_YUYV8_1X16,
> > + MEDIA_BUS_FMT_YUYV10_1X20,
>
> CSI-2 uses UYVY, not YUYV.
>
As this a recurring comment in the series (rightfully, I'm not
questioning that) how does it work with existing test scripts assuming
YUYV ? The same question could be asked about the issue Niklas had: is
changing what pad an operation is allowed to be called on legit ?
My answer would be yes, otherwise we'll be forever stuck, but I would
like to check, especially with Niklas which maintains vin-tests.
> > + MEDIA_BUS_FMT_RGB565_1X16,
> > + MEDIA_BUS_FMT_RGB666_1X18,
> > + MEDIA_BUS_FMT_RGB888_1X24,
> > +};
> > +
> > +static const unsigned int adv748x_csi2_txb_fmts[] = {
> > + MEDIA_BUS_FMT_YUYV8_1X16,
> > +};
> > +
> > int adv748x_csi2_set_virtual_channel(struct adv748x_csi2 *tx, unsigned int vc)
> > {
> > return tx_write(tx, ADV748X_CSI_VC_REF, vc << ADV748X_CSI_VC_REF_SHIFT);
> > @@ -146,6 +158,28 @@ static const struct v4l2_subdev_video_ops adv748x_csi2_video_ops = {
> > * But we must support setting the pad formats for format propagation.
> > */
> >
> > +static int adv748x_csi2_enum_mbus_code(struct v4l2_subdev *sd,
> > + struct v4l2_subdev_state *sd_state,
> > + struct v4l2_subdev_mbus_code_enum *code)
> > +{
> > + struct adv748x_csi2 *tx = adv748x_sd_to_csi2(sd);
> > + const unsigned int *codes = is_txa(tx) ?
> > + adv748x_csi2_txa_fmts :
> > + adv748x_csi2_txb_fmts;
> > + size_t num_fmts = is_txa(tx) ? ARRAY_SIZE(adv748x_csi2_txa_fmts)
> > + : ARRAY_SIZE(adv748x_csi2_txb_fmts);
> > +
> > + if (code->pad != ADV748X_CSI2_SOURCE)
> > + return -EINVAL;
> > +
> > + if (code->index >= num_fmts)
> > + return -EINVAL;
> > +
> > + code->code = codes[code->index];
> > +
> > + return 0;
> > +}
> > +
> > static struct v4l2_mbus_framefmt *
> > adv748x_csi2_get_pad_format(struct v4l2_subdev *sd,
> > struct v4l2_subdev_state *sd_state,
> > @@ -235,6 +269,7 @@ static int adv748x_csi2_get_mbus_config(struct v4l2_subdev *sd, unsigned int pad
> > }
> >
> > static const struct v4l2_subdev_pad_ops adv748x_csi2_pad_ops = {
> > + .enum_mbus_code = adv748x_csi2_enum_mbus_code,
> > .get_fmt = adv748x_csi2_get_format,
> > .set_fmt = adv748x_csi2_set_format,
> > .get_mbus_config = adv748x_csi2_get_mbus_config,
>
> --
> Regards,
>
> Laurent Pinchart
next prev parent reply other threads:[~2024-05-06 8:10 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-03 15:51 [PATCH 00/11] media: renesas: rcar-csi2: Use the subdev active state Jacopo Mondi
2024-05-03 15:51 ` [PATCH 01/11] media: rcar-vin: Fix YUYV8_1X16 handling for CSI-2 Jacopo Mondi
2024-05-05 20:50 ` Laurent Pinchart
2024-05-06 15:45 ` Niklas Söderlund
2024-05-03 15:51 ` [PATCH 02/11] media: rcar-csi2: Disable runtime_pm in probe error Jacopo Mondi
2024-05-05 20:52 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 03/11] media: rcar-csi2: Cleanup subdevice in remove() Jacopo Mondi
2024-05-05 20:53 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 04/11] media: rcar-csi2: Use the subdev active state Jacopo Mondi
2024-05-03 18:03 ` Niklas Söderlund
2024-05-05 21:52 ` Laurent Pinchart
2024-05-06 11:18 ` Niklas Söderlund
2024-05-06 7:25 ` Jacopo Mondi
2024-05-06 8:10 ` Geert Uytterhoeven
2024-05-06 11:26 ` Niklas Söderlund
2024-05-05 21:54 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 05/11] media: adv748x-csi2: Initialize subdev format Jacopo Mondi
2024-05-05 21:01 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 06/11] media: adv748x-csi2: Implement enum_mbus_codes Jacopo Mondi
2024-05-05 21:07 ` Laurent Pinchart
2024-05-06 8:10 ` Jacopo Mondi [this message]
2024-05-06 8:38 ` Laurent Pinchart
2024-05-06 8:42 ` Jacopo Mondi
2024-05-06 11:30 ` Niklas Söderlund
2024-05-03 15:51 ` [PATCH 07/11] media: adv748x-csi2: Validate the image format Jacopo Mondi
2024-05-05 21:09 ` Laurent Pinchart
2024-05-06 11:37 ` Niklas Söderlund
2024-05-06 13:21 ` Jacopo Mondi
2024-05-06 14:12 ` Niklas Söderlund
2024-05-06 14:36 ` Jacopo Mondi
2024-05-06 14:58 ` Niklas Söderlund
2024-05-06 15:04 ` Jacopo Mondi
2024-05-06 19:02 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 08/11] media: adv748x-csi2: Use the subdev active state Jacopo Mondi
2024-05-05 21:15 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 09/11] media: max9286: Fix enum_mbus_code Jacopo Mondi
2024-05-05 21:18 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 10/11] media: max9286: Use the subdev active state Jacopo Mondi
2024-05-05 21:26 ` Laurent Pinchart
2024-05-03 15:51 ` [PATCH 11/11] media: max9286: Use frame interval from subdev state Jacopo Mondi
2024-05-05 21:36 ` Laurent Pinchart
2024-05-06 9:37 ` Jacopo Mondi
2024-05-06 10:32 ` 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=lj7mhgt62wzkdoqdforp7dyztwyn5xiz4jwjrxsqjkfq5aeqo5@t2g7o5dd6ual \
--to=jacopo.mondi@ideasonboard.com \
--cc=kieran.bingham+renesas@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=niklas.soderlund+renesas@ragnatech.se \
--cc=sakari.ailus@linux.intel.com \
--cc=tomi.valkeinen@ideasonboard.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).