Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp465560pxu; Fri, 11 Dec 2020 06:38:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJyMX1bOh/Jt6d4E0Ub3I/Rmzd3bXA9xx+51gPM1I7rHLqqYs7e5qDnvMSUZuE5j/KnqKjHR X-Received: by 2002:aa7:cb49:: with SMTP id w9mr12479166edt.357.1607697538519; Fri, 11 Dec 2020 06:38:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607697538; cv=none; d=google.com; s=arc-20160816; b=qIPjRsDPzCUzxDFKx9s1pRsW5mp8BOlGZpFapR304NO8uaPRPEvHDtunPfTftpcy07 ZCwkRI4+OY4si47ByX4nDQSne/pUaYl14/DdlqqG4iEH51MZDIz0I1GFMZjtsHbb3Y/Q /SuaHT5SFYOdqN0BMMNCsCQyzTyEYLOv2Sr5wYSzr0g6w9HrqvBwdZ29MrGmXrF46c94 dgssJmaqDG4AcozS4PjWRV4is6jwJjTrQZrWeuGs7q+4tkgCp7mKU1ImyePeCqnW6SAn gWUJhXcxWuQw8EKMUk4rWpmsPurlLJ4mDEWIH8hMwQSJw8doIGj7QLzb7lip+HVVYQmi vB0A== 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=ciSlGDXjZePCxEXUVU9GvRTvcUrdahipQ4RUHlVSP+M=; b=Cm0gjyYVyRkQOOTi8GIMhpuZcY1q7PZc0WeID0QFoTgqJhM+07gtlANNLvrFyypHWc BFeoP4n/WFpRCxhccaPo+Hq1Drj22eo6HKOycfWfEizont0E5mKstLhE2E0G+xq2lTd2 6pjvqQO3KokHIM/oAaqdnqw5RPx61r5XcTCy8sZmPKVpKGoCSN637VkXGxqyF8v7y6WY utYGWpKK9aycJ4Ix2F9cc9tfnz9lYTBtzkP37iSbOdanYnhZ/mGX41/hPm8MtL7vyE4d I2sm53f0VxhsEM1MpX+5UpoETPwroExxQYY94L93/aGi6cdXHXfkNr+oE2I7qo58FO/8 tTYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Cmj8IDjn; 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 y12si4561417ejm.210.2020.12.11.06.38.35; Fri, 11 Dec 2020 06:38:58 -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=Cmj8IDjn; 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 S2390595AbgLKOGG (ORCPT + 99 others); Fri, 11 Dec 2020 09:06:06 -0500 Received: from mail.kernel.org ([198.145.29.99]:42162 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391755AbgLKOFc (ORCPT ); Fri, 11 Dec 2020 09:05:32 -0500 X-Gm-Message-State: AOAM533Nq+G+LoQgWpd280agdzhOWB2FpDIUgk68rXPa4rhmSfydoB7g RLa4dhzFSRnDoWEP306IAYBBdflF+7Wc3zKpsw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1607695491; bh=es6fVWW1Xi0bIgwukRYW6eN8WCU8aY4WzaCmTH11tlM=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=Cmj8IDjnQExrgq6HqlljhAClfXwNIVIPq+rP2vQkvDiIsh3n0Ao/f79F3NUs3qjJv LQt7oPodOq18l0z7InPUWFBEe2dY3oAoF877KDkncLXExOC7ZzgfnPkhJNziHWDcbf d+g7AcJeaGVrjogmfWvOT6VQ99OYX52wvmFtlNi7Ui/9MNzlv8FE21f6i8CmH84OIt CG9GpTIpsYnxiUtp1ZIekfq0K8PfmgJKrO9lAyxr56DwYu4EjUiIXre3d5VZXxK+Q5 h8fRXzk7i5W5D4C4EuFuIRhQIvz/dW5EyUfj9udChv9EJkPh4QmJAlPggMxamx7ARN 9QGeOAPTwp+EQ== X-Received: by 2002:a05:6402:845:: with SMTP id b5mr12134678edz.38.1607695489475; Fri, 11 Dec 2020 06:04:49 -0800 (PST) MIME-Version: 1.0 References: <20201203082445.1342763-1-hsinyi@chromium.org> In-Reply-To: <20201203082445.1342763-1-hsinyi@chromium.org> From: Chun-Kuang Hu Date: Fri, 11 Dec 2020 22:04:38 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] drm/mediatek: mtk_dpi: Create connector for bridges To: Hsin-Yi Wang Cc: Chun-Kuang Hu , 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: 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 bri= dges"): > > 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 > > 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/mediate= k/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, struct = device *master, void *data) > > dpi->encoder.possible_crtcs =3D mtk_drm_find_possible_crtc_by_com= p(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->encod= er); > + 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 >