Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp839139pxb; Wed, 13 Jan 2021 17:58:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJwT6WU7jOOry640j07Zyxd+6JS3g8ArYtQty82zEAiwH2HWJuLsZd1ILa3Krt8YYzv4oTUL X-Received: by 2002:a50:8b02:: with SMTP id l2mr3913259edl.322.1610589509276; Wed, 13 Jan 2021 17:58:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610589509; cv=none; d=google.com; s=arc-20160816; b=nFhndSrTWQJVcqCEOBaCoL96HJu8iLpGGj5k8SP9AtBLPLtXDnpzCkNGdxvD0pcQsj /7yaBO79BuGBxCF4XH023lsNl6bFjtpB9xLLqzsKAw2EnYnjJvPE0sQMwte9nR+f/b9c asNBg/jJP8xalaOKcPPBESngiCLXhtIGHGAv3+YHeW5FHWFl4Lc9gBNNze15f4Ovta2/ ucoCh5YKy2wKJRkEW+E/2zMAhCM3IpelfbTPe5m/sSkKuZbGzqhj/JBQwKcHTCe49xzg 3R8f4v1qR6TeJqUJoK4fAeFwiBqqdtoU4pPuIWlB2C89tqmu59fWwLaoitup13xlzaqP 9Ilg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=8iUjwq7uw3+k0/MFqNxiiODRcVm8QoxpyQN1tzt2kFc=; b=qk3Say0tJqPb20ScIYYgq3+EWbgmwJHaD6pkxakfA3J8c7MiTc+tc39UuckZ7yGygR VQErgqJbHRv473uIeZrZ4RcdQmULcfZXcQ8212iKd8pPxqlglnMEVoD3JM+IU7VOOrYM 4eie9vuVNMiRHESY55VO82enPXNq76Bd8ZHx3c0esTWVOVQueUQDlhWRi44Rpc5JOXsp oPFICKscnUXHQqjmd+T+1IomTb1xlGijX/tW1QtINF6Gf+GNFMonJNqzyi+zMTz9llS5 f5qd6pvRS3r3/EhLuuqKE6PI/KtAX2BTIBaZi7zUYSFKlCYRhiwrqNsrlDx2cEp3p9gd xFmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UO7fzeIt; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g9si557017edn.361.2021.01.13.17.58.06; Wed, 13 Jan 2021 17:58:29 -0800 (PST) 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=@kernel.org header.s=k20201202 header.b=UO7fzeIt; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727908AbhANBzr (ORCPT + 99 others); Wed, 13 Jan 2021 20:55:47 -0500 Received: from mail.kernel.org ([198.145.29.99]:54954 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729600AbhAMXuZ (ORCPT ); Wed, 13 Jan 2021 18:50:25 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 62E07233FC for ; Wed, 13 Jan 2021 23:49:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1610581746; bh=Smp7CBcsbwTpztK0DhWsbG+PGWv9mq20lRCePwZJocM=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=UO7fzeItexglalq9gLqMO12U3TTA56lXYBM+GJRkxiBvhlnj8MscCgPfbc87JGjWr 92I7ndM5YUB+GzlXAljk4nFnQSb+qOJTNMjABim8T/FlvqaPa02DqyHXd+wiYOtwtQ PT5YPPpuPJ7JX7gbFnisXUMfP5xs40qhYE5puctsvYGw+URACccJhk0+ACxVtZdg2W gMLS9cXtl7hYYZ8t60LYWeOyfxITEVSPhOjH9+lpRkAKQAXJ9paupmxTa/33aKC2Gy ZSaHQhJH4oSDVfgNbBZ7FbSD/2D/bV2o5tp4GSPnS3DeB/JWWqVPIZaP61vSYHzPYE qiEuwzcFOSGQg== Received: by mail-wm1-f50.google.com with SMTP id 190so3065421wmz.0 for ; Wed, 13 Jan 2021 15:49:06 -0800 (PST) X-Gm-Message-State: AOAM531I9dkQShgLKhydOVP2ZqPw5+aYNbM5IvQMQE++HDlA1GTWXnMq 40XXbWpULzc/c21hIkGT+/TdAcOpil2hlXhk7Q== X-Received: by 2002:a05:600c:25c2:: with SMTP id 2mr1376818wml.170.1610581744920; Wed, 13 Jan 2021 15:49:04 -0800 (PST) MIME-Version: 1.0 References: <20201203082445.1342763-1-hsinyi@chromium.org> In-Reply-To: From: Chun-Kuang Hu Date: Thu, 14 Jan 2021 07:48:53 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] drm/mediatek: mtk_dpi: Create connector for bridges To: Chun-Kuang Hu Cc: Hsin-Yi Wang , Philipp Zabel , Enric Balletbo i Serra , David Airlie , Daniel Vetter , Matthias Brugger , DRI Development , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Hsin-Yi: Chun-Kuang Hu =E6=96=BC 2020=E5=B9=B412=E6=9C=881= 1=E6=97=A5 =E9=80=B1=E4=BA=94 =E4=B8=8B=E5=8D=8810:04=E5=AF=AB=E9=81=93=EF= =BC=9A > > Hi, Hsin-Yi: > > Hsin-Yi Wang =E6=96=BC 2020=E5=B9=B412=E6=9C=883=E6= =97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=884:24=E5=AF=AB=E9=81=93=EF=BC=9A > > > > Similar to a9d9fea74be2 ("drm/mediatek: mtk_dsi: Create connector for b= ridges"): > > > > Use the drm_bridge_connector helper to create a connector for pipelines > > that use drm_bridge. This allows splitting connector operations across > > multiple bridges when necessary, instead of having the last bridge in > > the chain creating the connector and handling all connector operations > > internally. > > Reviewed-by: Chun-Kuang Hu Applied to mediatek-drm-next [1], thanks. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/= log/?h=3Dmediatek-drm-next Regards, Chun-Kuang. > > > > > Signed-off-by: Hsin-Yi Wang > > --- > > drivers/gpu/drm/mediatek/mtk_dpi.c | 13 ++++++++++++- > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/media= tek/mtk_dpi.c > > index 52f11a63a330..189377e342fa 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > > @@ -20,6 +20,7 @@ > > > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -66,6 +67,7 @@ struct mtk_dpi { > > struct drm_encoder encoder; > > struct drm_bridge bridge; > > struct drm_bridge *next_bridge; > > + struct drm_connector *connector; > > void __iomem *regs; > > struct device *dev; > > struct clk *engine_clk; > > @@ -603,12 +605,21 @@ static int mtk_dpi_bind(struct device *dev, struc= t device *master, void *data) > > > > dpi->encoder.possible_crtcs =3D mtk_drm_find_possible_crtc_by_c= omp(drm_dev, dpi->ddp_comp); > > > > - ret =3D drm_bridge_attach(&dpi->encoder, &dpi->bridge, NULL, 0)= ; > > + ret =3D drm_bridge_attach(&dpi->encoder, &dpi->bridge, NULL, > > + DRM_BRIDGE_ATTACH_NO_CONNECTOR); > > if (ret) { > > dev_err(dev, "Failed to attach bridge: %d\n", ret); > > goto err_cleanup; > > } > > > > + dpi->connector =3D drm_bridge_connector_init(drm_dev, &dpi->enc= oder); > > + if (IS_ERR(dpi->connector)) { > > + dev_err(dev, "Unable to create bridge connector\n"); > > + ret =3D PTR_ERR(dpi->connector); > > + goto err_cleanup; > > + } > > + drm_connector_attach_encoder(dpi->connector, &dpi->encoder); > > + > > dpi->bit_num =3D MTK_DPI_OUT_BIT_NUM_8BITS; > > dpi->channel_swap =3D MTK_DPI_OUT_CHANNEL_SWAP_RGB; > > dpi->yc_map =3D MTK_DPI_OUT_YC_MAP_RGB; > > -- > > 2.29.2.576.ga3fc446d84-goog > >