From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6AD66C433FE for ; Tue, 19 Oct 2021 12:14:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4E7C66135E for ; Tue, 19 Oct 2021 12:14:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235740AbhJSMQs (ORCPT ); Tue, 19 Oct 2021 08:16:48 -0400 Received: from comms.puri.sm ([159.203.221.185]:50238 "EHLO comms.puri.sm" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235703AbhJSMQj (ORCPT ); Tue, 19 Oct 2021 08:16:39 -0400 Received: from localhost (localhost [127.0.0.1]) by comms.puri.sm (Postfix) with ESMTP id C7BF6DF862; Tue, 19 Oct 2021 05:13:56 -0700 (PDT) Received: from comms.puri.sm ([127.0.0.1]) by localhost (comms.puri.sm [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QFfPGFfaxQqO; Tue, 19 Oct 2021 05:13:56 -0700 (PDT) Date: Tue, 19 Oct 2021 14:13:49 +0200 From: Dorota Czaplejewicz To: Steve Longerbeam , Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-media@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@puri.sm, phone-devel@vger.kernel.org Subject: [PATCHv3 2/4] media: imx: Store the type of hardware implementation Message-ID: <20211019120047.827915-2-dorota.czaplejewicz@puri.sm> In-Reply-To: <20211019120047.827915-1-dorota.czaplejewicz@puri.sm> References: <20211019120047.827915-1-dorota.czaplejewicz@puri.sm> Organization: Purism MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/C/qie6iC_3PE.OgG.HdTuwE"; protocol="application/pgp-signature"; micalg=pgp-sha256 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org --Sig_/C/qie6iC_3PE.OgG.HdTuwE Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable 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 --- 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 d990553de87b..e06f5fbe5174 100644 --- a/drivers/staging/media/imx/imx-ic-prpencvf.c +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c @@ -1265,7 +1265,8 @@ static int prp_registered(struct v4l2_subdev *sd) =20 priv->vdev =3D 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); =20 diff --git a/drivers/staging/media/imx/imx-media-capture.c b/drivers/stagin= g/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 { =20 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 */ =20 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); =20 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, struc= t v4l2_subdev *src_sd, priv->src_sd_pad =3D pad; priv->dev =3D dev; priv->legacy_api =3D legacy_api; + priv->type =3D type; =20 mutex_init(&priv->mutex); INIT_LIST_HEAD(&priv->ready_q); diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/me= dia/imx/imx-media-csi.c index 6a94fff49bf6..b6758c3787c7 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -1794,7 +1794,8 @@ static int csi_registered(struct v4l2_subdev *sd) } =20 priv->vdev =3D 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 =3D 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 d2a150aac6cd..08e0c94e2de1 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 =3D PIXFMT_SEL_YUV | PIXFMT_SEL_RGB | PIXFMT_SEL_BAYER, }; =20 +enum imx_media_device_type { + DEVICE_TYPE_IMX56, + DEVICE_TYPE_IMX78, +}; + 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/m= edia/imx/imx7-media-csi.c index d7dc0d8edf50..1a11f07620e9 100644 --- a/drivers/staging/media/imx/imx7-media-csi.c +++ b/drivers/staging/media/imx/imx7-media-csi.c @@ -1012,7 +1012,8 @@ static int imx7_csi_registered(struct v4l2_subdev *sd) } =20 csi->vdev =3D 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); =20 --=20 2.31.1 --Sig_/C/qie6iC_3PE.OgG.HdTuwE Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEExKRqtqfFqmh+lu1oADBpX4S8ZncFAmFutn0ACgkQADBpX4S8 ZndtUA//f4CmXDa3NGZc3c3RifGXRnhCxrb5I8j8vqbR5ZKM3beLQ8x5ULkFoqko LeAGihlm6egPIrryT/PZe8LXhbe/i/4B6EvlrsRLHhIMMoDLQrapDQJQIcL3b32Y Dl0y4zYDoPuAg7RBzuwqgjwClFtg8Lr5FXPv86h7pLwbzmH87ssR6YSXYePg8wTC XVy58pPm4HXklGd6Q2BllO/ih5KyMwvuEVwEL4o9WjYOfocWCdQIuuNfqTnqchWz eUh04uQKaFs8yeUowHWttgT+r9Bjy7uztCfrp9gnpKtNkBBeatPMF/benhKTWZgb 7lJUIkLehLSRkkHWDtQqIpZpZyDHxmic9fkaE+b/llt82gIuVdr3B/961fxX5pAR Me9Gppf/2x9+JPma/BVq2TaKkvEem6m7PHM2oulSVq3TmebOwLK90OMAWcbxeNRF zZhYBRhQG3vS7RxEXBeSGw+4+cwqioC8KHjQ+zP3CmrITCiogPau9L+nSv+IKmmt VSwvthTXjpoDd7p7UO3F77oROKUUs5dUx+gCsk1x9So01uH068VT+g4yJ5NeuqkQ 1Tt7GMooIc4fihsjIzdMafnoCVKVx5Ha0x4aWLNJFpCozWKQchx+dJMXBN3fKrST JuDXZVl5lcMm2tr60FusGX3MGtBx5KWu+HK2MkXnTUjmywumjsI= =2IvE -----END PGP SIGNATURE----- --Sig_/C/qie6iC_3PE.OgG.HdTuwE--