All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Shu-hsiang Yang <Shu-hsiang.Yang@mediatek.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	Christian Konig <christian.koenig@amd.com>
Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org,
	Project_Global_Chrome_Upstream_Group@mediatek.com,
	yaya.chang@mediatek.com, teddy.chen@mediatek.com,
	hidenorik@chromium.org, yunkec@chromium.org,
	shun-yi.wang@mediatek.com
Subject: Re: [PATCH v1 05/10] media: platform: mediatek: add isp_7x camsys unit
Date: Tue, 22 Oct 2024 07:44:46 +0200	[thread overview]
Message-ID: <abe77aed-c777-4892-9fce-aaad508700f6@kernel.org> (raw)
In-Reply-To: <20241009111551.27052-6-Shu-hsiang.Yang@mediatek.com>

On 09/10/2024 13:15, Shu-hsiang Yang wrote:
> Introduces the top media device driver for the MediaTek ISP7X CAMSYS.
> The driver maintains the camera system, including sub-device management,
> DMA operations, and integration with the V4L2 framework. It handles
> request stream data, buffer management, and MediaTek-specific features,
> and pipeline management, streaming control, error handling mechanism.
> Additionally, it aggregates sub-drivers for the camera interface, raw
> and yuv pipelines.
> 
> Signed-off-by: Shu-hsiang Yang <Shu-hsiang.Yang@mediatek.com>

...

> +
> +static int mtk_cam_probe(struct platform_device *pdev)
> +{
> +	struct mtk_cam_device *cam_dev;
> +	struct device *dev = &pdev->dev;
> +	struct resource *res;
> +	int ret;
> +	unsigned int i;
> +
> +	dev_dbg(dev, "camsys | start %s\n", __func__);

NAK. Same issues.

> +
> +	/* initialize structure */
> +	cam_dev = devm_kzalloc(dev, sizeof(*cam_dev), GFP_KERNEL);
> +	if (!cam_dev)
> +		return -ENOMEM;
> +
> +	if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(34))) {
> +		dev_err(dev, "%s: No suitable DMA available\n", __func__);
> +		return -EIO;
> +	}
> +
> +	if (!dev->dma_parms) {
> +		dev->dma_parms =
> +			devm_kzalloc(dev, sizeof(*dev->dma_parms), GFP_KERNEL);
> +		if (!dev->dma_parms)
> +			return -ENOMEM;
> +	}
> +
> +	dma_set_max_seg_size(dev, UINT_MAX);
> +
> +	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> +	if (!res) {
> +		dev_err(dev, "failed to get mem\n");
> +		return -ENODEV;
> +	}
> +
> +	cam_dev->base = devm_ioremap_resource(dev, res);
> +	if (IS_ERR(cam_dev->base)) {
> +		dev_err(dev, "failed to map register base\n");
> +		return PTR_ERR(cam_dev->base);
> +	}
> +
> +	cam_dev->dev = dev;
> +	dev_set_drvdata(dev, cam_dev);
> +
> +	cam_dev->composer_cnt = 0;
> +	cam_dev->num_seninf_devices = 0;
> +
> +	cam_dev->max_stream_num = MTKCAM_SUBDEV_MAX;
> +	cam_dev->ctxs = devm_kcalloc(dev, cam_dev->max_stream_num,
> +				     sizeof(*cam_dev->ctxs), GFP_KERNEL);
> +	if (!cam_dev->ctxs)
> +		return -ENOMEM;
> +
> +	cam_dev->streaming_ctx = 0;
> +	for (i = 0; i < cam_dev->max_stream_num; i++)
> +		mtk_cam_ctx_init(cam_dev->ctxs + i, cam_dev, i);
> +
> +	cam_dev->running_job_count = 0;
> +	spin_lock_init(&cam_dev->pending_job_lock);
> +	spin_lock_init(&cam_dev->running_job_lock);
> +	INIT_LIST_HEAD(&cam_dev->pending_job_list);
> +	INIT_LIST_HEAD(&cam_dev->running_job_list);
> +
> +	cam_dev->dma_processing_count = 0;
> +	spin_lock_init(&cam_dev->dma_pending_lock);
> +	spin_lock_init(&cam_dev->dma_processing_lock);
> +	INIT_LIST_HEAD(&cam_dev->dma_pending);
> +	INIT_LIST_HEAD(&cam_dev->dma_processing);
> +
> +	mutex_init(&cam_dev->queue_lock);
> +
> +	pm_runtime_enable(dev);
> +
> +	ret = mtk_cam_of_rproc(cam_dev, pdev);
> +	if (ret)
> +		goto fail_destroy_mutex;
> +
> +	ret = register_sub_drivers(dev);
> +	if (ret) {
> +		dev_err(dev, "fail to register_sub_drivers\n");
> +		goto fail_destroy_mutex;
> +	}
> +
> +	/* register mtk_cam as all isp subdev async parent */
> +	cam_dev->notifier.ops = &mtk_cam_async_nf_ops;
> +	v4l2_async_nf_init(&cam_dev->notifier, &cam_dev->v4l2_dev);
> +	ret = mtk_cam_async_subdev_add(dev); /* wait all isp sub drivers */
> +	if (ret) {
> +		dev_err(dev, "%s failed mtk_cam_async_subdev_add\n", __func__);
> +		goto fail_unregister_sub_drivers;
> +	}
> +
> +	ret = v4l2_async_nf_register(&cam_dev->notifier);
> +	if (ret) {
> +		dev_err(dev, "%s async_nf_register ret:%d\n", __func__, ret);
> +		v4l2_async_nf_cleanup(&cam_dev->notifier);
> +		goto fail_unregister_sub_drivers;
> +	}
> +
> +	ret = mtk_cam_debug_fs_init(cam_dev);
> +	if (ret < 0)
> +		goto fail_unregister_async_nf;
> +
> +	dev_info(dev, "camsys | [%s] success\n", __func__);

NAK. Same issues.

> +
> +	return 0;
> +
> +fail_unregister_async_nf:
> +	v4l2_async_nf_unregister(&cam_dev->notifier);
> +
> +fail_unregister_sub_drivers:
> +	unregister_sub_drivers(dev);
> +
> +fail_destroy_mutex:
> +	mutex_destroy(&cam_dev->queue_lock);
> +
> +	return ret;
> +}
> +
> +static void mtk_cam_remove(struct platform_device *pdev)
> +{
> +	struct device *dev = &pdev->dev;
> +	struct mtk_cam_device *cam_dev = dev_get_drvdata(dev);
> +
> +	pm_runtime_disable(dev);
> +
> +	mtk_cam_debug_fs_deinit(cam_dev);
> +
> +	v4l2_async_nf_unregister(&cam_dev->notifier);
> +
> +	unregister_sub_drivers(dev);
> +
> +	mutex_destroy(&cam_dev->queue_lock);
> +}
> +
> +static const struct dev_pm_ops mtk_cam_pm_ops = {
> +	SET_RUNTIME_PM_OPS(mtk_cam_runtime_suspend, mtk_cam_runtime_resume,
> +			   NULL)
> +};
> +
> +static struct platform_driver mtk_cam_driver = {
> +	.probe   = mtk_cam_probe,
> +	.remove  = mtk_cam_remove,
> +	.driver  = {
> +		.name  = "mtk-cam",
> +		.of_match_table = of_match_ptr(mtk_cam_of_ids),

Same issues as in previous patch.

All my comments apply to all your patches in this thread.

> +		.pm     = &mtk_cam_pm_ops,
> +	}
> +};



Best regards,
Krzysztof



  parent reply	other threads:[~2024-10-22  5:50 UTC|newest]

Thread overview: 164+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09 11:15 [PATCH v1 00/10] Add MediaTek ISP7 camera system driver Shu-hsiang Yang
2024-10-09 11:15 ` [PATCH v1 01/10] dt-bindings: media: mediatek: add camsys device Shu-hsiang Yang
2024-10-09 21:00   ` Rob Herring
2024-10-11  1:29   ` CK Hu (胡俊光)
2024-10-11  1:29     ` CK Hu (胡俊光)
2024-10-11  3:20   ` CK Hu (胡俊光)
2024-10-11  3:20     ` CK Hu (胡俊光)
2024-10-22  5:36   ` Krzysztof Kozlowski
2024-11-11  1:37   ` CK Hu (胡俊光)
2024-11-11  1:37     ` CK Hu (胡俊光)
2024-11-11  2:38   ` CK Hu (胡俊光)
2024-11-11  2:38     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 02/10] media: platform: mediatek: add seninf controller Shu-hsiang Yang
2024-10-09 12:50   ` AngeloGioacchino Del Regno
2024-10-11  1:36   ` CK Hu (胡俊光)
2024-10-11  1:36     ` CK Hu (胡俊光)
2024-10-11  2:38   ` CK Hu (胡俊光)
2024-10-11  2:38     ` CK Hu (胡俊光)
2024-10-22  4:16   ` CK Hu (胡俊光)
2024-10-22  4:16     ` CK Hu (胡俊光)
2024-10-28  1:55   ` CK Hu (胡俊光)
2024-10-28  1:55     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 03/10] media: platform: mediatek: add isp_7x seninf unit Shu-hsiang Yang
2024-10-14  9:25   ` CK Hu (胡俊光)
2024-10-14  9:25     ` CK Hu (胡俊光)
2024-10-18  8:54   ` CK Hu (胡俊光)
2024-10-18  8:54     ` CK Hu (胡俊光)
2024-10-28  1:27   ` CK Hu (胡俊光)
2024-10-28  1:27     ` CK Hu (胡俊光)
2024-10-28  1:30   ` CK Hu (胡俊光)
2024-10-28  1:30     ` CK Hu (胡俊光)
2024-11-06  5:58   ` CK Hu (胡俊光)
2024-11-06  5:58     ` CK Hu (胡俊光)
2024-11-18  9:23   ` CK Hu (胡俊光)
2024-11-18  9:23     ` CK Hu (胡俊光)
2024-11-18  9:28   ` CK Hu (胡俊光)
2024-11-18  9:28     ` CK Hu (胡俊光)
2024-11-19  1:46   ` CK Hu (胡俊光)
2024-11-19  1:46     ` CK Hu (胡俊光)
2024-11-19  1:50   ` CK Hu (胡俊光)
2024-11-19  1:50     ` CK Hu (胡俊光)
2024-11-20  6:35   ` CK Hu (胡俊光)
2024-11-20  6:35     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 04/10] media: platform: mediatek: add isp_7x cam-raw unit Shu-hsiang Yang
2024-10-10 12:49   ` AngeloGioacchino Del Regno
2024-10-11  2:23   ` CK Hu (胡俊光)
2024-10-11  2:23     ` CK Hu (胡俊光)
2024-10-11  2:55   ` CK Hu (胡俊光)
2024-10-11  2:55     ` CK Hu (胡俊光)
2024-10-11  5:40   ` CK Hu (胡俊光)
2024-10-11  5:40     ` CK Hu (胡俊光)
2024-10-11  6:03   ` CK Hu (胡俊光)
2024-10-11  6:03     ` CK Hu (胡俊光)
2024-10-22  5:43   ` Krzysztof Kozlowski
2024-10-22  6:14   ` CK Hu (胡俊光)
2024-10-22  6:14     ` CK Hu (胡俊光)
2024-10-22  6:30   ` CK Hu (胡俊光)
2024-10-22  6:30     ` CK Hu (胡俊光)
2024-10-23 10:05   ` CK Hu (胡俊光)
2024-10-23 10:05     ` CK Hu (胡俊光)
2024-10-25  6:30   ` CK Hu (胡俊光)
2024-10-25  6:30     ` CK Hu (胡俊光)
2024-10-28  6:48   ` CK Hu (胡俊光)
2024-10-28  6:48     ` CK Hu (胡俊光)
2024-11-04  2:35   ` CK Hu (胡俊光)
2024-11-04  2:35     ` CK Hu (胡俊光)
2024-11-04  8:04   ` CK Hu (胡俊光)
2024-11-04  8:04     ` CK Hu (胡俊光)
2024-11-05  3:01   ` CK Hu (胡俊光)
2024-11-05  3:01     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 05/10] media: platform: mediatek: add isp_7x camsys unit Shu-hsiang Yang
2024-10-14  9:40   ` CK Hu (胡俊光)
2024-10-14  9:40     ` CK Hu (胡俊光)
2024-10-16  3:43   ` CK Hu (胡俊光)
2024-10-16  3:43     ` CK Hu (胡俊光)
2024-11-19  5:56     ` CK Hu (胡俊光)
2024-11-19  5:56       ` CK Hu (胡俊光)
2024-10-22  5:44   ` Krzysztof Kozlowski [this message]
2024-10-22  6:48   ` CK Hu (胡俊光)
2024-10-22  6:48     ` CK Hu (胡俊光)
2024-10-29  2:35   ` CK Hu (胡俊光)
2024-10-29  2:35     ` CK Hu (胡俊光)
2024-10-29  6:47   ` CK Hu (胡俊光)
2024-10-29  6:47     ` CK Hu (胡俊光)
2024-10-29  7:03   ` CK Hu (胡俊光)
2024-10-29  7:03     ` CK Hu (胡俊光)
2024-10-30  3:20     ` CK Hu (胡俊光)
2024-10-30  3:20       ` CK Hu (胡俊光)
2024-10-30  5:43   ` CK Hu (胡俊光)
2024-10-30  5:43     ` CK Hu (胡俊光)
2024-11-04  6:08   ` CK Hu (胡俊光)
2024-11-04  6:08     ` CK Hu (胡俊光)
2024-11-04 13:06   ` [PATCH " Markus Elfring
2024-11-06  7:52   ` [PATCH v1 " CK Hu (胡俊光)
2024-11-06  7:52     ` CK Hu (胡俊光)
2024-11-13  7:24   ` CK Hu (胡俊光)
2024-11-13  7:24     ` CK Hu (胡俊光)
2024-11-20  6:10   ` CK Hu (胡俊光)
2024-11-20  6:10     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 06/10] media: platform: mediatek: add isp_7x utility Shu-hsiang Yang
2024-10-14  5:21   ` CK Hu (胡俊光)
2024-10-14  5:21     ` CK Hu (胡俊光)
2024-10-22  5:30   ` CK Hu (胡俊光)
2024-10-22  5:30     ` CK Hu (胡俊光)
2024-10-28  3:46   ` CK Hu (胡俊光)
2024-10-28  3:46     ` CK Hu (胡俊光)
2024-10-29  5:35   ` CK Hu (胡俊光)
2024-10-29  5:35     ` CK Hu (胡俊光)
2024-11-04  2:26   ` CK Hu (胡俊光)
2024-11-04  2:26     ` CK Hu (胡俊光)
2024-11-05  3:33   ` CK Hu (胡俊光)
2024-11-05  3:33     ` CK Hu (胡俊光)
2024-11-05  8:43   ` CK Hu (胡俊光)
2024-11-05  8:43     ` CK Hu (胡俊光)
2024-11-05  9:14   ` CK Hu (胡俊光)
2024-11-05  9:14     ` CK Hu (胡俊光)
2024-11-06  3:35   ` CK Hu (胡俊光)
2024-11-06  3:35     ` CK Hu (胡俊光)
2024-11-06  3:41   ` CK Hu (胡俊光)
2024-11-06  3:41     ` CK Hu (胡俊光)
2024-11-06  3:48   ` CK Hu (胡俊光)
2024-11-06  3:48     ` CK Hu (胡俊光)
2024-11-06  7:01   ` CK Hu (胡俊光)
2024-11-06  7:01     ` CK Hu (胡俊光)
2024-11-19  8:23   ` CK Hu (胡俊光)
2024-11-19  8:23     ` CK Hu (胡俊光)
2024-11-19  8:29   ` CK Hu (胡俊光)
2024-11-19  8:29     ` CK Hu (胡俊光)
2024-11-19  9:41   ` CK Hu (胡俊光)
2024-11-19  9:41     ` CK Hu (胡俊光)
2024-11-20  2:21   ` CK Hu (胡俊光)
2024-11-20  2:21     ` CK Hu (胡俊光)
2024-11-20  6:03     ` CK Hu (胡俊光)
2024-11-20  6:03       ` CK Hu (胡俊光)
2024-11-20  5:21   ` CK Hu (胡俊光)
2024-11-20  5:21     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 07/10] media: platform: mediatek: add isp_7x video ops Shu-hsiang Yang
2024-11-04  3:24   ` CK Hu (胡俊光)
2024-11-04  3:24     ` CK Hu (胡俊光)
2024-11-20  1:05   ` CK Hu (胡俊光)
2024-11-20  1:05     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 08/10] media: platform: mediatek: add isp_7x state ctrl Shu-hsiang Yang
2024-10-16  1:35   ` CK Hu (胡俊光)
2024-10-16  1:35     ` CK Hu (胡俊光)
2024-10-28  5:20   ` CK Hu (胡俊光)
2024-10-28  5:20     ` CK Hu (胡俊光)
2024-10-28  5:25     ` CK Hu (胡俊光)
2024-10-28  5:25       ` CK Hu (胡俊光)
2024-10-28  5:34   ` CK Hu (胡俊光)
2024-10-28  5:34     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 09/10] media: platform: mediatek: add isp_7x build config Shu-hsiang Yang
2024-10-16  1:56   ` CK Hu (胡俊光)
2024-10-16  1:56     ` CK Hu (胡俊光)
2024-10-09 11:15 ` [PATCH v1 10/10] uapi: linux: add mediatek isp_7x camsys user api Shu-hsiang Yang
2024-10-11  7:47   ` CK Hu (胡俊光)
2024-10-11  7:47     ` CK Hu (胡俊光)
2024-10-14  5:56   ` CK Hu (胡俊光)
2024-10-14  5:56     ` CK Hu (胡俊光)
2024-11-06 13:04     ` Laurent Pinchart
2024-11-18  9:58       ` Laurent Pinchart
2024-11-05  5:36   ` CK Hu (胡俊光)
2024-11-05  5:36     ` CK Hu (胡俊光)
2024-10-15 18:40 ` [PATCH v1 00/10] Add MediaTek ISP7 camera system driver Nicolas Dufresne
2024-11-18 10:00 ` 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=abe77aed-c777-4892-9fce-aaad508700f6@kernel.org \
    --to=krzk@kernel.org \
    --cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
    --cc=Shu-hsiang.Yang@mediatek.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=christian.koenig@amd.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hidenorik@chromium.org \
    --cc=krzk+dt@kernel.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=robh@kernel.org \
    --cc=shun-yi.wang@mediatek.com \
    --cc=sumit.semwal@linaro.org \
    --cc=teddy.chen@mediatek.com \
    --cc=yaya.chang@mediatek.com \
    --cc=yunkec@chromium.org \
    /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.