From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from comms.puri.sm (comms.puri.sm [159.203.221.185]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 991392C83 for ; Sun, 17 Oct 2021 11:08:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by comms.puri.sm (Postfix) with ESMTP id 42A4EDFA1F; Sun, 17 Oct 2021 04:08:25 -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 hPFtdl-ST-Td; Sun, 17 Oct 2021 04:08:24 -0700 (PDT) Date: Sun, 17 Oct 2021 13:08:17 +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: [PATCHv2 2/4] media: imx: Store the type of hardware implementation Message-ID: <20211017102904.756408-2-dorota.czaplejewicz@puri.sm> In-Reply-To: <20211017102904.756408-1-dorota.czaplejewicz@puri.sm> References: <20211017102904.756408-1-dorota.czaplejewicz@puri.sm> Organization: Purism Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/=3CTC_Z4HKntYsD0qSXe6Gp"; protocol="application/pgp-signature"; micalg=pgp-sha256 --Sig_/=3CTC_Z4HKntYsD0qSXe6Gp 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..fdf0f3a8f253 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_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_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..2bacfb96da85 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_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_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_/=3CTC_Z4HKntYsD0qSXe6Gp Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEExKRqtqfFqmh+lu1oADBpX4S8ZncFAmFsBCEACgkQADBpX4S8 ZncEeBAAni2sIsO33V6GZobm5hF3BfdGzBir1VAaKx63rBHNpBUY+XF/4mIObEBY 9AOaCiBrhseXRfgymsMs09VsMKoZLp1NvfV1PfefsUCu6AVB9mhcqlJF56p4cXrt gAj9bH/+pfvAFU67bxfCDzLUCJQIBgVGaVOQilpmH87I8tAohfBCOdtZkFnWIrtd BZfz7nYAh/QuCmwNAZC7+mX8YIPVA7+JyVRnDgKLni9Dm9yyFtyNdjZz+BBrHLU3 q33jBdxGBCrzoN8uV3PQQfs3cBXFDeoA5kz/UbQznJYHAJeOr1dNmlchK6B2ZzzK 9wulQ/6bOpA14HHbIfyIFJYhfy5NWSbGvU74QcKxQLI9HJPp3hTwYcRQR8SgNiZk phbIJBvXDPwI9M5R6O2XbA4m4hGgU41paUAqZiM5zV8fsK0f4S/uPnx6nZrEaNkY RfUaCIYpOFt0eQInLigarUDEPm+K8t7O+afd8IcotnmxsVGApvfP5OooRkS12SOS NqtRlSs3MwwhfcnRlmuw/T/YpxuiIUwQPidE4kEg0zqGw0Y0VVEwWasvbRdTYpnP MpZeY6g9BTj+7xT+s6s4QR6qXGV0DrTN09EoEWVWpYiNaO/iIq3Sj81Mm+Gp77pV ntrjB3rLHWFcI086+01oYwn7UmkPMUPH29haVJ8s6MOxtS2CxY8= =+cL7 -----END PGP SIGNATURE----- --Sig_/=3CTC_Z4HKntYsD0qSXe6Gp-- 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 5CEDDC433F5 for ; Sun, 17 Oct 2021 11:10:07 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 28DCB61245 for ; Sun, 17 Oct 2021 11:10:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 28DCB61245 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=puri.sm Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: MIME-Version:References:In-Reply-To:Message-ID:Subject:To:From:Date:Reply-To: Cc:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Ydv0FHLq1Gztr0x93OwYZKiMWfBY+3dZnnfbhpQchDY=; b=Oay3mt1UqLuUp4Er4aT5hJnW/l f6X2RVfL0tLKj8nwtoxx8yzUukrCxQ2XBNRlUsho5Hq66Wp8Lf4mYBKy9/inw4HdG8L3dC8Xfj3px GKpSBe5J4QHvdqPGk715/pE90FR01ASlo0ye6zUA47/lt9aLFbcn+42A39hsUcsh3lDkJWzHMonrI Ji6/+S2L4LOtDrt20/mbOOTLaonMuW/v7sEwS43Ri7o48dcLZv4+jfeK5CKIBXAbJtO1QjGhHnmLx QCWfF4N26Y98OMo/djS4Yd8wGeChNZEKfSbp5ITAQ9A8lzbkGhval2lmbzGiq3WJV3NhMrZLuqZLQ yWmb86SQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mc42F-00CB9t-De; Sun, 17 Oct 2021 11:08:59 +0000 Received: from comms.puri.sm ([159.203.221.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mc42B-00CB8g-E8 for linux-arm-kernel@lists.infradead.org; Sun, 17 Oct 2021 11:08:56 +0000 Received: from localhost (localhost [127.0.0.1]) by comms.puri.sm (Postfix) with ESMTP id 42A4EDFA1F; Sun, 17 Oct 2021 04:08:25 -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 hPFtdl-ST-Td; Sun, 17 Oct 2021 04:08:24 -0700 (PDT) Date: Sun, 17 Oct 2021 13:08:17 +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: [PATCHv2 2/4] media: imx: Store the type of hardware implementation Message-ID: <20211017102904.756408-2-dorota.czaplejewicz@puri.sm> In-Reply-To: <20211017102904.756408-1-dorota.czaplejewicz@puri.sm> References: <20211017102904.756408-1-dorota.czaplejewicz@puri.sm> Organization: Purism MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211017_040855_501234_FAB060E6 X-CRM114-Status: GOOD ( 12.30 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============2567694163385034539==" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org --===============2567694163385034539== Content-Type: multipart/signed; boundary="Sig_/=3CTC_Z4HKntYsD0qSXe6Gp"; protocol="application/pgp-signature"; micalg=pgp-sha256 --Sig_/=3CTC_Z4HKntYsD0qSXe6Gp 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..fdf0f3a8f253 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_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_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..2bacfb96da85 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_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_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_/=3CTC_Z4HKntYsD0qSXe6Gp Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEExKRqtqfFqmh+lu1oADBpX4S8ZncFAmFsBCEACgkQADBpX4S8 ZncEeBAAni2sIsO33V6GZobm5hF3BfdGzBir1VAaKx63rBHNpBUY+XF/4mIObEBY 9AOaCiBrhseXRfgymsMs09VsMKoZLp1NvfV1PfefsUCu6AVB9mhcqlJF56p4cXrt gAj9bH/+pfvAFU67bxfCDzLUCJQIBgVGaVOQilpmH87I8tAohfBCOdtZkFnWIrtd BZfz7nYAh/QuCmwNAZC7+mX8YIPVA7+JyVRnDgKLni9Dm9yyFtyNdjZz+BBrHLU3 q33jBdxGBCrzoN8uV3PQQfs3cBXFDeoA5kz/UbQznJYHAJeOr1dNmlchK6B2ZzzK 9wulQ/6bOpA14HHbIfyIFJYhfy5NWSbGvU74QcKxQLI9HJPp3hTwYcRQR8SgNiZk phbIJBvXDPwI9M5R6O2XbA4m4hGgU41paUAqZiM5zV8fsK0f4S/uPnx6nZrEaNkY RfUaCIYpOFt0eQInLigarUDEPm+K8t7O+afd8IcotnmxsVGApvfP5OooRkS12SOS NqtRlSs3MwwhfcnRlmuw/T/YpxuiIUwQPidE4kEg0zqGw0Y0VVEwWasvbRdTYpnP MpZeY6g9BTj+7xT+s6s4QR6qXGV0DrTN09EoEWVWpYiNaO/iIq3Sj81Mm+Gp77pV ntrjB3rLHWFcI086+01oYwn7UmkPMUPH29haVJ8s6MOxtS2CxY8= =+cL7 -----END PGP SIGNATURE----- --Sig_/=3CTC_Z4HKntYsD0qSXe6Gp-- --===============2567694163385034539== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel --===============2567694163385034539==--