From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFC533D3336 for ; Mon, 27 Jul 2026 06:45:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.206.16.166 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785134713; cv=none; b=dQaRFNQ1I3T3HFmxfyRYXrSdytZQfW8B4hLZelclw9RBo0HbjACjP97XuBxkmOsC4aTnCF8tymcrH5y8wObXm6ZFY1PbTrqSjIH7qVdEkHuXmCkAhQpuwq/7rHXcb9szNvqwl1yq//uafCfGHpODC2U0ahBLEGQwxfFI+7FnTZU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785134713; c=relaxed/simple; bh=Do2vEEbKffBKIoRwA8XTtrCuUyMId8s9a5j5NUcntlY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=tymFDL4TAO4jYhDZl0Jnqg5hXPn8kElCw1iXSYcLx3u769cHyGEhuDI3QJLA1KuWgZonrtVcCWwQk5luNdPdOqS7bcN0p2V/526SQ83rUmj3lZHZefRcNm/E2LhWIoJH0lgeST91nYEtQYfnpgFsQAVSij5utykmL5Izkl8q+Bw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com; spf=pass smtp.mailfrom=airkyi.com; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b=hDlQkr9J; arc=none smtp.client-ip=54.206.16.166 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=airkyi.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b="hDlQkr9J" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1785134689; bh=hfSDcA/VFf5O36XZ1jIbDeiIvlPOe5N0iYnQa5D5SVg=; h=From:To:Subject:Date:Message-Id; b=hDlQkr9JFI8u40qrCApgLqwUS8XblnHz0ml7LuAH+R0NEvZf9qzJBv3nxq4HvkpZx PfarddfjUQLWbP/GCPQSfplijK42OuXKr+PKqozs+R67wWbCXoE/0qIR3BB+WodEKn dEXX+0DBZFEHo5LJYIZS9RNjx4fjpzI/f9wu3xAg= X-QQ-mid: esmtpgz10t1785134688t5dee5c19 X-QQ-Originating-IP: JD2yQrbP0AKFsNHvK+l6Wv5zjAVvpOG41JCgU7YJc/I= Received: from DESKTOP-8BT1A2O.localdomain ( [61.154.14.86]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Jul 2026 14:44:44 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 6495474740739693013 From: Chaoyi Chen To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , Andy Yan , Vinod Koul , Chaoyi Chen , Sebastian Reichel , Nicolas Frattaroli , Heikki Krogerus Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-phy@lists.infradead.org Subject: [PATCH v4 4/5] drm/rockchip: cdn-dp: Support handle lane info without extcon Date: Mon, 27 Jul 2026 14:44:07 +0800 Message-Id: <20260727064408.101-5-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260727064408.101-1-kernel@airkyi.com> References: <20260727064408.101-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:airkyi.com:qybglogicsvrgz:qybglogicsvrgz6b-0 X-QQ-XMAILINFO: N+v2p8NjVRtQEf1YivtFDUiH3egi6P+Xw3TeCbo68k7+W66y0aWyEg6w JBYiwhSlCQhnxW5SMQo78XCVh9ojVJjGhetFoHt6gaQ3zidMOiLZiC1hQ6PY/B406npTUSo KKZIdPaAMWaoEi4y+IwDRvMn8rD3Uro0iGkvBkbVeL1XfOgntparlQSmLom5tfRRhEWweca 1uQ6Xzu39ZujqAG1aO19RvtqILllVJM0r4hEeLCfRxSqxrBzcfBpwvaBjg1Z0/TCQS5DNZG lpHhvgkgXeJJ6/XBe38YUM34CddyplETjltl6/kW4Anvo36vJQXMzeV4D6/WUGBTrXGDla3 15f5L0DmF1M/YNbcE/Jq3JxuGV4ARrmRjTw0K2Zdsf4WzR5CnSXzI/1CzOkGZHwbSESdluE aixAPLYLHwoJgSP2NjPp+kUCzWdNacNoMqlasEdN395/vILPT/1ITri4jcpdN0ZzryS4Yov uUUCVZdA9/h48Q+ghOnJVZ+atyoqLH73WxpwrREW5wt9FDlfmqHPbShoHMhlOUXQDzCx/9H w45eFEuBK9L9SIZccZifuRSBX8mpNN9Q1CMhboHc60S5YHceCZBK4VytDOxUV6MfifmRzyo Tlsmc0QcmQQGKwaIP8oAPs+0RLhEj45NKh4JpZfV3hADocYDGiU2EREPliPZSG8adBrcxB0 SXAupZEskxvFnpY2WaszbKgWsX9X22LFghvufHtwAO1zMuG7z6+1LfktlDkTrVndGxTfnph 95HQUQlRk89rFnPmrhhTUA4Gq3e5Koiw5x0I8YVbRO3AOmV7ejLor6tRIribZNBCateh9DS MqI0kKpXyZWwYG7deA/qrrKHgaD29RZvkuUTv4w6QcW2pvfh3IKOz1eFzRENvGEA1bowZXt 9GOLzZjfbG10/MLxluyty7fySwJXjRffpl0uWA+rQr1H98fy3g+LoLNBRI5ymM8pjSDZhkZ cndmK2EFZ/dPP8dXtRwQ/di67PEEY1NLFszVO4CDVK9i/x6+HMn/usPLKN7m5Q9SoYbDiCv ENis5pikFehnGZUcTfeIRvZipB4PW1h+9HE9SlhQ== X-QQ-XMRINFO: M/715EihBoGS47X28/vv4NpnfpeBLnr4Qg== X-QQ-RECHKSPAM: 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: From: Chaoyi Chen This patch add support for get PHY lane info without help of extcon. There is no extcon needed if the Type-C controller is present. In this case, the lane info can be get from PHY instead of extcon. The extcon device should still be supported if Type-C controller is not present. Signed-off-by: Chaoyi Chen Reviewed-by: Heiko Stuebner --- (no changes since v1) --- drivers/gpu/drm/rockchip/cdn-dp-core.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index 190cce9530c8..74e1f5422a6e 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -157,6 +157,9 @@ static int cdn_dp_get_port_lanes(struct cdn_dp_port *port) int dptx; u8 lanes; + if (!edev) + return phy_get_bus_width(port->phy); + dptx = extcon_get_state(edev, EXTCON_DISP_DP); if (dptx > 0) { extcon_get_property(edev, EXTCON_DISP_DP, @@ -220,7 +223,7 @@ static bool cdn_dp_check_sink_connection(struct cdn_dp_device *dp) * some docks need more time to power up. */ while (time_before(jiffies, timeout)) { - if (!extcon_get_state(port->extcon, EXTCON_DISP_DP)) + if (port->extcon && !extcon_get_state(port->extcon, EXTCON_DISP_DP)) return false; if (!cdn_dp_get_sink_count(dp, &sink_count)) @@ -386,11 +389,14 @@ static int cdn_dp_enable_phy(struct cdn_dp_device *dp, struct cdn_dp_port *port) goto err_power_on; } - ret = extcon_get_property(port->extcon, EXTCON_DISP_DP, - EXTCON_PROP_USB_TYPEC_POLARITY, &property); - if (ret) { - DRM_DEV_ERROR(dp->dev, "get property failed\n"); - goto err_power_on; + property.intval = 0; + if (port->extcon) { + ret = extcon_get_property(port->extcon, EXTCON_DISP_DP, + EXTCON_PROP_USB_TYPEC_POLARITY, &property); + if (ret) { + DRM_DEV_ERROR(dp->dev, "get property failed\n"); + goto err_power_on; + } } port->lanes = cdn_dp_get_port_lanes(port); @@ -1027,6 +1033,9 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) for (i = 0; i < dp->ports; i++) { port = dp->port[i]; + if (!port->extcon) + continue; + port->event_nb.notifier_call = cdn_dp_pd_event; ret = devm_extcon_register_notifier(dp->dev, port->extcon, EXTCON_DISP_DP, @@ -1119,14 +1128,14 @@ static int cdn_dp_probe(struct platform_device *pdev) PTR_ERR(phy) == -EPROBE_DEFER) return -EPROBE_DEFER; - if (IS_ERR(extcon) || IS_ERR(phy)) + if (IS_ERR(phy) || PTR_ERR(extcon) != -ENODEV) continue; port = devm_kzalloc(dev, sizeof(*port), GFP_KERNEL); if (!port) return -ENOMEM; - port->extcon = extcon; + port->extcon = IS_ERR(extcon) ? NULL : extcon; port->phy = phy; port->dp = dp; port->id = i; -- 2.53.0 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 5CC31C5321C for ; Mon, 27 Jul 2026 06:45:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ql1jxu/iIntOYOACePbnHHgaKyLC5kmjdoJX6c6pEF4=; b=IjT2TGEryQui6h TfzsqlOx58OXM295BhSGS64/BxmG3s8EA189jCu7/bjLxenuc8KZYZw4MiTRudRMzQux9s1zX5QZp 2UT35SISirKPqutzwgJ15PeQORkNnMWiEq/qrxq4VXTrD7MAiaCTrvg50MPhItKwhiI1Dkzvc2lA0 YICZxKZSbLHBjQ0JLqwxYO3IcGtHywyZoaPeUIhmLS1iTQeQTe/wGrOdlL2sXgUbE+2bsUiz+xX5v UMJ9tJz9OvQ9RO2ItewhxSoiScn2kgEfwnV8u2ntkwoG8gCdG2sNOwp44PKrnIof27+7+VTmBmi3O lKF6eehvnR1F/5zgnbjg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woF5u-000000023Cj-04rk; Mon, 27 Jul 2026 06:45:46 +0000 Received: from smtpbgau1.qq.com ([54.206.16.166]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1woF5r-00000002310-1cZM; Mon, 27 Jul 2026 06:45:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1785134690; bh=hfSDcA/VFf5O36XZ1jIbDeiIvlPOe5N0iYnQa5D5SVg=; h=From:To:Subject:Date:Message-Id; b=AMflhvr8A+NH6hwlzk/MHyKNHoyqzuMQwUqFRay9/0IDynqFNCp+wPQ43oFDVd/Bs AESLHIgayuDF652pnWBKGs5zFUEo6a0QKdhJ4t8Gh0nNArKI9QE+qFjB7DHSl1COVD ypmFIIWIv9jhQm3el45GNul82EYdpj0kpHWbWGwc= X-QQ-mid: esmtpgz10t1785134688t5dee5c19 X-QQ-Originating-IP: JD2yQrbP0AKFsNHvK+l6Wv5zjAVvpOG41JCgU7YJc/I= Received: from DESKTOP-8BT1A2O.localdomain ( [61.154.14.86]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Jul 2026 14:44:44 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 6495474740739693013 From: Chaoyi Chen To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , Andy Yan , Vinod Koul , Chaoyi Chen , Sebastian Reichel , Nicolas Frattaroli , Heikki Krogerus Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-phy@lists.infradead.org Subject: [PATCH v4 4/5] drm/rockchip: cdn-dp: Support handle lane info without extcon Date: Mon, 27 Jul 2026 14:44:07 +0800 Message-Id: <20260727064408.101-5-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260727064408.101-1-kernel@airkyi.com> References: <20260727064408.101-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:airkyi.com:qybglogicsvrgz:qybglogicsvrgz6b-0 X-QQ-XMAILINFO: MUe2PhP7Eq79FMvW41JmG4vAurHtl/yWUrsJUyFwt0wbHYGVGn3HuSWN kNrh5DMV/bmmdCKyxjeDaXfuudmLLYI9RXFriw/X7+uNRlzIngtihnTMut7PWvW4HaRvLns dUUtNtt569JH9rI6JppgWgjURBLOzSBMGsp4otGA7b5kqy/hpI7PRhq3LZ7KgI7ADF8XAGL iSSsK6R7zl3YlnuNGVWoYFze0VHkc7AQh/4oj9KWLQbknL7q0bFxrJ4T30hMtJkZ0fqe35Y vxPAkJ4CcVpfT/bLU77gy/riE7sA38z0smxL/JxPVXFXfm/YbGtpOHsW6FY2k6ySP2VH3nw cVdLy+2VQLrbvru+1gX1sWq0/eEMrJctpWnD49JR/52ZtwNs/Po9Fj1iAv+Reya11DyxwFN 5RxVzSpBduv6RtB2k5C9RYr6flQBiZuzBtWuEZD1W6GDxyE4dLtPCmu80rWljOoLy+3n9zu Id9qBXWWhPY4rN4ZWIUhPJtfLiJNUWxPnecos34RBy+yL5JeqE7Bmg3Bf1acMYT0VS67shW Om6UsHKaN4fdwZk1MCHRN+2ky6uBpuixP8Fk/mh8Evb5qy+QXdtQl01F0TwMtRJItbgdcVX df2dafiLwRH/UAk+qw0mOhcisbSB2+FmcgkjTE0JFFVWaOmtDkj+RcuD1o+LFXLayN+yJ7y SHZt5TMIOKgP209bdGYkApcz1hg+cXIRjKAPwCAuJ+azqgl6SwG9Z+v6irKHP8DveGpO4+1 9JP4LZIkJm2ngLLWAlB9W15xB+kP8VJ2xcvrcZHwhFX0zWB2xPytnV6mIB9o2ZBaANulIDY MXZ9NMl3swrZYupWVIPnCQQGWmTvlpEQNhK9mKBeBp7aBDpzVEpc5Cey+9ncev4cHog3Kfv jx8yB00gBBi7zaXNg0p9vZb7aBmGch4uri4les05X+awWTYJgVvpzg0eZqQt/JA6P4FapFv MgXH8Op1sM1BTEWjBpy5X2+DN8YI+u9cN7DC6LK1xfhO9S6qVK+2yKzbI4Jxliw2clOmXYF 6NzHzImcGuypMHYd7SypVf+xbPKtJQhiHAP1RnCg== X-QQ-XMRINFO: NS+P29fieYNwqS3WCnRCOn9D1NpZuCnCRA== X-QQ-RECHKSPAM: 0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260726_234543_910239_4F7DA51F X-CRM114-Status: GOOD ( 15.24 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org From: Chaoyi Chen This patch add support for get PHY lane info without help of extcon. There is no extcon needed if the Type-C controller is present. In this case, the lane info can be get from PHY instead of extcon. The extcon device should still be supported if Type-C controller is not present. Signed-off-by: Chaoyi Chen Reviewed-by: Heiko Stuebner --- (no changes since v1) --- drivers/gpu/drm/rockchip/cdn-dp-core.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index 190cce9530c8..74e1f5422a6e 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -157,6 +157,9 @@ static int cdn_dp_get_port_lanes(struct cdn_dp_port *port) int dptx; u8 lanes; + if (!edev) + return phy_get_bus_width(port->phy); + dptx = extcon_get_state(edev, EXTCON_DISP_DP); if (dptx > 0) { extcon_get_property(edev, EXTCON_DISP_DP, @@ -220,7 +223,7 @@ static bool cdn_dp_check_sink_connection(struct cdn_dp_device *dp) * some docks need more time to power up. */ while (time_before(jiffies, timeout)) { - if (!extcon_get_state(port->extcon, EXTCON_DISP_DP)) + if (port->extcon && !extcon_get_state(port->extcon, EXTCON_DISP_DP)) return false; if (!cdn_dp_get_sink_count(dp, &sink_count)) @@ -386,11 +389,14 @@ static int cdn_dp_enable_phy(struct cdn_dp_device *dp, struct cdn_dp_port *port) goto err_power_on; } - ret = extcon_get_property(port->extcon, EXTCON_DISP_DP, - EXTCON_PROP_USB_TYPEC_POLARITY, &property); - if (ret) { - DRM_DEV_ERROR(dp->dev, "get property failed\n"); - goto err_power_on; + property.intval = 0; + if (port->extcon) { + ret = extcon_get_property(port->extcon, EXTCON_DISP_DP, + EXTCON_PROP_USB_TYPEC_POLARITY, &property); + if (ret) { + DRM_DEV_ERROR(dp->dev, "get property failed\n"); + goto err_power_on; + } } port->lanes = cdn_dp_get_port_lanes(port); @@ -1027,6 +1033,9 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) for (i = 0; i < dp->ports; i++) { port = dp->port[i]; + if (!port->extcon) + continue; + port->event_nb.notifier_call = cdn_dp_pd_event; ret = devm_extcon_register_notifier(dp->dev, port->extcon, EXTCON_DISP_DP, @@ -1119,14 +1128,14 @@ static int cdn_dp_probe(struct platform_device *pdev) PTR_ERR(phy) == -EPROBE_DEFER) return -EPROBE_DEFER; - if (IS_ERR(extcon) || IS_ERR(phy)) + if (IS_ERR(phy) || PTR_ERR(extcon) != -ENODEV) continue; port = devm_kzalloc(dev, sizeof(*port), GFP_KERNEL); if (!port) return -ENOMEM; - port->extcon = extcon; + port->extcon = IS_ERR(extcon) ? NULL : extcon; port->phy = phy; port->dp = dp; port->id = i; -- 2.53.0 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy 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 28DC3C531D0 for ; Mon, 27 Jul 2026 06:45:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uAHiJuuh+TtTfJ703GAmLyptPsBgfkIq+fYyiAWBFTY=; b=C2GCZUvjRwdnrl wtMh4ErXmDAkiRZm+sro72nuCpH2rsmNQV95F+DCXE3s+COEQbtvDRnK0767E/4gECGf24aG/SAVO dAD8sicBDzCbC5Us+DGkrFB6yZ6LZvJj1wjKW/jermAh7d/AV9+qJyNviTX+V7bpMu9Tw7/Fp3RtB kIHLbq8O5t4VENFCY+sHmf4ESUFGo0ucif3MHCc06JkxWCNrojYqmC76UqfOpZ8UCzjtccuiD1Rik ItVT4yNggLca8JhO3+E0BJAmHy0nQyLMKnzg5t4GvqZfalH2jqJUMwsEv6SnrQcYA22D4Fe9Ee04W 20922P1oIbhEjN6Q47Tw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woF5t-000000023Cb-42wN; Mon, 27 Jul 2026 06:45:45 +0000 Received: from smtpbgau1.qq.com ([54.206.16.166]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1woF5r-00000002310-1cZM; Mon, 27 Jul 2026 06:45:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1785134690; bh=hfSDcA/VFf5O36XZ1jIbDeiIvlPOe5N0iYnQa5D5SVg=; h=From:To:Subject:Date:Message-Id; b=AMflhvr8A+NH6hwlzk/MHyKNHoyqzuMQwUqFRay9/0IDynqFNCp+wPQ43oFDVd/Bs AESLHIgayuDF652pnWBKGs5zFUEo6a0QKdhJ4t8Gh0nNArKI9QE+qFjB7DHSl1COVD ypmFIIWIv9jhQm3el45GNul82EYdpj0kpHWbWGwc= X-QQ-mid: esmtpgz10t1785134688t5dee5c19 X-QQ-Originating-IP: JD2yQrbP0AKFsNHvK+l6Wv5zjAVvpOG41JCgU7YJc/I= Received: from DESKTOP-8BT1A2O.localdomain ( [61.154.14.86]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 27 Jul 2026 14:44:44 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 6495474740739693013 From: Chaoyi Chen To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , Andy Yan , Vinod Koul , Chaoyi Chen , Sebastian Reichel , Nicolas Frattaroli , Heikki Krogerus Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-phy@lists.infradead.org Subject: [PATCH v4 4/5] drm/rockchip: cdn-dp: Support handle lane info without extcon Date: Mon, 27 Jul 2026 14:44:07 +0800 Message-Id: <20260727064408.101-5-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20260727064408.101-1-kernel@airkyi.com> References: <20260727064408.101-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:airkyi.com:qybglogicsvrgz:qybglogicsvrgz6b-0 X-QQ-XMAILINFO: MUe2PhP7Eq79FMvW41JmG4vAurHtl/yWUrsJUyFwt0wbHYGVGn3HuSWN kNrh5DMV/bmmdCKyxjeDaXfuudmLLYI9RXFriw/X7+uNRlzIngtihnTMut7PWvW4HaRvLns dUUtNtt569JH9rI6JppgWgjURBLOzSBMGsp4otGA7b5kqy/hpI7PRhq3LZ7KgI7ADF8XAGL iSSsK6R7zl3YlnuNGVWoYFze0VHkc7AQh/4oj9KWLQbknL7q0bFxrJ4T30hMtJkZ0fqe35Y vxPAkJ4CcVpfT/bLU77gy/riE7sA38z0smxL/JxPVXFXfm/YbGtpOHsW6FY2k6ySP2VH3nw cVdLy+2VQLrbvru+1gX1sWq0/eEMrJctpWnD49JR/52ZtwNs/Po9Fj1iAv+Reya11DyxwFN 5RxVzSpBduv6RtB2k5C9RYr6flQBiZuzBtWuEZD1W6GDxyE4dLtPCmu80rWljOoLy+3n9zu Id9qBXWWhPY4rN4ZWIUhPJtfLiJNUWxPnecos34RBy+yL5JeqE7Bmg3Bf1acMYT0VS67shW Om6UsHKaN4fdwZk1MCHRN+2ky6uBpuixP8Fk/mh8Evb5qy+QXdtQl01F0TwMtRJItbgdcVX df2dafiLwRH/UAk+qw0mOhcisbSB2+FmcgkjTE0JFFVWaOmtDkj+RcuD1o+LFXLayN+yJ7y SHZt5TMIOKgP209bdGYkApcz1hg+cXIRjKAPwCAuJ+azqgl6SwG9Z+v6irKHP8DveGpO4+1 9JP4LZIkJm2ngLLWAlB9W15xB+kP8VJ2xcvrcZHwhFX0zWB2xPytnV6mIB9o2ZBaANulIDY MXZ9NMl3swrZYupWVIPnCQQGWmTvlpEQNhK9mKBeBp7aBDpzVEpc5Cey+9ncev4cHog3Kfv jx8yB00gBBi7zaXNg0p9vZb7aBmGch4uri4les05X+awWTYJgVvpzg0eZqQt/JA6P4FapFv MgXH8Op1sM1BTEWjBpy5X2+DN8YI+u9cN7DC6LK1xfhO9S6qVK+2yKzbI4Jxliw2clOmXYF 6NzHzImcGuypMHYd7SypVf+xbPKtJQhiHAP1RnCg== X-QQ-XMRINFO: NS+P29fieYNwqS3WCnRCOn9D1NpZuCnCRA== X-QQ-RECHKSPAM: 0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260726_234543_910239_4F7DA51F X-CRM114-Status: GOOD ( 15.24 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org From: Chaoyi Chen This patch add support for get PHY lane info without help of extcon. There is no extcon needed if the Type-C controller is present. In this case, the lane info can be get from PHY instead of extcon. The extcon device should still be supported if Type-C controller is not present. Signed-off-by: Chaoyi Chen Reviewed-by: Heiko Stuebner --- (no changes since v1) --- drivers/gpu/drm/rockchip/cdn-dp-core.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index 190cce9530c8..74e1f5422a6e 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -157,6 +157,9 @@ static int cdn_dp_get_port_lanes(struct cdn_dp_port *port) int dptx; u8 lanes; + if (!edev) + return phy_get_bus_width(port->phy); + dptx = extcon_get_state(edev, EXTCON_DISP_DP); if (dptx > 0) { extcon_get_property(edev, EXTCON_DISP_DP, @@ -220,7 +223,7 @@ static bool cdn_dp_check_sink_connection(struct cdn_dp_device *dp) * some docks need more time to power up. */ while (time_before(jiffies, timeout)) { - if (!extcon_get_state(port->extcon, EXTCON_DISP_DP)) + if (port->extcon && !extcon_get_state(port->extcon, EXTCON_DISP_DP)) return false; if (!cdn_dp_get_sink_count(dp, &sink_count)) @@ -386,11 +389,14 @@ static int cdn_dp_enable_phy(struct cdn_dp_device *dp, struct cdn_dp_port *port) goto err_power_on; } - ret = extcon_get_property(port->extcon, EXTCON_DISP_DP, - EXTCON_PROP_USB_TYPEC_POLARITY, &property); - if (ret) { - DRM_DEV_ERROR(dp->dev, "get property failed\n"); - goto err_power_on; + property.intval = 0; + if (port->extcon) { + ret = extcon_get_property(port->extcon, EXTCON_DISP_DP, + EXTCON_PROP_USB_TYPEC_POLARITY, &property); + if (ret) { + DRM_DEV_ERROR(dp->dev, "get property failed\n"); + goto err_power_on; + } } port->lanes = cdn_dp_get_port_lanes(port); @@ -1027,6 +1033,9 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) for (i = 0; i < dp->ports; i++) { port = dp->port[i]; + if (!port->extcon) + continue; + port->event_nb.notifier_call = cdn_dp_pd_event; ret = devm_extcon_register_notifier(dp->dev, port->extcon, EXTCON_DISP_DP, @@ -1119,14 +1128,14 @@ static int cdn_dp_probe(struct platform_device *pdev) PTR_ERR(phy) == -EPROBE_DEFER) return -EPROBE_DEFER; - if (IS_ERR(extcon) || IS_ERR(phy)) + if (IS_ERR(phy) || PTR_ERR(extcon) != -ENODEV) continue; port = devm_kzalloc(dev, sizeof(*port), GFP_KERNEL); if (!port) return -ENOMEM; - port->extcon = extcon; + port->extcon = IS_ERR(extcon) ? NULL : extcon; port->phy = phy; port->dp = dp; port->id = i; -- 2.53.0 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip