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 5FFEEC982DE for ; Mon, 21 Sep 2026 06:35:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:References:Cc:To:From:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=TrLtgz6x2U7PEO6IDlWwEQdJyY8ByiWJ0svyu3eBk3I=; b=gLG6pxQGx9oTFIGqJh4lSXk3YV 8sNUX7NixXBKWtHAwnPWa7cy1TEKdpqjC0cZfFTfm0oD0QtyDyDX5hrghRHTGuItGNOrs45j/9mW5 gGBbC/dptIi0sYMjbIpBTsnY/h4IuSepmbUfkczXyTFRgvd3YaGtpv+4t9yeTfJI7XAKxX5ohh+7e NicjZGfseXdRkPO7YXPSdd76DqgvatWrekoR0nqUP22JiNBxzrfGefqOu7Tss+j9F4xocebM7Kofd flshClT5dTllIqz5BZflwwquJ7+1Wt7aTUbJUPsAS7tP9GUX3ulXVgjvkCX9o56FCy155ojAvDYNv jG1XrAwA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x8XcO-000000012BA-1EwY; Mon, 21 Sep 2026 06:35:12 +0000 Received: from mail-m822136122.xmail.ntesmail.com ([8.221.36.122]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x8XcK-0000000124a-0P96; Mon, 21 Sep 2026 06:35:11 +0000 Received: from [172.16.12.74] (unknown [61.154.14.86]) by smtp.qiye.163.com (Hmail) with ESMTP id 4e87d7a93; Mon, 21 Sep 2026 14:34:59 +0800 (GMT+08:00) Message-ID: <96882735-091f-49c6-a47b-5da8be711818@rock-chips.com> Date: Mon, 21 Sep 2026 14:34:57 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 19/19] drm/bridge: analogix_dp: don't create a panel_bridge From: Damon Ding To: Luca Ceresoli , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Jessica Zhang , Laurentiu Palcu , Lucas Stach , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Paul Cercueil , Paul Kocialkowski , Linus Walleij , Inki Dae , Jagan Teki , Marek Szyprowski , Sean Paul , Jonathan Corbet , Shuah Khan , Randy Dunlap Cc: Albert Esteve , Anusha Srivatsa , Dmitry Baryshkov , Hui Pu , Ian Ray , Thomas Petazzoni , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, asahi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-doc@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Heiko Stuebner References: <20260916-drm-bridge-every-panel-v3-0-83afb4f1a707@bootlin.com> <20260916-drm-bridge-every-panel-v3-19-83afb4f1a707@bootlin.com> <975a4d45-9a61-4858-b498-8bc0a1e44746@rock-chips.com> Content-Language: en-US In-Reply-To: <975a4d45-9a61-4858-b498-8bc0a1e44746@rock-chips.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-HM-Tid: 0aa0c2acc9e403a8kunm657b9e77980220 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWRgWCB1ZQUpXWS1ZQUlXWQ8JGhUIEh9ZQVkZQx9KVh9PGB9MT0kfGB1ITFYVFA kWGhdVEwETFhoSFyQUDg9ZV1kYEgtZQVlNSlVKTk9VSk9VQ01ZV1kWGg8SFR0UWUFZT0tIVUpLSE pKQkxVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=ZHOwku2DSYkcme2HF6miD3tsHrohcDCgQN32pWRYnUFFJhMdcqTLpQQOBt1nASCVshzWCK1Rf2jUBn74aj5YAYiAlPuBMp3c1pQ2RZPJiSymLL/avNTAW5fYkrdsl8AUfIfftyZEjxzoezMDLxmwH2o4F6DAq4wXT1lyFhMzJFI=; c=relaxed/relaxed; s=default; d=rock-chips.com; v=1; bh=TrLtgz6x2U7PEO6IDlWwEQdJyY8ByiWJ0svyu3eBk3I=; h=date:mime-version:subject:message-id:from; X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260920_233509_498116_65678358 X-CRM114-Status: GOOD ( 19.93 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 9/21/2026 11:07 AM, Damon Ding wrote: > Hi Luca, > > On 9/16/2026 9:45 PM, Luca Ceresoli wrote: >> Now a panel_bridge is automatically created for every drm_panel and the >> panel-bridge API is just a deprecated wrapper to access it. >> >> Update and simplify the code by just getting a reference to the >> already-existing bridge using of_drm_get_bridge_by_endpoint(). >> >> As of_drm_get_bridge_by_endpoint() returns a refcounted bridge, take care >> of putting the bridge reference. This is not easily done in the remove >> path >> due to the different probe paths of the user drivers, so add a devm >> action >> to ensure the reference is put only when it was taken. >> >> Assisted-by: opencode:deepseek-v4-flash-0731 >> Signed-off-by: Luca Ceresoli >> --- >>   drivers/gpu/drm/bridge/analogix/Kconfig            |  1 - >>   drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 40 ++++++++++++ >> +--------- >>   drivers/gpu/drm/exynos/exynos_dp.c                 | 36 + >> +----------------- >>   drivers/gpu/drm/rockchip/analogix_dp-rockchip.c    |  9 ----- >>   include/drm/bridge/analogix_dp.h                   |  1 - >>   5 files changed, 25 insertions(+), 62 deletions(-) >> [snip] >> @@ -488,14 +487,6 @@ static void rockchip_dp_remove(struct >> platform_device *pdev) >>   { >>       struct rockchip_dp_device *dp = platform_get_drvdata(pdev); The above unused &rockchip_dp_device could be also remved. >> -    /* >> -     * Release the probe-time reference from of_drm_find_panel(). If >> bind >> -     * ran, the panel_bridge holds a second reference that devm cleanup >> -     * will release when the bridge is destroyed after remove() returns. >> -     */ >> -    if (dp->plat_data.panel) >> -        drm_panel_put(dp->plat_data.panel); >> - >>       component_del(&pdev->dev, &rockchip_dp_component_ops); >>   } >> diff --git a/include/drm/bridge/analogix_dp.h b/include/drm/bridge/ >> analogix_dp.h >> index 0e0b87abee59..6033137b651e 100644 >> --- a/include/drm/bridge/analogix_dp.h >> +++ b/include/drm/bridge/analogix_dp.h >> @@ -35,7 +35,6 @@ static inline bool analogix_dp_is_rockchip(enum >> analogix_dp_devtype type) >>   struct analogix_dp_plat_data { >>       enum analogix_dp_devtype dev_type; >> -    struct drm_panel *panel; >>       struct drm_bridge *next_bridge; >>       struct drm_encoder *encoder; >>       struct drm_connector *connector; >> > > I apply this patch series with the related one[0], and the eDP work well > on my RK3576 board. > > Tested-by: Damon Ding > > In my patch series for Analogix DP HPD support, Heiko also pointed out > that devm_drm_of_get_bridge()(deprecated now) can be used to get the > panel bridge directly, and the redundant &analogix_dp_plat_data.panel > can be removed[1]. Since your patch series already contains these > optimizations, I will rebase my patch series on top of yours for > subsequent updates. > > Reviewed-by: Damon Ding > > [0] https://lore.kernel.org/all/20260915-drm-bridge-drm_panel-cleanup- > v4-0-30401d9406f3@bootlin.com/ > [1] https://lore.kernel.org/all/5609825.iZASKD2KPV@diego/ > Best regards, Damon