Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2588240pxb; Fri, 29 Oct 2021 04:38:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyYHibm866cSO4oxsjlImrr4wLvB3DbiLwMUnEzWU1oTd/GtHnltMDbAOmd51jAa+N6MVhl X-Received: by 2002:a05:6402:3554:: with SMTP id f20mr14614608edd.210.1635507483154; Fri, 29 Oct 2021 04:38:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635507483; cv=none; d=google.com; s=arc-20160816; b=oiuqWj6i/kCFWkye1joSOhXXGLODt/ydmapzQ4jv+y0sbrkenzGo2DdqQAq9c0B4Zk sRDC4Wcd4hGE6NDpNZ4I+hrFTJc/m5T4GoJisbir2FS4GMGXhksE66R7KTKNvFEZswEa h/YqAQHHA8xPzYG6AtShL+tDf/26ARdKuNdmUtgqm5GJNFuN+un0AT18EX/19aPy5m7A TjWagXnPGceU9iAbfvo4GcCdhYXQkePITzb3Qga3JSZP6Q/AMpb+zJm8wKgWBZaTGms9 GtR9Jq2SVHszT5Bb+4QG0NJp8/srXDschVqQi/sJZCjCR/hXsxdnLfvLqbtzLRMW16Ns nMpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=hh2vmD32UG8a+s5d06idQETH914hTIvAJERWM6iTeMU=; b=NhOAEljR313L2qr8XubzxSj57+VaB9w/q4ys+rJIU27xjVFJOI+YVXadpXj+aXSi7d uOLez9CDytYfYtwxJxTxjywgn8F0ATfVpK2mhlgXyVh6gP6XUJPmEzowIDb5X08+Ytop vvSrqKiOZxWylrEI9XPKntyPWA4p1YtkNo59dFHNltY6kU384dzg27ExEGybbh36CkFc 8BLJ8ssnabXOH+YkvwmHg9XmNVzxA2wq5SwivRu+vmP3CEEOV/6mLskCkw1+lrAJ/EHM lkWiUewHmJguVDsOhC2XNmDT4uCXwjHqDjzc0Ch9F9YJukV+bTgDQFJncdHjmtFRty5q 8wFQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cw2si12622203ejc.730.2021.10.29.04.37.38; Fri, 29 Oct 2021 04:38:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231978AbhJ2LiR (ORCPT + 99 others); Fri, 29 Oct 2021 07:38:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231807AbhJ2LiP (ORCPT ); Fri, 29 Oct 2021 07:38:15 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8CC9C061570; Fri, 29 Oct 2021 04:35:46 -0700 (PDT) Received: from [IPv6:2a02:810a:880:f54:6141:93b5:19a6:af87] (unknown [IPv6:2a02:810a:880:f54:6141:93b5:19a6:af87]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: dafna) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 137BD1F45952; Fri, 29 Oct 2021 12:35:42 +0100 (BST) Subject: Re: [PATCH v8, 03/17] media: mtk-vcodec: Refactor vcodec pm interface To: Yunfei Dong , Alexandre Courbot , Hans Verkuil , Tzung-Bi Shih , Tiffany Lin , Andrew-CT Chen , Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Tomasz Figa Cc: Hsin-Yi Wang , Fritz Koenig , Benjamin Gaignard , Daniel Vetter , dri-devel , Irui Wang , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, srv_heupstream@mediatek.com, linux-mediatek@lists.infradead.org, Project_Global_Chrome_Upstream_Group@mediatek.com, Tzung-Bi Shih , AngeloGioacchino Del Regno References: <20211029035527.454-1-yunfei.dong@mediatek.com> <20211029035527.454-4-yunfei.dong@mediatek.com> From: Dafna Hirschfeld Message-ID: <2a25abdc-691b-9409-15ed-980af460c6c6@collabora.com> Date: Fri, 29 Oct 2021 13:35:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20211029035527.454-4-yunfei.dong@mediatek.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 29.10.21 05:55, Yunfei Dong wrote: > Using the needed param for pm init/release function and remove unused > param mtkdev in 'struct mtk_vcodec_pm'. > > Reviewed-by: Tzung-Bi Shih > Reviewed-By: AngeloGioacchino Del Regno > Signed-off-by: Yunfei Dong Hi, I already commented on v7 that since the pm implementation for dec and enc is identical, you should better do the same refactor to enc and dec or better remove the code duplication. Thanks, Dafna > --- > .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 6 ++--- > .../platform/mtk-vcodec/mtk_vcodec_dec_pm.c | 22 ++++++++----------- > .../platform/mtk-vcodec/mtk_vcodec_dec_pm.h | 5 +++-- > .../platform/mtk-vcodec/mtk_vcodec_drv.h | 1 - > .../platform/mtk-vcodec/mtk_vcodec_enc_pm.c | 1 - > 5 files changed, 15 insertions(+), 20 deletions(-) > > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c > index 055d50e52720..3ac4c3935e4e 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c > @@ -249,7 +249,7 @@ static int mtk_vcodec_probe(struct platform_device *pdev) > if (IS_ERR(dev->fw_handler)) > return PTR_ERR(dev->fw_handler); > > - ret = mtk_vcodec_init_dec_pm(dev); > + ret = mtk_vcodec_init_dec_pm(dev->plat_dev, &dev->pm); > if (ret < 0) { > dev_err(&pdev->dev, "Failed to get mt vcodec clock source"); > goto err_dec_pm; > @@ -378,7 +378,7 @@ static int mtk_vcodec_probe(struct platform_device *pdev) > err_dec_alloc: > v4l2_device_unregister(&dev->v4l2_dev); > err_res: > - mtk_vcodec_release_dec_pm(dev); > + mtk_vcodec_release_dec_pm(&dev->pm); > err_dec_pm: > mtk_vcodec_fw_release(dev->fw_handler); > return ret; > @@ -418,7 +418,7 @@ static int mtk_vcodec_dec_remove(struct platform_device *pdev) > video_unregister_device(dev->vfd_dec); > > v4l2_device_unregister(&dev->v4l2_dev); > - mtk_vcodec_release_dec_pm(dev); > + mtk_vcodec_release_dec_pm(&dev->pm); > mtk_vcodec_fw_release(dev->fw_handler); > return 0; > } > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c > index 6038db96f71c..20bd157a855c 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c > @@ -13,18 +13,15 @@ > #include "mtk_vcodec_dec_pm.h" > #include "mtk_vcodec_util.h" > > -int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev) > +int mtk_vcodec_init_dec_pm(struct platform_device *pdev, > + struct mtk_vcodec_pm *pm) > { > struct device_node *node; > - struct platform_device *pdev; > - struct mtk_vcodec_pm *pm; > + struct platform_device *larb_pdev; > struct mtk_vcodec_clk *dec_clk; > struct mtk_vcodec_clk_info *clk_info; > int i = 0, ret = 0; > > - pdev = mtkdev->plat_dev; > - pm = &mtkdev->pm; > - pm->mtkdev = mtkdev; > dec_clk = &pm->vdec_clk; > node = of_parse_phandle(pdev->dev.of_node, "mediatek,larb", 0); > if (!node) { > @@ -32,13 +29,12 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev) > return -1; > } > > - pdev = of_find_device_by_node(node); > + larb_pdev = of_find_device_by_node(node); > of_node_put(node); > - if (WARN_ON(!pdev)) { > + if (WARN_ON(!larb_pdev)) { > return -1; > } > - pm->larbvdec = &pdev->dev; > - pdev = mtkdev->plat_dev; > + pm->larbvdec = &larb_pdev->dev; > pm->dev = &pdev->dev; > > dec_clk->clk_num = > @@ -82,10 +78,10 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev) > return ret; > } > > -void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev) > +void mtk_vcodec_release_dec_pm(struct mtk_vcodec_pm *pm) > { > - pm_runtime_disable(dev->pm.dev); > - put_device(dev->pm.larbvdec); > + pm_runtime_disable(pm->dev); > + put_device(pm->larbvdec); > } > > int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm) > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h > index 280aeaefdb65..a3df6aef6cb9 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h > @@ -9,8 +9,9 @@ > > #include "mtk_vcodec_drv.h" > > -int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *dev); > -void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev); > +int mtk_vcodec_init_dec_pm(struct platform_device *pdev, > + struct mtk_vcodec_pm *pm); > +void mtk_vcodec_release_dec_pm(struct mtk_vcodec_pm *pm); > > int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm); > void mtk_vcodec_dec_pw_off(struct mtk_vcodec_pm *pm); > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > index 1d2370608d0d..0fa9d85114b9 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h > @@ -195,7 +195,6 @@ struct mtk_vcodec_pm { > struct mtk_vcodec_clk venc_clk; > struct device *larbvenc; > struct device *dev; > - struct mtk_vcodec_dev *mtkdev; > }; > > /** > diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c > index 1b2e4930ed27..0c8c8f86788c 100644 > --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c > +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c > @@ -26,7 +26,6 @@ int mtk_vcodec_init_enc_pm(struct mtk_vcodec_dev *mtkdev) > pdev = mtkdev->plat_dev; > pm = &mtkdev->pm; > memset(pm, 0, sizeof(struct mtk_vcodec_pm)); > - pm->mtkdev = mtkdev; > pm->dev = &pdev->dev; > dev = &pdev->dev; > enc_clk = &pm->venc_clk; >