Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp3573520pxt; Tue, 10 Aug 2021 06:42:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzK7kaojC8KbYCOf2mezgLiyxG3N1rKrGxmcoW0y7EtO1PPVtXcHyjffoS2EliWCq8j+kg6 X-Received: by 2002:a17:906:a14b:: with SMTP id bu11mr27970996ejb.260.1628602932408; Tue, 10 Aug 2021 06:42:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628602932; cv=none; d=google.com; s=arc-20160816; b=N3CzzNZFUStPe2QZLoUn3l7iFP7hYsAVWKVkLJDlT7TeqBdmSGaYDQW9jx5RL11lrC vWsxrDfm1ESo/WU0ZNwOuN1/dL4ipU6Q4Kdw5qtJ3liCEzt1s57uHW067MkhV/C1H8Mv tXiV0fvevBTO0kB1uRkZqimQpp0bkexYZIPEIOZAflA5LKewHY4iXijBGbvV2RRbmZxM fwI0wuOwkwpN2UbgLah9y8ji/SKcAaywtx5DnInAwaVJxubxpV/OAzgolG6c2xcAEwGo 2Ra4OWkg0GYKlnMlo2YPV/r67dkI8JFfEyTMrkftgN19+2FWphN1NNmGwBqu/yys/7N/ SHqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=5BOsKHbtULAxcDrxqJDAJDBDyZVhdaKsxydikfZ2cCY=; b=lfm+/tmACv5T+XMDjfjLkjKnQBh18CtVpxlp5EltszBE0UZFxDSU234z86CCLoMgti ImS1pTTez/rDlaWUHOuTkvHPZntzIj0Pa4nBlwtBZ8fRRqPoQkAiJ5vJC7dD6yukJ5s2 C601pN/O0eqWztiP2hQ426OhhMhDLawf+k0YSM39oT7yg98ulsMsD0FceFtOaem/gKLg Kf/1iHljIDpUdlI/a7nzUtj3J2w+JxMOKn5v9pIYb4S80v+2aRB/e8GlsvGV+FjUM5TC 7xRi1uodeoQCSOT/j4DQE/66Qpq0zAloDU7On6mrxCSc9DSw91mBPeciuzeAB6Pmxbe4 imEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=le5jpsll; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l25si1789273eds.541.2021.08.10.06.41.47; Tue, 10 Aug 2021 06:42:12 -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; dkim=pass header.i=@google.com header.s=20161025 header.b=le5jpsll; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240049AbhHJLOR (ORCPT + 99 others); Tue, 10 Aug 2021 07:14:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240052AbhHJLOQ (ORCPT ); Tue, 10 Aug 2021 07:14:16 -0400 Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7123CC061799 for ; Tue, 10 Aug 2021 04:13:54 -0700 (PDT) Received: by mail-il1-x135.google.com with SMTP id y3so4887962ilm.6 for ; Tue, 10 Aug 2021 04:13:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5BOsKHbtULAxcDrxqJDAJDBDyZVhdaKsxydikfZ2cCY=; b=le5jpsllsk89jd77pk7klxKwaq6DCVXUZMp+F4J1gkrQMl7VWJ3KdHkPJKe5ZHYwn/ CT9ld8XxqTbGwtXkgXyRl8EcBOf8HkH4MdbUSlDcVGRHVC/W7ADwJGO1PsavEugYpE/8 /0O4b7jsrK1uPXXzZinEVKxNoXGV9ueBzh/9yQFm/Pd7smQF94uIeRQuiBlTq4JKnkuk lIuLDajRa+ROeCNpYcpfHqgojtrRwjJy7I969VQz1M2UVAzmzlm/fVRmiyiPhXntysyQ HVD8lDG1XeS17nXUBZbSSjae0wACMIcGA2k7IztCfTy90GmfayCrXq/+M22hyJxUMcdH jkZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5BOsKHbtULAxcDrxqJDAJDBDyZVhdaKsxydikfZ2cCY=; b=GNzXhEOEQvQ6RprenSd85eNdtdhpVvCnTq5E2mNdbvELvPBnHC1rLBDA3I/X4fgKAu 3mlTy6k70VNY4mBryx6Ul0QCpzU6MP3rHpNta4chPW6O2R933T8zsokLQvPoZgqaSQPc lRsI/85LDrAwM9W7y8qY04jATrtXzNdNM0mqERQO4Rvkuzj9jFjxVjp0t5/hdsfKy1Cf mut0pk8IKlrZkEKMZUsIGUQOB+O7JIzYfy6absEbwxk6nchT2PPmxWyXimX4fYpFbKVO mGFdsggiSXwAkpYvc2oV696LNZ3+4BaXX/ufI1YWGnKO6b57ThSrBDFY7pFHfKVt3k5V HXsQ== X-Gm-Message-State: AOAM533ldlwsZSrj0rsKvWcdkbrKz9yxK7Ag/+mxUinYgej1N29T4s19 vcdkw79geno+vCvv9QlwUGy/TWI1X+1Gpa8HbJTTkQ== X-Received: by 2002:a05:6e02:d03:: with SMTP id g3mr121789ilj.127.1628594033707; Tue, 10 Aug 2021 04:13:53 -0700 (PDT) MIME-Version: 1.0 References: <20210810083047.16693-1-yunfei.dong@mediatek.com> <20210810083047.16693-5-yunfei.dong@mediatek.com> In-Reply-To: <20210810083047.16693-5-yunfei.dong@mediatek.com> From: Tzung-Bi Shih Date: Tue, 10 Aug 2021 19:13:42 +0800 Message-ID: Subject: Re: [PATCH v4, 04/15] media: mtk-vcodec: Use component framework to manage each hardware information To: Yunfei Dong Cc: Alexandre Courbot , Hans Verkuil , Tzung-Bi Shih , Tiffany Lin , Andrew-CT Chen , Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Tomasz Figa , Hsin-Yi Wang , Fritz Koenig , 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, George Sun Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 10, 2021 at 04:30:36PM +0800, Yunfei Dong wrote: > > Looking up "mediatek,mtk-vcodec-core" to determine if it uses component framwork sounds like... > Add prameter in pdata, for all platform will use compoent after mt8183 > > >> + if (dev->is_comp_supported) { > >> + ret = mtk_vcodec_init_master(dev); > >> + if (ret < 0) > >> + goto err_component_match; > >> + } else { > >> + platform_set_drvdata(pdev, dev); > >> + } > > + Has asked the same question in [1]. Why it removes the > > +platform_set_drvdata() above? mtk_vcodec_init_master() also calls platform_set_drvdata(). > Must call component_master_add_with_match after platform_set_drvdata for component architecture. I am confused. The condition "call component_master_add_with_match after platform_set_drvdata" is already true even if without the change. See below. > +static int mtk_vcodec_init_master(struct mtk_vcodec_dev *dev) > +{ > + struct platform_device *pdev = dev->plat_dev; > + struct component_match *match; > + int ret; > + > + match = mtk_vcodec_match_add(dev); > + if (IS_ERR_OR_NULL(match)) > + return -EINVAL; > + > + platform_set_drvdata(pdev, dev); > + ret = component_master_add_with_match(&pdev->dev, &mtk_vdec_ops, match); Point [1]. > @@ -311,7 +413,6 @@ static int mtk_vcodec_probe(struct platform_device *pdev) > MTK_VCODEC_DEC_NAME); > video_set_drvdata(vfd_dec, dev); > dev->vfd_dec = vfd_dec; > - platform_set_drvdata(pdev, dev); Point [2]. > @@ -362,8 +463,16 @@ static int mtk_vcodec_probe(struct platform_device *pdev) > mtk_v4l2_debug(0, "decoder registered as /dev/video%d", > vfd_dec->num); > > - return 0; > + if (dev->vdec_pdata->is_comp_supported) { > + ret = mtk_vcodec_init_master(dev); Point [3]. The calling sequence is: [2] -> component_master_add_with_match() -> [1] -> [3]. Don't understand why it removes the platform_set_drvdata() at point [2].