From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B7662F39AD for ; Tue, 18 Nov 2025 09:08:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763456896; cv=none; b=aGILj7w/pjNTWC1hR3seFiqRGYkPPK1JZwKmjah5rQL1p8JYZna737Afbrggq0vRypnavAnfUESptCoL/GpJy+CH3Ng0Rb3Le9nkfSMOxgn6U3CyPES4v3ExT8BZsx6nBd3EGSbcrVGBWNZ+3JnmEwN0ujcEvL3Df3kFoV8zDF4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763456896; c=relaxed/simple; bh=kFlNIN+gR01G+eV5ulgKp1aOfF3zt2Lu4Fx+jo8b8dU=; h=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References: In-Reply-To:Content-Type; b=ZwkOZyvoQUHj7CWleez+nN7GbDQRCFIfzeVTzta0zrVk4HPFoHr1qQ7GQ8UJO2JKk9jKAbw8Da9MVBF4GuYIuCbXiQ88MVtwvg6eZJPo9Pl4wU5llXyz4OzzV0S6NztbRL+tMxjGX9EfL2sePEQdne3QBlrAOUQvngtMKh198RY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=pGVI7TSr; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="pGVI7TSr" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-477a219dbcaso17524045e9.3 for ; Tue, 18 Nov 2025 01:08:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1763456892; x=1764061692; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:references:cc:to:subject:reply-to:from:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=c8ojmwZvyIUVTGQLirWUPhk95m2/9IA4Sz9hLtWscRI=; b=pGVI7TSriLTZypdkRLa+3b9rzWRFjtNVxHi5N/99+r3X1j8ismzsScjBGcc92QF+H+ iuGqKoRNsoVVZk9Ujkd45B3OND2cd2Dnnyvbil9MkDKO/PtqRox5787YCy5Bb3f1xBbJ XXEeJegzbMQ/TEYX42hzQt6cQXKFDa2R5B9FsFEYyru3SRiWUiF4Iw+nOhn0AN4GL2aw 63w5X0eGLB88gY/mh0V+YZPpzVzMV4hw3owSTVCWTi1tqgnFZ2m9gRXJdb50qO8Aw46o u5v2osd/Gve1Z9BVIO/PRRtsbL0sCjmmRBKekMRZbUz2N9O5dmiCCptLUnZoeGZQLSGc n59A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763456892; x=1764061692; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:references:cc:to:subject:reply-to:from:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c8ojmwZvyIUVTGQLirWUPhk95m2/9IA4Sz9hLtWscRI=; b=asZu4QBSkf6YKM8SNDr8Q7hRdsecjCtt2l6mM8Rtcbp7LRzbxlEJTp8jOxBEmC4Pyw bIChs5SJHMv/qRzFzCUeGWJNfUeT6EBIKj5Xd3vN/d+63aQDxeHweMZ7OfElitivZr67 RmeJrAd1/xZGrPf0H8B/GosOq39PW5Nx4S8w25C79OXLrrXWZxvb3/WpN1C3P2nTWTKL reBLI6uYwnwAucdvcVxeSXmNEr8caWr4x3KHeo4imBl+RzyLncJYHeqIhDmdygtTE7/C HC17c8mIuHAlXw9zb+/oP4tObZt1maVmM/xYEa4tTMcjLhnmfO3L3972Ci3abl6sDzcl hTWg== X-Forwarded-Encrypted: i=1; AJvYcCU+iongwXz6JdGyK9p1Uk4pNHEFMg0FZFHGwwAl+a6DorC/1RmMdaXFXhd2q4T9JJ3MDc/AY9bvPj2QiJ8=@vger.kernel.org X-Gm-Message-State: AOJu0Ywxp6Ooz5iY8z2VMurLhDp7PSpB+oSmkxLEZdmBlnd/QtiLwwZ6 2S7tDR38m4QZwP5D2kmqXKYVsVjhPfbSYQhCMjhrOWDK4oTvpwKVTdPHjsFHVocyYyU= X-Gm-Gg: ASbGncsdk8WgFHErZqXrrR/4Xmu2H7HDOK3pGHfajJdTpxoSPqFemOtC4WWDn6lZbaP pgtaf/ry1pkZ958AtapXgg0PZfThUVFKLayvrTCKpH+PYgg76saSh8e7RA+zyTErtr1/JDEsfZ2 F2cGxWA8W4MsVG4A6OKsK1udOn9TAkN+gsmejOGXegEM5blGgp+q4Z7SzVAZPQaK74RgzFbGppa UrUV/c4uhjihIdiebDTg8yhNLm0QuIYvidJv+ra+BeT6JZu0o6g/on+IvO7PiwEymsUBnMtE3Kb C3D50qapOlR3+HSrbPnBd8BWGTyruaPFm1Z9EMFt9Ubu8pVqJD3osoUJXyPRuucFKAXrKwOAYDw sWmVEw8zBGLcYqoIIH2x4yjrhguUMnLO/7Zq7ypB2qyyTkTDHCZQfyQ7RV0L5igWvfWYSd287F3 WTsszXsh4oJDS4kCLNVvUBiIwWwHUqQWMAqjtTgYN9bhUV82srkqOK2U1oVYCrIJk= X-Google-Smtp-Source: AGHT+IG6gLgCwxhtQm3Z8HznXw2PJ389guvo2P4OhOD1SCc8LUBuHyTff2qepHeal9ABmF52l4Ec4Q== X-Received: by 2002:a05:600c:3e8e:b0:477:abea:901c with SMTP id 5b1f17b1804b1-477abea924dmr8401245e9.11.1763456891500; Tue, 18 Nov 2025 01:08:11 -0800 (PST) Received: from ?IPV6:2a01:e0a:3d9:2080:366e:5264:fffe:1c49? ([2a01:e0a:3d9:2080:366e:5264:fffe:1c49]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53f2084dsm31563471f8f.42.2025.11.18.01.08.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 18 Nov 2025 01:08:11 -0800 (PST) Message-ID: <7ca46d0d-d235-421e-95cb-901efb856b0c@linaro.org> Date: Tue, 18 Nov 2025 10:08:09 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Neil Armstrong Reply-To: Neil Armstrong Subject: Re: [PATCH v9 06/10] phy: rockchip: phy-rockchip-typec: Add DRM AUX bridge To: Chaoyi Chen , Heikki Krogerus , Greg Kroah-Hartman , Dmitry Baryshkov , Peter Chen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Kishon Vijay Abraham I , Heiko Stuebner , Sandy Huang , Andy Yan , Yubing Zhang , Frank Wang , Andrzej Hajda , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Amit Sunil Dhamne , Chaoyi Chen , Dragan Simic , Johan Jonker , Diederik de Haas , Peter Robinson Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, dri-devel@lists.freedesktop.org References: <20251111105040.94-1-kernel@airkyi.com> <20251111105040.94-7-kernel@airkyi.com> Content-Language: en-US, fr Autocrypt: addr=neil.armstrong@linaro.org; keydata= xsBNBE1ZBs8BCAD78xVLsXPwV/2qQx2FaO/7mhWL0Qodw8UcQJnkrWmgTFRobtTWxuRx8WWP GTjuhvbleoQ5Cxjr+v+1ARGCH46MxFP5DwauzPekwJUD5QKZlaw/bURTLmS2id5wWi3lqVH4 BVF2WzvGyyeV1o4RTCYDnZ9VLLylJ9bneEaIs/7cjCEbipGGFlfIML3sfqnIvMAxIMZrvcl9 qPV2k+KQ7q+aXavU5W+yLNn7QtXUB530Zlk/d2ETgzQ5FLYYnUDAaRl+8JUTjc0CNOTpCeik 80TZcE6f8M76Xa6yU8VcNko94Ck7iB4vj70q76P/J7kt98hklrr85/3NU3oti3nrIHmHABEB AAHNKk5laWwgQXJtc3Ryb25nIDxuZWlsLmFybXN0cm9uZ0BsaW5hcm8ub3JnPsLAkQQTAQoA OwIbIwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBInsPQWERiF0UPIoSBaat7Gkz/iuBQJk Q5wSAhkBAAoJEBaat7Gkz/iuyhMIANiD94qDtUTJRfEW6GwXmtKWwl/mvqQtaTtZID2dos04 YqBbshiJbejgVJjy+HODcNUIKBB3PSLaln4ltdsV73SBcwUNdzebfKspAQunCM22Mn6FBIxQ GizsMLcP/0FX4en9NaKGfK6ZdKK6kN1GR9YffMJd2P08EO8mHowmSRe/ExAODhAs9W7XXExw UNCY4pVJyRPpEhv373vvff60bHxc1k/FF9WaPscMt7hlkbFLUs85kHtQAmr8pV5Hy9ezsSRa GzJmiVclkPc2BY592IGBXRDQ38urXeM4nfhhvqA50b/nAEXc6FzqgXqDkEIwR66/Gbp0t3+r yQzpKRyQif3OwE0ETVkGzwEIALyKDN/OGURaHBVzwjgYq+ZtifvekdrSNl8TIDH8g1xicBYp QTbPn6bbSZbdvfeQPNCcD4/EhXZuhQXMcoJsQQQnO4vwVULmPGgtGf8PVc7dxKOeta+qUh6+ SRh3vIcAUFHDT3f/Zdspz+e2E0hPV2hiSvICLk11qO6cyJE13zeNFoeY3ggrKY+IzbFomIZY 4yG6xI99NIPEVE9lNBXBKIlewIyVlkOaYvJWSV+p5gdJXOvScNN1epm5YHmf9aE2ZjnqZGoM Mtsyw18YoX9BqMFInxqYQQ3j/HpVgTSvmo5ea5qQDDUaCsaTf8UeDcwYOtgI8iL4oHcsGtUX oUk33HEAEQEAAcLAXwQYAQIACQUCTVkGzwIbDAAKCRAWmrexpM/4rrXiB/sGbkQ6itMrAIfn M7IbRuiSZS1unlySUVYu3SD6YBYnNi3G5EpbwfBNuT3H8//rVvtOFK4OD8cRYkxXRQmTvqa3 3eDIHu/zr1HMKErm+2SD6PO9umRef8V82o2oaCLvf4WeIssFjwB0b6a12opuRP7yo3E3gTCS KmbUuLv1CtxKQF+fUV1cVaTPMyT25Od+RC1K+iOR0F54oUJvJeq7fUzbn/KdlhA8XPGzwGRy 4zcsPWvwnXgfe5tk680fEKZVwOZKIEuJC3v+/yZpQzDvGYJvbyix0lHnrCzq43WefRHI5XTT QbM0WUIBIcGmq38+OgUsMYu4NzLu7uZFAcmp6h8g Organization: Linaro In-Reply-To: <20251111105040.94-7-kernel@airkyi.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/11/25 11:50, Chaoyi Chen wrote: > From: Chaoyi Chen > > Using the DRM_AUX_BRIDGE helper to create the transparent DRM bridge > device. > > Signed-off-by: Chaoyi Chen > --- > > (no changes since v7) > > Changes in v6: > - Fix depend in Kconfig. > > drivers/phy/rockchip/Kconfig | 2 + > drivers/phy/rockchip/phy-rockchip-typec.c | 52 +++++++++++++++++++++++ > 2 files changed, 54 insertions(+) > > diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig > index db4adc7c53da..bcb5476222fc 100644 > --- a/drivers/phy/rockchip/Kconfig > +++ b/drivers/phy/rockchip/Kconfig > @@ -120,6 +120,8 @@ config PHY_ROCKCHIP_TYPEC > tristate "Rockchip TYPEC PHY Driver" > depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) > depends on TYPEC || TYPEC=n > + depends on DRM || DRM=n > + select DRM_AUX_BRIDGE if DRM_BRIDGE > select EXTCON > select GENERIC_PHY > select RESET_CONTROLLER > diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c > index 1f5b4142cbe4..748a6eb8ad95 100644 > --- a/drivers/phy/rockchip/phy-rockchip-typec.c > +++ b/drivers/phy/rockchip/phy-rockchip-typec.c > @@ -36,6 +36,7 @@ > * orientation, false is normal orientation. > */ > > +#include > #include > #include > #include > @@ -56,6 +57,7 @@ > #include > #include > #include > +#include > > #define CMN_SSM_BANDGAP (0x21 << 2) > #define CMN_SSM_BIAS (0x22 << 2) > @@ -415,6 +417,7 @@ struct rockchip_usb3phy_port_cfg { > > struct rockchip_typec_phy { > struct device *dev; > + struct auxiliary_device dp_port_dev; > void __iomem *base; > struct extcon_dev *extcon; > struct typec_mux_dev *mux; > @@ -1299,6 +1302,51 @@ static void tcphy_typec_mux_unregister(void *data) > typec_mux_unregister(tcphy->mux); > } > > +static void tcphy_dp_port_dev_release(struct device *dev) > +{ > + struct auxiliary_device *adev = to_auxiliary_dev(dev); > + > + of_node_put(adev->dev.of_node); > +} > + > +static void tcphy_dp_port_unregister_adev(void *_adev) > +{ > + struct auxiliary_device *adev = _adev; > + > + auxiliary_device_delete(adev); > + auxiliary_device_uninit(adev); > +} > + > +static int tcphy_aux_bridge_register(struct rockchip_typec_phy *tcphy, struct device_node *np) > +{ > + struct auxiliary_device *adev = &tcphy->dp_port_dev; > + int ret; > + > + adev->name = "dp_port"; > + adev->dev.parent = tcphy->dev; > + adev->dev.of_node = of_node_get(np); > + adev->dev.release = tcphy_dp_port_dev_release; > + > + ret = auxiliary_device_init(adev); > + Drop this empty line. > + if (ret) { > + of_node_put(adev->dev.of_node); > + return ret; > + } > + > + ret = auxiliary_device_add(adev); > + if (ret) { > + auxiliary_device_uninit(adev); > + return ret; > + } > + > + devm_add_action_or_reset(tcphy->dev, tcphy_dp_port_unregister_adev, adev); > + > + ret = drm_aux_bridge_register(&adev->dev); Adding an aux device to an aux device looks quite overengineered to me ! If it's a matter of using the proper of_node, you may instead create a separate drm_aux_bridge_register() like drm_aux_bridge_register_from_node() instead. Neil > + > + return 0; > +} > + > static int tcphy_setup_typec_mux(struct rockchip_typec_phy *tcphy) > { > struct typec_mux_desc mux_desc = {}; > @@ -1312,6 +1360,10 @@ static int tcphy_setup_typec_mux(struct rockchip_typec_phy *tcphy) > if (!of_property_read_bool(np, "mode-switch")) > goto put_np; > > + ret = tcphy_aux_bridge_register(tcphy, np); > + if (ret) > + goto put_np; > + > mux_desc.drvdata = tcphy; > mux_desc.fwnode = device_get_named_child_node(tcphy->dev, "dp-port"); > mux_desc.set = tcphy_typec_mux_set;