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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id ED2D9C43334 for ; Mon, 25 Jul 2022 02:35:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:CC:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FqNzquAn81bBwbU7K1S1+9uEaRmgpwzYLbaseJkFwGI=; b=h9qvmQI0q1tAzf hDLmyDGhD760WV4/NiEeGIFoh6a1pYeIhfKQPaw1GPeYfdqkiaC/dxCo6tKCukg6JCHK70tvefX3p ozyd4ctDW5CPP13nPGO+8huiVjf62gj9nxWdZ+ShO3n5TLDvU44StMpandTFnctrAcsJSZ4iBN4HK TRHUCiZxnGWPiLDMtUvmWTqxUj5s10ZNtT3QC2d//6elM8KBWRbYeU8testoaboCCO1UgnTvgzkZM 5gIT4brJLWswhwihmqi9lZmPWjvBVxYBtQ6v8nW92ch3bS9A1PvwKrbh5pDyM6hnPRN4ic/dXi2/U 7yKUJWymAbOx+AEAfMfQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oFnv6-00160D-A2; Mon, 25 Jul 2022 02:34:08 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oFnv3-0015ur-Kl; Mon, 25 Jul 2022 02:34:07 +0000 X-UUID: f94cad86faf241bfa25adf0bbac7dc78-20220724 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=DRgjdVVxy+QXwj3CSkcj1bxIXeCmOwraRVXJsi0HjFE=; b=cLhHaPgeg7Es9iZDM0x0z/T2ZiYN7yFCEwslOlouPadciYD56Uhumaq5/JAxG3c+qtd+BpVr8ej4AEcuVOzyd7Y1GQEqBOCL7/+HcWokjGnxGrh0sw6+6QUJ2PShRdEyNSjGSQmB16h+6jqBItBlRfJpUDK1CAMiMSAXYP+UfaQ=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.8,REQID:974fad8c-84b1-4cbb-b0b8-4ad31f58ce9f,OB:0,LO B:0,IP:0,URL:5,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,RULE:Release_Ham,ACTI ON:release,TS:5 X-CID-META: VersionHash:0f94e32,CLOUDID:551060b3-06d2-48ef-b2dd-540836705165,C OID:IGNORED,Recheck:0,SF:nil,TC:nil,Content:0,EDM:-3,IP:nil,URL:1,File:nil ,QS:nil,BEC:nil,COL:0 X-UUID: f94cad86faf241bfa25adf0bbac7dc78-20220724 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1511404613; Sun, 24 Jul 2022 19:33:57 -0700 Received: from mtkmbs11n1.mediatek.inc (172.21.101.185) by mtkmbs11n1.mediatek.inc (172.21.101.185) with ShadowRedundancy id 15.2.792.3; Mon, 25 Jul 2022 02:32:31 +0000 Received: from mtkmbs11n2.mediatek.inc (172.21.101.187) by mtkmbs11n1.mediatek.inc (172.21.101.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Mon, 25 Jul 2022 10:14:08 +0800 Received: from mhfsdcap04 (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 25 Jul 2022 10:14:06 +0800 Message-ID: <788c192e17d1fa88105a9bb5238a023e593b251b.camel@mediatek.com> Subject: Re: [V5,3/8] media: mtk-jpegdec: manage jpegdec multi-hardware From: kyrie.wu To: AngeloGioacchino Del Regno , Irui Wang , Hans Verkuil , Mauro Carvalho Chehab , "Rob Herring" , Matthias Brugger , Tzung-Bi Shih , , CC: , , , , , , Tomasz Figa , , , Date: Mon, 25 Jul 2022 10:14:06 +0800 In-Reply-To: <00dc6bff-d87a-0d80-fe20-ae70e5ad0c4f@collabora.com> References: <20220716093408.29734-1-irui.wang@mediatek.com> <20220716093408.29734-4-irui.wang@mediatek.com> <00dc6bff-d87a-0d80-fe20-ae70e5ad0c4f@collabora.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220724_193405_735660_3EA97CD2 X-CRM114-Status: GOOD ( 23.50 ) 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: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, 2022-07-18 at 12:22 +0200, AngeloGioacchino Del Regno wrote: > Il 16/07/22 11:34, Irui Wang ha scritto: > > From: kyrie wu > > > > manage each hardware information, including irq/clk/power. > > the hardware includes HW0/HW1/HW2. > > > > Signed-off-by: kyrie wu > > Signed-off-by: irui wang > > > > --- > > drivers/media/platform/mediatek/jpeg/Makefile | 5 +- > > .../platform/mediatek/jpeg/mtk_jpeg_core.c | 23 +++ > > .../platform/mediatek/jpeg/mtk_jpeg_core.h | 37 ++++ > > .../platform/mediatek/jpeg/mtk_jpeg_dec_hw.c | 172 > > ++++++++++++++++++ > > 4 files changed, 235 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/media/platform/mediatek/jpeg/Makefile > > b/drivers/media/platform/mediatek/jpeg/Makefile > > index 69703db4b0a5..26e84852523e 100644 > > --- a/drivers/media/platform/mediatek/jpeg/Makefile > > +++ b/drivers/media/platform/mediatek/jpeg/Makefile > > @@ -1,9 +1,10 @@ > > # SPDX-License-Identifier: GPL-2.0-only > > obj-$(CONFIG_VIDEO_MEDIATEK_JPEG) += mtk_jpeg.o \ > > - mtk-jpeg-enc-hw.o > > + mtk-jpeg-enc-hw.o \ > > + mtk-jpeg-dec-hw.o > > > > mtk_jpeg-y := mtk_jpeg_core.o \ > > - mtk_jpeg_dec_hw.o \ > > mtk_jpeg_dec_parse.o > > > > mtk-jpeg-enc-hw-y := mtk_jpeg_enc_hw.o > > +mtk-jpeg-dec-hw-y := mtk_jpeg_dec_hw.o > > diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c > > b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c > > index 386d48cc4f59..a9e8be976bb0 100644 > > --- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c > > +++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c > > @@ -1100,6 +1100,10 @@ static void > > mtk_jpeg_multicore_enc_device_run(void *priv) > > queue_work(jpeg->workqueue, &ctx->jpeg_work); > > } > > > > +static void mtk_jpeg_multicore_dec_device_run(void *priv) > > +{ > > .... why is this function empty?! > > > +} > > + > > static void mtk_jpeg_dec_device_run(void *priv) > > { > > struct mtk_jpeg_ctx *ctx = priv; > > @@ -1166,6 +1170,10 @@ static const struct v4l2_m2m_ops > > mtk_jpeg_multicore_enc_m2m_ops = { > > .device_run = mtk_jpeg_multicore_enc_device_run, > > }; > > > > +static const struct v4l2_m2m_ops mtk_jpeg_multicore_dec_m2m_ops = > > { > > + .device_run = mtk_jpeg_multicore_dec_device_run, > > +}; > > + > > static const struct v4l2_m2m_ops mtk_jpeg_dec_m2m_ops = { > > .device_run = mtk_jpeg_dec_device_run, > > .job_ready = mtk_jpeg_dec_job_ready, > > @@ -1680,6 +1688,17 @@ static struct mtk_jpeg_variant > > mtk8195_jpegenc_drvdata = { > > .cap_q_default_fourcc = V4L2_PIX_FMT_JPEG, > > }; > > > > +static const struct mtk_jpeg_variant mtk8195_jpegdec_drvdata = { > > + .formats = mtk_jpeg_dec_formats, > > + .num_formats = MTK_JPEG_DEC_NUM_FORMATS, > > + .qops = &mtk_jpeg_dec_qops, > > + .m2m_ops = &mtk_jpeg_multicore_dec_m2m_ops, > > + .dev_name = "mtk-jpeg-dec", > > + .ioctl_ops = &mtk_jpeg_dec_ioctl_ops, > > + .out_q_default_fourcc = V4L2_PIX_FMT_JPEG, > > + .cap_q_default_fourcc = V4L2_PIX_FMT_YUV420M, > > +}; > > + > > #if defined(CONFIG_OF) > > static const struct of_device_id mtk_jpeg_match[] = { > > { > > @@ -1698,6 +1717,10 @@ static const struct of_device_id > > mtk_jpeg_match[] = { > > .compatible = "mediatek,mt8195-jpgenc", > > .data = &mtk8195_jpegenc_drvdata, > > }, > > + { > > + .compatible = "mediatek,mt8195-jpgdec", > > + .data = &mtk8195_jpegdec_drvdata, > > + }, > > {}, > > }; > > > > ..snip.. > > > diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c > > b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c > > index d2f25f43e852..232e81165dd3 100644 > > --- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c > > +++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c > > ..snip.. > > > + > > +static int mtk_jpegdec_hw_probe(struct platform_device *pdev) > > +{ > > + struct mtk_jpegdec_clk *jpegdec_clk; > > + struct mtk_jpeg_dev *master_dev; > > + struct mtk_jpegdec_comp_dev *dev; > > + int ret, i; > > + > > + struct device *decs = &pdev->dev; > > + > > + if (!decs->parent) > > + return -EPROBE_DEFER; > > + > > + master_dev = dev_get_drvdata(decs->parent); > > + if (!master_dev) > > + return -EPROBE_DEFER; > > + > > + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); > > + if (!dev) > > + return -ENOMEM; > > + > > + dev->plat_dev = pdev; > > + dev->dev = &pdev->dev; > > + > > + if (!master_dev->is_jpgdec_multihw) { > > + master_dev->is_jpgdec_multihw = true; > > + for (i = 0; i < MTK_JPEGDEC_HW_MAX; i++) > > + master_dev->dec_hw_dev[i] = NULL; > > + } > > + > > + jpegdec_clk = &dev->jdec_clk; > > + > > + jpegdec_clk->clk_num = devm_clk_bulk_get_all(&pdev->dev, > > + &jpegdec_clk- > > >clks); > > + if (jpegdec_clk->clk_num < 0) > > + return dev_err_probe(&pdev->dev, > > + jpegdec_clk->clk_num, > > + "Failed to get jpegdec clock > > count.\n"); > > + > > + dev->reg_base = devm_platform_ioremap_resource(pdev, 0); > > + if (IS_ERR(dev->reg_base)) > > + return PTR_ERR(dev->reg_base); > > + > > + ret = mtk_jpegdec_hw_init_irq(dev); > > + if (ret) > > + return dev_err_probe(&pdev->dev, > > + ret, > > + "Failed to register JPEGDEC irq > > handler.\n"); > > Fix: > return dev_err_probe(&pdev->dev, ret, > > "Failed to register JPEGDEC irq > handler.\n"); > > > Regards, > Angelo Hi Angelo, Thanks for your checking. Regards, Kyrie. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel