All of lore.kernel.org
 help / color / mirror / Atom feed
From: paul.elder@ideasonboard.com
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org, Rui Miguel Silva <rmfrfs@gmail.com>,
	Steve Longerbeam <slongerbeam@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Jacopo Mondi <jacopo@jmondi.org>,
	kernel@pengutronix.de, linux-imx@nxp.com
Subject: Re: [PATCH 2/6] media: imx: Unstage the imx7-media-csi driver
Date: Thu, 8 Sep 2022 13:04:20 +0900	[thread overview]
Message-ID: <20220908040420.GF1140330@pyrite.rasen.tech> (raw)
In-Reply-To: <20220907200424.32136-3-laurent.pinchart@ideasonboard.com>

On Wed, Sep 07, 2022 at 11:04:20PM +0300, Laurent Pinchart wrote:
> The imx7-media-csi driver, currently in staging, is ready for
> prime-time. The staging TODO file lists a few items specific to that
> driver, that are already addressed (the "all of the above" part) or can
> be addressed later:
> 
> - The frame interval monitoring support is a software mechanism to
>   monitor the device for unexpected stalls, and should be part of the
>   V4L2 core if desired.
> 
> - Restricting the support media bus formats based on the SoC integration
>   only aims at reducing userspace confusion by not enumerating options
>   that are known not to be possible, it won't cause regressions if
>   handled later.
> 
> Move the description of the media bus format restriction TODO item to
> the driver, drop the other TODO items, and move the driver out of
> staging.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  MAINTAINERS                                   |  2 +-
>  drivers/media/platform/nxp/Kconfig            | 13 +++++++++
>  drivers/media/platform/nxp/Makefile           |  1 +
>  .../platform/nxp}/imx7-media-csi.c            | 24 +++++++++++++++
>  drivers/staging/media/imx/Kconfig             |  7 -----
>  drivers/staging/media/imx/Makefile            |  1 -
>  drivers/staging/media/imx/TODO                | 29 -------------------
>  7 files changed, 39 insertions(+), 38 deletions(-)
>  rename drivers/{staging/media/imx => media/platform/nxp}/imx7-media-csi.c (97%)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 338c155f60ef..1dfa1d51955c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12595,7 +12595,7 @@ F:	Documentation/admin-guide/media/imx7.rst
>  F:	Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
>  F:	Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
>  F:	drivers/media/platform/nxp/imx-mipi-csis.c
> -F:	drivers/staging/media/imx/imx7-media-csi.c
> +F:	drivers/media/platform/nxp/imx7-media-csi.c
>  
>  MEDIA DRIVERS FOR HELENE
>  M:	Abylay Ospan <aospan@netup.ru>
> diff --git a/drivers/media/platform/nxp/Kconfig b/drivers/media/platform/nxp/Kconfig
> index 1ac0a6e91111..3aa4207bcd41 100644
> --- a/drivers/media/platform/nxp/Kconfig
> +++ b/drivers/media/platform/nxp/Kconfig
> @@ -4,6 +4,19 @@
>  
>  comment "NXP media platform drivers"
>  
> +config VIDEO_IMX7_CSI
> +	tristate "NXP CSI Bridge driver"
> +	depends on ARCH_MXC || COMPILE_TEST
> +	depends on HAS_DMA
> +	depends on VIDEO_DEV
> +	select MEDIA_CONTROLLER
> +	select V4L2_FWNODE
> +	select VIDEOBUF2_DMA_CONTIG
> +	select VIDEO_V4L2_SUBDEV_API
> +	help
> +	  Driver for the NXP Camera Sensor Interface (CSI) Bridge. This device
> +	  is found in the i.MX6UL/L, i.MX7 and i.MX8M[MQ] SoCs.
> +
>  config VIDEO_IMX_MIPI_CSIS
>  	tristate "NXP MIPI CSI-2 CSIS receiver found on i.MX7 and i.MX8 models"
>  	depends on ARCH_MXC || COMPILE_TEST
> diff --git a/drivers/media/platform/nxp/Makefile b/drivers/media/platform/nxp/Makefile
> index efc38c6578ce..92cb8f4c215e 100644
> --- a/drivers/media/platform/nxp/Makefile
> +++ b/drivers/media/platform/nxp/Makefile
> @@ -2,6 +2,7 @@
>  
>  obj-y += imx-jpeg/
>  
> +obj-$(CONFIG_VIDEO_IMX7_CSI) += imx7-media-csi.o
>  obj-$(CONFIG_VIDEO_IMX_MIPI_CSIS) += imx-mipi-csis.o
>  obj-$(CONFIG_VIDEO_IMX_PXP) += imx-pxp.o
>  obj-$(CONFIG_VIDEO_MX2_EMMAPRP) += mx2_emmaprp.o
> diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/media/platform/nxp/imx7-media-csi.c
> similarity index 97%
> rename from drivers/staging/media/imx/imx7-media-csi.c
> rename to drivers/media/platform/nxp/imx7-media-csi.c
> index 21d6e56ffcd4..72de9fc9862a 100644
> --- a/drivers/staging/media/imx/imx7-media-csi.c
> +++ b/drivers/media/platform/nxp/imx7-media-csi.c
> @@ -807,6 +807,30 @@ static irqreturn_t imx7_csi_irq_handler(int irq, void *data)
>   * List of supported pixel formats for the subdevs. Keep V4L2_PIX_FMT_UYVY and
>   * MEDIA_BUS_FMT_UYVY8_2X8 first to match IMX7_CSI_DEF_PIX_FORMAT and
>   * IMX7_CSI_DEF_MBUS_CODE.
> + *
> + * TODO: Restrict the supported formats list based on the SoC integration.
> + *
> + * The CSI bridge can be configured to sample pixel components from the Rx queue
> + * in single (8bpp) or double (16bpp) component modes. Image format variants
> + * with different sample sizes (ie YUYV_2X8 vs YUYV_1X16) determine the pixel
> + * components sampling size per each clock cycle and their packing mode (see
> + * imx7_csi_configure() for details).
> + *
> + * As the CSI bridge can be interfaced with different IP blocks depending on the
> + * SoC model it is integrated on, the Rx queue sampling size should match the
> + * size of the samples transferred by the transmitting IP block. To avoid
> + * misconfigurations of the capture pipeline, the enumeration of the supported
> + * formats should be restricted to match the pixel source transmitting mode.
> + *
> + * Example: i.MX8MM SoC integrates the CSI bridge with the Samsung CSIS CSI-2
> + * receiver which operates in dual pixel sampling mode. The CSI bridge should
> + * only expose the 1X16 formats variant which instructs it to operate in dual
> + * pixel sampling mode. When the CSI bridge is instead integrated on an i.MX7,
> + * which supports both serial and parallel input, it should expose both
> + * variants.
> + *
> + * This currently only applies to YUYV formats, but other formats might need to
> + * be handled in the same way.
>   */
>  static const struct imx7_csi_pixfmt pixel_formats[] = {
>  	/*** YUV formats start here ***/
> diff --git a/drivers/staging/media/imx/Kconfig b/drivers/staging/media/imx/Kconfig
> index bfb849701489..21fd79515042 100644
> --- a/drivers/staging/media/imx/Kconfig
> +++ b/drivers/staging/media/imx/Kconfig
> @@ -23,13 +23,6 @@ config VIDEO_IMX_CSI
>  	default y
>  	help
>  	  A video4linux camera sensor interface driver for i.MX5/6.
> -
> -config VIDEO_IMX7_CSI
> -	tristate "i.MX6UL/L / i.MX7 / i.MX8M Camera Sensor Interface driver"
> -	default y
> -	help
> -	  Enable support for video4linux camera sensor interface driver for
> -	  i.MX6UL/L, i.MX7 or i.MX8M.
>  endmenu
>  endif
>  
> diff --git a/drivers/staging/media/imx/Makefile b/drivers/staging/media/imx/Makefile
> index cef9f30eb401..906a422aa656 100644
> --- a/drivers/staging/media/imx/Makefile
> +++ b/drivers/staging/media/imx/Makefile
> @@ -14,5 +14,4 @@ obj-$(CONFIG_VIDEO_IMX_CSI) += imx6-media.o
>  obj-$(CONFIG_VIDEO_IMX_CSI) += imx6-media-csi.o
>  obj-$(CONFIG_VIDEO_IMX_CSI) += imx6-mipi-csi2.o
>  
> -obj-$(CONFIG_VIDEO_IMX7_CSI) += imx7-media-csi.o
>  obj-$(CONFIG_VIDEO_IMX8MQ_MIPI_CSI2) += imx8mq-mipi-csi2.o
> diff --git a/drivers/staging/media/imx/TODO b/drivers/staging/media/imx/TODO
> index 5d3a337c8702..afee26870af7 100644
> --- a/drivers/staging/media/imx/TODO
> +++ b/drivers/staging/media/imx/TODO
> @@ -23,32 +23,3 @@
>  - Similarly to the legacy control handling, legacy format handling where
>    formats on the video nodes are influenced by the active format of the
>    connected subdev should be removed.
> -
> -- i.MX7: all of the above, since it uses the imx media core
> -
> -- i.MX7: use Frame Interval Monitor
> -
> -- imx7-media-csi: Restrict the supported formats list to the SoC version.
> -
> -  The imx7 CSI bridge can be configured to sample pixel components from the Rx
> -  queue in single (8bpp) or double (16bpp) component modes. Image format
> -  variants with different sample sizes (ie YUYV_2X8 vs YUYV_1X16) determine the
> -  pixel components sampling size per each clock cycle and their packing mode
> -  (see imx7_csi_configure() for details).
> -
> -  As the imx7 CSI bridge can be interfaced with different IP blocks depending on
> -  the SoC model it is integrated on, the Rx queue sampling size should match
> -  the size of the samples transferred by the transmitting IP block.
> -
> -  To avoid mis-configurations of the capture pipeline, the enumeration of the
> -  supported formats should be restricted to match the pixel source transmitting
> -  mode.
> -
> -  Example: i.MX8MM SoC integrates the CSI bridge with the Samsung CSIS CSI-2
> -  receiver which operates in dual pixel sampling mode. The CSI bridge should
> -  only expose the 1X16 formats variant which instructs it to operate in dual
> -  pixel sampling mode. When the CSI bridge is instead integrated on an i.MX7,
> -  which supports both serial and parallel input, it should expose both variants.
> -
> -  This currently only applies to YUYV formats, but other formats might need
> -  to be handled in the same way.

  reply	other threads:[~2022-09-08  4:04 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-07 20:04 [PATCH 0/6] media: imx: imx7-media-csi: Destage driver Laurent Pinchart
2022-09-07 20:04 ` [PATCH 1/6] media: imx: Decouple imx8mq-mipi-csi2 from imx7-media-csi Laurent Pinchart
2022-09-08  3:58   ` paul.elder
2022-09-09 18:22   ` Laurent Pinchart
2022-09-13 15:10     ` Martin Kepplinger
2022-09-13 15:26       ` Laurent Pinchart
2022-09-07 20:04 ` [PATCH 2/6] media: imx: Unstage the imx7-media-csi driver Laurent Pinchart
2022-09-08  4:04   ` paul.elder [this message]
2022-09-08 15:06   ` Rui Miguel Silva
2022-09-08 15:18     ` Laurent Pinchart
2022-09-08 15:46       ` Rui Miguel Silva
2022-09-07 20:04 ` [PATCH 3/6] staging: media: imx: Drop imx_media_subdev_bound() Laurent Pinchart
2022-09-08  4:08   ` paul.elder
2022-09-07 20:04 ` [PATCH 4/6] staging: media: imx: Drop IMX_MEDIA_GRP_ID_CSI Laurent Pinchart
2022-09-08  4:10   ` paul.elder
2022-09-07 20:04 ` [PATCH 5/6] staging: media: imx: Drop unused helper functions Laurent Pinchart
2022-09-08  4:12   ` paul.elder
2022-09-07 20:04 ` [PATCH 6/6] staging: media: imx: Make imx_media_of_add_csi() static Laurent Pinchart
2022-09-08  4:16   ` paul.elder
2022-09-13  9:48 ` [PATCH 0/6] media: imx: imx7-media-csi: Destage driver 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=20220908040420.GF1140330@pyrite.rasen.tech \
    --to=paul.elder@ideasonboard.com \
    --cc=jacopo@jmondi.org \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-imx@nxp.com \
    --cc=linux-media@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=rmfrfs@gmail.com \
    --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: 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.