From: Jacopo Mondi <jacopo@jmondi.org> To: Alexander Stein <alexander.stein@ew.tq-group.com> Cc: Steve Longerbeam <slongerbeam@gmail.com>, Philipp Zabel <p.zabel@pengutronix.de>, Mauro Carvalho Chehab <mchehab@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix Kernel Team <kernel@pengutronix.de>, Fabio Estevam <festevam@gmail.com>, NXP Linux Team <linux-imx@nxp.com>, Rui Miguel Silva <rmfrfs@gmail.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/9] media: imx: Store the type of hardware implementation Date: Mon, 14 Feb 2022 19:50:35 +0100 [thread overview] Message-ID: <20220214185035.uomrdkzth7adkw5c@uno.localdomain> (raw) In-Reply-To: <20220211142752.779952-2-alexander.stein@ew.tq-group.com> Hi Alexander, Dorota, On Fri, Feb 11, 2022 at 03:27:44PM +0100, Alexander Stein wrote: > From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> > > The driver covers i.MX5/6, as well as i.MX7/8 hardware. > Those implementations differ, e.g. in the sizes of buffers they accept. > > Some functionality should be abstracted, and storing type achieves that. > > Signed-off-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > Changes in v2: > * Switch back to using enum > > drivers/staging/media/imx/imx-ic-prpencvf.c | 3 ++- > drivers/staging/media/imx/imx-media-capture.c | 5 ++++- > drivers/staging/media/imx/imx-media-csi.c | 3 ++- > drivers/staging/media/imx/imx-media.h | 8 +++++++- > drivers/staging/media/imx/imx7-media-csi.c | 3 ++- > 5 files changed, 17 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/media/imx/imx-ic-prpencvf.c b/drivers/staging/media/imx/imx-ic-prpencvf.c > index 9b81cfbcd777..671bb9a681aa 100644 > --- a/drivers/staging/media/imx/imx-ic-prpencvf.c > +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c > @@ -1266,7 +1266,8 @@ static int prp_registered(struct v4l2_subdev *sd) > > priv->vdev = imx_media_capture_device_init(ic_priv->ipu_dev, > &ic_priv->sd, > - PRPENCVF_SRC_PAD, true); > + PRPENCVF_SRC_PAD, true, > + DEVICE_TYPE_IMX56); > if (IS_ERR(priv->vdev)) > return PTR_ERR(priv->vdev); > > diff --git a/drivers/staging/media/imx/imx-media-capture.c b/drivers/staging/media/imx/imx-media-capture.c > index 93ba09236010..65dc95a48ecc 100644 > --- a/drivers/staging/media/imx/imx-media-capture.c > +++ b/drivers/staging/media/imx/imx-media-capture.c > @@ -34,6 +34,7 @@ struct capture_priv { > > struct imx_media_video_dev vdev; /* Video device */ > struct media_pad vdev_pad; /* Video device pad */ > + enum imx_media_device_type type; /* Type of hardware implementation */ > > struct v4l2_subdev *src_sd; /* Source subdev */ > int src_sd_pad; /* Source subdev pad */ > @@ -957,7 +958,8 @@ EXPORT_SYMBOL_GPL(imx_media_capture_device_unregister); > > struct imx_media_video_dev * > imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd, > - int pad, bool legacy_api) > + int pad, bool legacy_api, > + enum imx_media_device_type type) > { > struct capture_priv *priv; > struct video_device *vfd; > @@ -972,6 +974,7 @@ imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd, > priv->src_sd_pad = pad; > priv->dev = dev; > priv->legacy_api = legacy_api; > + priv->type = type; > > mutex_init(&priv->mutex); > INIT_LIST_HEAD(&priv->ready_q); > diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c > index bd7f156f2d52..d5557bb4913d 100644 > --- a/drivers/staging/media/imx/imx-media-csi.c > +++ b/drivers/staging/media/imx/imx-media-csi.c > @@ -1803,7 +1803,8 @@ static int csi_registered(struct v4l2_subdev *sd) > } > > priv->vdev = imx_media_capture_device_init(priv->sd.dev, &priv->sd, > - CSI_SRC_PAD_IDMAC, true); > + CSI_SRC_PAD_IDMAC, true, > + DEVICE_TYPE_IMX56); > if (IS_ERR(priv->vdev)) { > ret = PTR_ERR(priv->vdev); > goto free_fim; > diff --git a/drivers/staging/media/imx/imx-media.h b/drivers/staging/media/imx/imx-media.h > index f263fc3adbb9..e4c22b3ccd57 100644 > --- a/drivers/staging/media/imx/imx-media.h > +++ b/drivers/staging/media/imx/imx-media.h > @@ -96,6 +96,11 @@ enum imx_pixfmt_sel { > PIXFMT_SEL_ANY = PIXFMT_SEL_YUV | PIXFMT_SEL_RGB | PIXFMT_SEL_BAYER, > }; > > +enum imx_media_device_type { > + DEVICE_TYPE_IMX56, > + DEVICE_TYPE_IMX78, > +}; > + Isn't this too coarse as a distinction ? I tried adding per-soc identifiers here: https://lore.kernel.org/linux-media/20220214184318.409208-5-jacopo@jmondi.org/T/#u Maybe they can help ? > struct imx_media_buffer { > struct vb2_v4l2_buffer vbuf; /* v4l buffer must be first */ > struct list_head list; > @@ -282,7 +287,8 @@ int imx_media_ic_unregister(struct v4l2_subdev *sd); > /* imx-media-capture.c */ > struct imx_media_video_dev * > imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd, > - int pad, bool legacy_api); > + int pad, bool legacy_api, > + enum imx_media_device_type type); > void imx_media_capture_device_remove(struct imx_media_video_dev *vdev); > int imx_media_capture_device_register(struct imx_media_video_dev *vdev, > u32 link_flags); > diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c > index 32311fc0e2a4..173dd014c2d6 100644 > --- a/drivers/staging/media/imx/imx7-media-csi.c > +++ b/drivers/staging/media/imx/imx7-media-csi.c > @@ -1039,7 +1039,8 @@ static int imx7_csi_registered(struct v4l2_subdev *sd) > } > > csi->vdev = imx_media_capture_device_init(csi->sd.dev, &csi->sd, > - IMX7_CSI_PAD_SRC, false); > + IMX7_CSI_PAD_SRC, false, > + DEVICE_TYPE_IMX78); > if (IS_ERR(csi->vdev)) > return PTR_ERR(csi->vdev); > > -- > 2.25.1 >
WARNING: multiple messages have this Message-ID (diff)
From: Jacopo Mondi <jacopo@jmondi.org> To: Alexander Stein <alexander.stein@ew.tq-group.com> Cc: Steve Longerbeam <slongerbeam@gmail.com>, Philipp Zabel <p.zabel@pengutronix.de>, Mauro Carvalho Chehab <mchehab@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix Kernel Team <kernel@pengutronix.de>, Fabio Estevam <festevam@gmail.com>, NXP Linux Team <linux-imx@nxp.com>, Rui Miguel Silva <rmfrfs@gmail.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/9] media: imx: Store the type of hardware implementation Date: Mon, 14 Feb 2022 19:50:35 +0100 [thread overview] Message-ID: <20220214185035.uomrdkzth7adkw5c@uno.localdomain> (raw) In-Reply-To: <20220211142752.779952-2-alexander.stein@ew.tq-group.com> Hi Alexander, Dorota, On Fri, Feb 11, 2022 at 03:27:44PM +0100, Alexander Stein wrote: > From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> > > The driver covers i.MX5/6, as well as i.MX7/8 hardware. > Those implementations differ, e.g. in the sizes of buffers they accept. > > Some functionality should be abstracted, and storing type achieves that. > > Signed-off-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > Changes in v2: > * Switch back to using enum > > drivers/staging/media/imx/imx-ic-prpencvf.c | 3 ++- > drivers/staging/media/imx/imx-media-capture.c | 5 ++++- > drivers/staging/media/imx/imx-media-csi.c | 3 ++- > drivers/staging/media/imx/imx-media.h | 8 +++++++- > drivers/staging/media/imx/imx7-media-csi.c | 3 ++- > 5 files changed, 17 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/media/imx/imx-ic-prpencvf.c b/drivers/staging/media/imx/imx-ic-prpencvf.c > index 9b81cfbcd777..671bb9a681aa 100644 > --- a/drivers/staging/media/imx/imx-ic-prpencvf.c > +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c > @@ -1266,7 +1266,8 @@ static int prp_registered(struct v4l2_subdev *sd) > > priv->vdev = imx_media_capture_device_init(ic_priv->ipu_dev, > &ic_priv->sd, > - PRPENCVF_SRC_PAD, true); > + PRPENCVF_SRC_PAD, true, > + DEVICE_TYPE_IMX56); > if (IS_ERR(priv->vdev)) > return PTR_ERR(priv->vdev); > > diff --git a/drivers/staging/media/imx/imx-media-capture.c b/drivers/staging/media/imx/imx-media-capture.c > index 93ba09236010..65dc95a48ecc 100644 > --- a/drivers/staging/media/imx/imx-media-capture.c > +++ b/drivers/staging/media/imx/imx-media-capture.c > @@ -34,6 +34,7 @@ struct capture_priv { > > struct imx_media_video_dev vdev; /* Video device */ > struct media_pad vdev_pad; /* Video device pad */ > + enum imx_media_device_type type; /* Type of hardware implementation */ > > struct v4l2_subdev *src_sd; /* Source subdev */ > int src_sd_pad; /* Source subdev pad */ > @@ -957,7 +958,8 @@ EXPORT_SYMBOL_GPL(imx_media_capture_device_unregister); > > struct imx_media_video_dev * > imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd, > - int pad, bool legacy_api) > + int pad, bool legacy_api, > + enum imx_media_device_type type) > { > struct capture_priv *priv; > struct video_device *vfd; > @@ -972,6 +974,7 @@ imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd, > priv->src_sd_pad = pad; > priv->dev = dev; > priv->legacy_api = legacy_api; > + priv->type = type; > > mutex_init(&priv->mutex); > INIT_LIST_HEAD(&priv->ready_q); > diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c > index bd7f156f2d52..d5557bb4913d 100644 > --- a/drivers/staging/media/imx/imx-media-csi.c > +++ b/drivers/staging/media/imx/imx-media-csi.c > @@ -1803,7 +1803,8 @@ static int csi_registered(struct v4l2_subdev *sd) > } > > priv->vdev = imx_media_capture_device_init(priv->sd.dev, &priv->sd, > - CSI_SRC_PAD_IDMAC, true); > + CSI_SRC_PAD_IDMAC, true, > + DEVICE_TYPE_IMX56); > if (IS_ERR(priv->vdev)) { > ret = PTR_ERR(priv->vdev); > goto free_fim; > diff --git a/drivers/staging/media/imx/imx-media.h b/drivers/staging/media/imx/imx-media.h > index f263fc3adbb9..e4c22b3ccd57 100644 > --- a/drivers/staging/media/imx/imx-media.h > +++ b/drivers/staging/media/imx/imx-media.h > @@ -96,6 +96,11 @@ enum imx_pixfmt_sel { > PIXFMT_SEL_ANY = PIXFMT_SEL_YUV | PIXFMT_SEL_RGB | PIXFMT_SEL_BAYER, > }; > > +enum imx_media_device_type { > + DEVICE_TYPE_IMX56, > + DEVICE_TYPE_IMX78, > +}; > + Isn't this too coarse as a distinction ? I tried adding per-soc identifiers here: https://lore.kernel.org/linux-media/20220214184318.409208-5-jacopo@jmondi.org/T/#u Maybe they can help ? > struct imx_media_buffer { > struct vb2_v4l2_buffer vbuf; /* v4l buffer must be first */ > struct list_head list; > @@ -282,7 +287,8 @@ int imx_media_ic_unregister(struct v4l2_subdev *sd); > /* imx-media-capture.c */ > struct imx_media_video_dev * > imx_media_capture_device_init(struct device *dev, struct v4l2_subdev *src_sd, > - int pad, bool legacy_api); > + int pad, bool legacy_api, > + enum imx_media_device_type type); > void imx_media_capture_device_remove(struct imx_media_video_dev *vdev); > int imx_media_capture_device_register(struct imx_media_video_dev *vdev, > u32 link_flags); > diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c > index 32311fc0e2a4..173dd014c2d6 100644 > --- a/drivers/staging/media/imx/imx7-media-csi.c > +++ b/drivers/staging/media/imx/imx7-media-csi.c > @@ -1039,7 +1039,8 @@ static int imx7_csi_registered(struct v4l2_subdev *sd) > } > > csi->vdev = imx_media_capture_device_init(csi->sd.dev, &csi->sd, > - IMX7_CSI_PAD_SRC, false); > + IMX7_CSI_PAD_SRC, false, > + DEVICE_TYPE_IMX78); > if (IS_ERR(csi->vdev)) > return PTR_ERR(csi->vdev); > > -- > 2.25.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-02-14 18:49 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-11 14:27 [PATCH v2 0/9] imx7/imx8mm media / csi patches Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-11 14:27 ` [PATCH v2 1/9] media: imx: Store the type of hardware implementation Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-14 18:50 ` Jacopo Mondi [this message] 2022-02-14 18:50 ` Jacopo Mondi 2022-02-14 19:01 ` Laurent Pinchart 2022-02-14 19:01 ` Laurent Pinchart 2022-02-15 7:53 ` Laurent Pinchart 2022-02-15 7:53 ` Laurent Pinchart 2022-02-11 14:27 ` [PATCH v2 2/9] media: imx: Forward " Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-11 14:27 ` [PATCH v2 3/9] media: imx: Use dedicated format handler for i.MX7/8 Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-14 18:51 ` Jacopo Mondi 2022-02-14 18:51 ` Jacopo Mondi 2022-02-15 7:29 ` (EXT) " Alexander Stein 2022-02-15 7:29 ` Alexander Stein 2022-02-11 14:27 ` [PATCH v2 4/9] media: imx: Fail conversion if pixel format not supported Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-15 7:55 ` Laurent Pinchart 2022-02-15 7:55 ` Laurent Pinchart 2022-02-11 14:27 ` [PATCH v2 5/9] media: imx: imx7_mipi_csis: store colorspace in set_fmt as well Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-15 7:57 ` Laurent Pinchart 2022-02-15 7:57 ` Laurent Pinchart 2022-02-11 14:27 ` [PATCH v2 6/9] media: imx: imx7_media-csi: Add support for additional Bayer patterns Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-11 14:27 ` [PATCH v2 7/9] media: imx: utils: Add more Bayer formats Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-11 14:27 ` [PATCH v2 8/9] media: imx: utils: initialize local variable Alexander Stein 2022-02-11 14:27 ` Alexander Stein 2022-02-11 14:27 ` [PATCH v2 9/9] [DNI] arm64: dts: tqma8mqml: add IMX327 MIPI-CSI overlay Alexander Stein 2022-02-11 14:27 ` Alexander Stein
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=20220214185035.uomrdkzth7adkw5c@uno.localdomain \ --to=jacopo@jmondi.org \ --cc=alexander.stein@ew.tq-group.com \ --cc=dorota.czaplejewicz@puri.sm \ --cc=festevam@gmail.com \ --cc=gregkh@linuxfoundation.org \ --cc=kernel@pengutronix.de \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-imx@nxp.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-staging@lists.linux.dev \ --cc=mchehab@kernel.org \ --cc=p.zabel@pengutronix.de \ --cc=rmfrfs@gmail.com \ --cc=s.hauer@pengutronix.de \ --cc=shawnguo@kernel.org \ --cc=slongerbeam@gmail.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: linkBe 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.