From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 887893ABD9D; Fri, 19 Jun 2026 15:28:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882942; cv=none; b=LurZflxv/JX77nugMMMX99Pg/9pIgnRxtzk8sZg8LPVtexG4PQNbdBw2n4U6i6m4yYuKU51Y6k2AoKncldzgB4F572w8WNdeWSABT5k3JJlDb0LmHp5KNLNC3dL5hTwZ/pkH54F/8TtWrRfQy98sUSh/Ct3tLpViGDHNBQcOh2c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882942; c=relaxed/simple; bh=hH0QGrmLbuu/B4YZadFae3inm/JzWTkz0OQ7ld9Btpc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FcC9BqrR33bYtZDGFSEFV3wwNtksVYOhPTovlglicB2hm0nAsBV+PPOa6dkqyxz+Qh0BFpAGMKIP/+nQ93gj39ze95cYyubL9Az+w42MWVaKdc0Z7m3011gVB1/n2BwEihSS1hCNfEH4zyR4yWieaU7adVUpezcpNuwtnA+3Zhc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=QK0pAz4Y; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="QK0pAz4Y" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882937; bh=hH0QGrmLbuu/B4YZadFae3inm/JzWTkz0OQ7ld9Btpc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=QK0pAz4Y/XG67ZKqHMfiYucx67zmnSe3b6NViHWKMV0IYWGFaN6Pf66BfkIiVAY9T QWeAGg2+22N3+EOenvGcAc2pi9JjXmEatsax0vDhYuiWVJGFo1IUR+f/ZAlh2v/SNk vMJC1E5f6DDhCnbwXZXzpAWfXmka4nvwtjO6moIAGiyevCY7bP4+cuMzsgcMtdYHPG larqwcmijd22uhaQrueqEQqM4+RlJY2BgnWBxBLnNKNRwxFeGNn/x6fNWLcmxSainG ZHC3CQK7Vixq++oe2VL8BZVl+FkaPkAwXzGHtoM71ugFg5CYNOxlehUB0BXuGHd3DT kBcJjRqGJL5pw== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D19AF17E0C91; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 87968480026; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:52 +0200 Subject: [PATCH v6 01/23] dt-bindings: phy: rockchip-usbdp: add improved ports scheme Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-1-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2290; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=hH0QGrmLbuu/B4YZadFae3inm/JzWTkz0OQ7ld9Btpc=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDeOrh9uSgYAF1Mpbu1zTe7i9tcKPTQ9v pQFb4gZzgg6lIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA3AAoJENju1/PI O/qaC1UQAIX71Q/v64Nck9Ke2YdrZtBYfXNDsL200gdRdsBPwLzwpb9GTohNav/ZxbIH36BhoX1 IGILLFIbpP4ix/Y6UAWlq+3MqYZYAD6sayGegLuT/y1g3TpegWRhYoZjo3jRprMYBJf695W1yLp fW7PyBrsSzKBIDD3ndjYkyEDKB6zMygC+TbLtyjLsswMac1VHqPux2h1ppeFjAOMVKTRg25k0HZ Q7useb119rBwv1CcZoO9TioaTQJ+gplRc3VN8116S1UvwFg3UWLxicpsNONa5XqDaL+Vz8SunoP D5Paonqbc9UeU7mUFZgMjTzO8b/x6EqPd+/7tp7lxLagrU4c3FjUmHQbzIJgZaejmRUf+3tZhGp Z2qfSbl6PQcCzFlP8b8TydksBIetFHD5+xdH27EsjH9FhoVuYbqe/jExW+1JamRVp4jvvHVm3Hi yimRI2dpdQ8HWBak0KQn2JKEV2EohP1y9Vtj4NcK6rlXWgtiRbgeLh9Oct48zgJHsic3zdXt2hr uGlUvaGKEeaxbKuu2irjm+p7ygziqpGEDwZ77R2/tz1nSHFfH0/Z8ko1/4hGwWGIav+iNguC8/h WpPygvgocBILHluddY5mpqrhK+lYEIL/DTidk9pJNcPs+fKJ0ZkrZZU9NyT8JmfVi9PG48G8j2y 8UTeB2yN3ZFdUwjHBkOUynw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Currently the Rockchip USBDP PHY is missing a documented port scheme. Meanwhile upstream RK3588 DTS files are a bit messy and use different port schemes. The upstream USBDP PHY Linux kernel driver does not yet parse the ports at all and thus does not create any implicit ABI either. But with the current mess it is not possible to properly support USB-C DP AltMode. Thus this introduces a proper port scheme following roughly the ports design of the Qualcomm QMP USB4-USB3-DP PHY controller binding with a slight difference that there is an additional port for the USB-C SBU port as the Rockchip USB-DP PHY also contains the SBU mux. Reviewed-by: Rob Herring (Arm) Signed-off-by: Sebastian Reichel --- .../bindings/phy/phy-rockchip-usbdp.yaml | 23 ++++++++++++++++++= ++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml = b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml index 8b7059d5b182..f728acf057e4 100644 --- a/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml @@ -114,6 +114,29 @@ properties: A port node to link the PHY to a TypeC controller for the purpose of handling orientation switching. =20 + ports: + $ref: /schemas/graph.yaml#/properties/ports + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: + Output endpoint of the PHY for USB (or DP when configured into 4= lane + mode), which should point to the superspeed port of a USB connec= tor. + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the USB controller + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the DisplayPort controller + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: + Output endpoint of the PHY for DP, which should either point to = the + SBU port of a USB-C connector or a DisplayPort connector input p= ort. + required: - compatible - reg --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 890FB3AE188; Fri, 19 Jun 2026 15:28:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882941; cv=none; b=djEEPKQi1T1eOOeCkVn8t/T9SbATjaZJ78VvkDQAIWF1+7FpoCC/R+/lPM46kARgfNRNhtZ6FY6qFCn04kCv+pMOq68f62q9Hiuc/KrRrlNrGvC93Eq27YxTvmUBh9F0e51E3BskwpBQkdJe/ynBKs24b0I2WjltWpi8oSaPElw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882941; c=relaxed/simple; bh=USg1ohYmbXwetA6mCilQyNqt0XA2ZTz/AW7yPMSqQVI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AjopZ+QSUkNsDjbomUHD+8zBadcBvsfyDCkd53EGaRGrlhKRofWBdlmAyyWfNaJLH2EHl3kbrvHmPup+1WTvUlFYay5/C0YKU78pcGFL69eEyrXpWjFkv54vrZ6K3UNbu2FxKoKZoMFU9aGVW278YO0bNqrzV//yea2N93ZmxiQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=APFA5oHL; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="APFA5oHL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=USg1ohYmbXwetA6mCilQyNqt0XA2ZTz/AW7yPMSqQVI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=APFA5oHLHPKMurd24iLfm8crvvjb3PlAJPFmIa4M89JfhiDwYeAeqA19km2CcLUye BcZRHxzifvmAJrexpHUHdNWzYMxve4nBDOjZs5AxDgyCs4ecSP1JLsKzlG8nv2T9NR 3rwf9eee8+2BxKZy4TwNfKPLO66CRg/NymBc24MDaOD8QZeLqPnBsXDB/a+pYzr37p /99apPhmd9WfMhfeMm+n4vsLSgzZE1om1PuaE7/sHolzwLLGLk9X1P1HqemTnOlNsK m7N+JWPi8s9w2rYW4aMi/Nwi0ydEQID4bYXMm4wAKR0bI1hhZPcEy1FN2TzOP7XFPw 9gILTfmlcdD6g== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D2ED517E0D6A; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 88DD3480029; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:53 +0200 Subject: [PATCH v6 02/23] phy: rockchip: usbdp: Update mode_change after error handling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-2-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1789; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=USg1ohYmbXwetA6mCilQyNqt0XA2ZTz/AW7yPMSqQVI=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDcdZNFXYXYCdsSwKoVIWO/Y07Ka4a0ql MlxWYsft257U4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA3AAoJENju1/PI O/qahB8P/1xp5dCUyut8roRmyejr993KUiroWhw3aCgwLg197hQNW/aOZSHML6elpEjlYWHTGwF SpcyvgdOaWycIe2DwYf6iiF3tzzkFGovweZUuEDOGRJgo0XOQmoZPlXoB4tslxL+ilPup6PoT3T 6T8buMzKljA4IHJFdSaRzKiUY58QK9fdQAWKWLXz4eIxQ3+f4zMT5m3EDleNPRssk21eRjTvzx6 upr7BW9OKRAqmyLqH9Ljy/wHeyBoT1VAqrfFFVn6/bTd+IytZkO6ptjyXASFM8A2Dz+vjuHqhfi 7lHtzdVPzhXnfcPxA8Y2aJ4CKMclwZgg+9xKudCkJKJf3vD09w39sMiZUuGqxXskhlsuXknzYJB clnSSYT8hVSRuvD8vmB4+YfPexvbSfhKnW7N2jE1EVo3a2lQIuBp/WKKVw8vpS7m4pgedvPtX6J D0n/c27IIy/qOB/NnY9FYYGIl/WKLgPcxf2uzukO7Engkc+HVJgZnvdHEMOccQFEvRD0A8emPZQ 5ehKdr4ZXOks04vx8c1kYhrOucdx/F6l4py7EwGyanflicJav1eB/ue4u1zJsjHHYz/fYdxW3Il uVjqBCv9vkW8T+/x3wCP8YvAGYY7S0nv6JGJdRO11aJarObnpxlyEN/88hdiObDy3YXKSkx8s0E 6E/Qaa44unrF5chVHHZg7Qw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A If rk_udphy_init() or rk_udphy_setup() fails, the reinit will not be tried again. Fix this by only updating the variable after all potential errors have been handled. Note, that no errors have been seen on real hardware and failures would most likely be fatal and require at least a full reboot as the function already asserts the PHY reset lines. So this is more of a theoretical issue. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612163835.8D5471F000E9@smtp.= kernel.org/ Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index fba35510d88c..a5ffdf7a6e76 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1000,15 +1000,14 @@ static int rk_udphy_power_on(struct rk_udphy *udphy= , u8 mode) } =20 if (udphy->status =3D=3D UDPHY_MODE_NONE) { - udphy->mode_change =3D false; ret =3D rk_udphy_setup(udphy); if (ret) return ret; =20 if (udphy->mode & UDPHY_MODE_USB) rk_udphy_u3_port_disable(udphy, false); - } else if (udphy->mode_change) { udphy->mode_change =3D false; + } else if (udphy->mode_change) { udphy->status =3D UDPHY_MODE_NONE; if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); @@ -1017,6 +1016,7 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) ret =3D rk_udphy_setup(udphy); if (ret) return ret; + udphy->mode_change =3D false; } =20 udphy->status |=3D mode; --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 8FEA43B14BF; Fri, 19 Jun 2026 15:28:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882940; cv=none; b=X1Cfp6ga+JSs/u8Ofj2QtJsoA6APzMt562Xhj3THmEyoV6DKzCyQN/cjXMNhUJUnePOFP8qXa5c4K/PNu45IENG/xtqt3LbuDi0npdgAdv68XxPyvyOLxOxUB8dLabN+EVfufOx1uXQcM1KKdF1Lsljug3fa7i+OhP9t1pjZHag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882940; c=relaxed/simple; bh=ou2OeHe9NiTPGYgMcRzTUBwKmURTgL5/azZ1wBtlGvM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JR/rnLmYtM5sNcHVxVldHC3SC41t+8xRgssCyajK1jPzys/lzLfxDB2BM04MHbF5/OIPOYEKQux0YFtTTSKd+xprVFrTtqa5z6PsUwhexS8rJb6iDzYhUEmmINd7WRwIgrEPFkFPZt7Pbyedar1IxTq+Iw3uvXZOm+NMx+w7YYo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=BRr+Snkq; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="BRr+Snkq" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=ou2OeHe9NiTPGYgMcRzTUBwKmURTgL5/azZ1wBtlGvM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BRr+SnkqBGLJW6hYfwpcnMe+TB1m1n88sP1rq8CBvXdL7eS6GE4BRsTfXAKMRlyxM AUvvRV4K+Cx8uVBAlE4C724UxQeSjVQqziyAG0CttNXVjPeiabHRI9roeZro6Gw8LO mdw3WPpAaR9ddqpyb0YytZDEyKhYS2PUCHcSszAF7RYGh/GHyPPwpurCIayOjsigo+ DtQOHX+HqyPjU8oAiOtO6kQUbCKaaNqssRmt9+ZCtczIlFjZ/LJubjC8wCuD4YmQ3Y jJOHaN1aAZQIL5ta47S+NDxbrK0e8PjxqDdFFs6WlA0El8KHBqPUbtWiBebe63Q12r W3MwMbLdPLudA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D441017E0D87; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8AB2948002C; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:54 +0200 Subject: [PATCH v6 03/23] phy: rockchip: usbdp: Do not lose USB3 PHY status Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-3-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1409; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=ou2OeHe9NiTPGYgMcRzTUBwKmURTgL5/azZ1wBtlGvM=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDiHiBZOurgSyVap0Spjcv7CGTYU/ttnG qZe9rijsWqOlYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaWfIP/A344tDpCc7FAdXSiPBYeSCYXkFfnqqdPKPRK3quiT54C+podzOWLnLQQe7aDe2hDKD tuFH15CZwc/WbUCGlhEEsoO/us7Xvg/R5SzfuKhe6elRkd4HAPJ9MKj2cfxK1kVDZDxEOtg1xoH fiAKGlHujB0eQ36STNSfXwIOBH1V5i7Usn9tjBNJv8gwWLNqD3fB34kRCmvxTIfCvr2vNLlhGbD +HT2eBWBNDcfDrbSAkSbXPdl+WMOgGHgBUK5eD76H60/qsH2iW4770QgqgzkatVANQFtiO+qsch up56EJSJfcZDb3f42gE/fyXEubP5k20Nom1hGsiIP22HP/xhqGNr53L3lS+5xbZvDzHDGXj97M6 peIK7OC6L2yDa0wUMymPU+9sEcMt789A8TcrreSufWSi6GmCD+B76MI6jxrZ+BcpuTj/wFaeg1/ zQs3cibUTFJm2MKEYHVg5Q4o6YXpm9wUerLlpdUVTrIyqxJYK+6rLrry1Kc8EzlRoZIb2haX+oW moYH1fjtwn2BSxT1kW78meoQT1lyBL/rzC/PK4B4J7EduiTf+EPt0Og49qW23rlmrq4kAgOGKgM G77WB0YyqJardEqkdik3XKoIN60NwKs8TrOPauCPUKU8wMV0wLdjVyzXzTYWEqMMU336jevSeiO E0MO91tg8oOvJFlaeFpI1Xw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A By default (i.e. without manually enabling runtime PM) DWC3 requests the USB3 PHY once and keeps it enabled all the time. When DisplayPort is being requested later on, a mode change is needed. This re-initializes the PHY. During re-initialization the status variable has incorrectly been cleared, which means the tracking information for USB3 is lost. This is not an immediate problem, since the DP side keeps the PHY enabled. But once DP is toggled off, the whole PHY will be disabled. This is a problem, because the USB side still needs it powered. Fix things by not clearing the status flags. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index a5ffdf7a6e76..12dfdd470a78 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1008,7 +1008,6 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) rk_udphy_u3_port_disable(udphy, false); udphy->mode_change =3D false; } else if (udphy->mode_change) { - udphy->status =3D UDPHY_MODE_NONE; if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 AB2053B14CD; Fri, 19 Jun 2026 15:28:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882940; cv=none; b=MccWIm6QIYC6rakWg9RryZoG63pf6R8rVsHXFDaf7ab95uzPi6wuKw/HnJP/72jlG72cKQ2E9utgKwmYWWm/wrmXviaplarfJwmtz7v3iAq3vs2FQVdi/Za1ZMve4Fp1QA0LlAW2llO7uznES7FJttaF3ZnNfFA+aQw6Fl9P/qw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882940; c=relaxed/simple; bh=1p3WFYm3nPwFyjx+ldeJOnj6dqBA+X1XeNTC11p7Zk4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KqhOOzwzMKQzPjA8GvUiWBBfXRxB1HY1c/va6F8kbmnJ0DV8zYyp45xKFWS2yuMF6M7//en6pK4Yjxs/k6ehUkn8h9NfOw2pu4TJnQDNSDqQBDRh76DYdoXTtDlMdfHZBkydsNovR0uDr8QCsEejB9RxuwPm/vmtmA6YAxA2TNc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=ISJkw/2i; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="ISJkw/2i" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=1p3WFYm3nPwFyjx+ldeJOnj6dqBA+X1XeNTC11p7Zk4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ISJkw/2i8/V22cz30IYLktemiVh/lIdt+07YNmPsRT1XFtHRiQziFxfZtyIBOrZ85 mNRtrYgRGBEr1nIdFWUCuaNHDn4ShW88fjWGwW69d2SMaXE7a6npUGt5gy2hBljmKH 36JVAPipcb6LfzyeKNmWtUTYlEUKS+VpkvBKOI+gq1iuJVrXpUpvxEN3XtJLsgno37 YPVYd6cKM/fn6MTnOFECUk49m6UaF5kaIsfq0zQ++/uTiTuaeMRuleMVZeRCcX4FNo /DfxpVlIbiENLQ6cNddJAX2k8CBDSuMn1pH98P2qx4YT8dFvYxgvxRKsLDO7nWAIqg K7tcz0EB5KuIA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D5EA417E0EA6; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8C56348002F; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:55 +0200 Subject: [PATCH v6 04/23] phy: rockchip: usbdp: Fix devm_clk_bulk_get_all check Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-4-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1653; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=1p3WFYm3nPwFyjx+ldeJOnj6dqBA+X1XeNTC11p7Zk4=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDiSkvukIugyLwMSi+X/R9INJ8nFQOwFk 0HPu0jP7EkMiokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaj3YQAJYQgd4cE0FIT0/9dAfmhFulFhODHLdkQD6bSoLFvyCkuLq7jfiHU+V1W9+7OI0bvTt FCstjRgSakEyEQArlF3hJVHOGlx2puK1wkS5D1YLDRFWRIdYXtfe7b/ucu/yXU2ngG27id4ruQW FxITqsxsqZgmgtIZ3pwJYirjJVwecxKc7ODQlk2rEqcqw584gzu+raCUJ+JZFqr6YeyDeufyk+3 g0Qhzc0CQ121ZO13Obwr0IUSlOZRLQDCSKZ5/tV2+QZEGDLEOtBZm9y9ZCXnFS2KcevMmf9B1C2 yF2DPQW98lyxwWVPTkUDvpJ/pHy62GdVfGbMMtl/qimxilca6vDI87xqduVuqzGodoqoqvLUS+H 1cT8b4P1aqnoCsa0hjj4jk8nSjB+51gk8vA1Wybv2EQeOuBFJdC1SficO+tr5G75pf7MbX7Udlq sk+s71T/s74z1GCrtWshBgAZC+lHXYfpscyLsZ1FqHO7aH2SlWJEi3mz9inurlVOu79CXzFn4zn DY8Ryg7Ym9iet/7cdSbkyi2xgC27yu44nsdTWzI61PaX23dSZ+r/JMmJ047uENS8OLQZZs6AIjz bvglupTJU4hMi3Ym7WQsfEJ71UVGDXA0m+3oGFSEgQ/RvesJj5WHewN1pH4LRAjsQdhWSxMK5I7 Xi5Jfa0ZohEyS5J6XVDApfg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A If devm_clk_bulk_get_all() returns -EPROBE_DEFER, it is replaced with -ENODEV, permanently failing the driver probe instead of allowing it to defer. Avoid masking the error code to fix the issue. This effectively drops returning -ENODEV in case no clocks are being described in DT. This special case will now be handled by the follow-up check searching for "refclk" and exit with -EINVAL. None of this will be hit in practice, since the driver is only used by RK3588 and RK3576 - on these platforms the DT is validated to contain the clocks and the clock driver is force probed early. Thus there is no need to backport this. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612164107.C7DB21F000E9@smtp.= kernel.org/ Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 12dfdd470a78..2845a012eafc 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -427,8 +427,8 @@ static int rk_udphy_clk_init(struct rk_udphy *udphy, st= ruct device *dev) int i; =20 udphy->num_clks =3D devm_clk_bulk_get_all(dev, &udphy->clks); - if (udphy->num_clks < 1) - return -ENODEV; + if (udphy->num_clks < 0) + return udphy->num_clks; =20 /* used for configure phy reference clock frequency */ for (i =3D 0; i < udphy->num_clks; i++) { --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 79DDB3B3BE9; Fri, 19 Jun 2026 15:29:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; cv=none; b=PKJqUm6QUyXGeooVIMfKRPT2AQKofhSy3YiROBn4txWFFSFOGCt1U3SnyM+6KQdhq371KZrp7jssBPduv0GyhxfXvKarTcYalQCpELqLgvwh7h580jMNimuSuQvEAiPzr4UG0EZ2NdKwrcB4kSq8V5pyjbK9cYdCmIfdkkWHwu4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; c=relaxed/simple; bh=XkxBhE43AoDT+fXnxn/rXtDSUP/GoHMA5Ex/HvjwnJ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XrKTka7PsDdQI+7uuyWtlnU1JH/wv/oW9l5NMWLUxzN5ovkX+Z+IL3G7LyzCVrn733QDTCDcfEd3I9iNUT/XIaK9bM3p6wmaRwxsV4Io50llq8i27pBxgDn3WzZPMWUZls/fz/d3YkTLgF7w0f60ihb48p4LbkdoHxUOunBcsxM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=AfMMRlGS; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="AfMMRlGS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=XkxBhE43AoDT+fXnxn/rXtDSUP/GoHMA5Ex/HvjwnJ8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=AfMMRlGSNdPV/PeVSYhKD8/iGzI4LGyiKOuYszC3ZTjUOq+yWPqJIQGCbjOAsb+Hn 9MBcob5vWQ7dVXxr8TxuE9qvoX9rvF/6nF40mX79evnPkb3g6xbdy0XfC8bpJOoCyh cL/vXycUbga9No4aDFz5oDWtDMOKXRQEIGJYFarZ+Lb8JuQlqnupZfYUegcuArpAVR emLKYLsfwc519qeGxHB6x5243M75csMDLYUwsZmXJ3EtLwbtK9our4pUZW6axXGCgJ ugY5v1xUClRvop5GwODKpQRKvQtfD3qUFJYzciNmTEqrZv+xuU1rmz604uvBX64ctG RqNymCGWKXnMg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 2C19B17E0FD2; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8E302480030; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:56 +0200 Subject: [PATCH v6 05/23] phy: rockchip: usbdp: Drop seamless DP takeover Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-5-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1337; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=XkxBhE43AoDT+fXnxn/rXtDSUP/GoHMA5Ex/HvjwnJ8=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDh5QMMrs8NVH3Cu3tUynm1d3Luc7y/mN yDqqvwqRpM9kYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaRwcP/RC3+Y3fjWe6dlHutSVFb5nsEaDLKld9vvDY+Ls6zVDfekYZMq9F80XhNTBKdUDm09l /Nl+fx6OWJv0xJGnKBmYSVAkm9/JHrd1/Q+0oqrmF2pgK5jYVe2yxGu405xWH8zjbpsqm73/1HL Z884go7gMO09NY2xNTbl8MiyNBHJEGL447llVacIkOWKdtXowsWbQa+ihULgV8MvdVDxhTVESmn z3ottZeU/NoN/5VfPtO/AYJgvhewsEwxC7KLzAEomEGizapL2z1gupB6WPpa7HWPm06xLFHnf87 Z1Zg3uVFXgr8LMaAeTBDLNJivukAb84zp+PTqvHMCgM6t8UHw/d4l/Dtboa+RQryWCEfc7vPLJx pdZZC+rj5HRE975XdhRYgtak3bzM0bUhJKCtfDZsQia2rcNNiSPQgPe0KWMaGrr9s3C3qO1DXhI RdDeHt/aBhtq+pcC1Ce2NTgCVj5VzLFKm+zjIuqJYNDAsxzQBDOqRhFj9jyG5rZ9JCJAF7/xfd1 2XqhE8CjyAVNuBZgD6mjprq3j/WWJ6U7/IAcP+m3BVs1zIoJrI9PuSfA9cMcNNhF7C/JbvpAH9Z jp7t951g1eIAhgFzuIW7ahpmgIuqsynruE6yBsJgaDeCpsmoYWHnvlpi9/xBkQQjM5jhKOBOk57 xY0kzTu0mOQh/XN+c9ZkooQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A If the bootloader already enabled DP, keeping it enabled here means the DRM stack can do a seamless takeover. Right now the DRM does not support this and the code will leak clock resources on module removal, so just drop this feature. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612164107.C7DB21F000E9@smtp.= kernel.org/ Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 2845a012eafc..ffe39c968c70 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -936,9 +936,9 @@ static int rk_udphy_get_initial_status(struct rk_udphy = *udphy) =20 regmap_read(udphy->pma_regmap, CMN_LANE_MUX_AND_EN_OFFSET, &value); if (FIELD_GET(CMN_DP_LANE_MUX_ALL, value) && FIELD_GET(CMN_DP_LANE_EN_ALL= , value)) - udphy->status =3D UDPHY_MODE_DP; - else - rk_udphy_disable(udphy); + dev_dbg(udphy->dev, "Started with DP PHY pre-enabled; seamless takeover = unsupported\n"); + + rk_udphy_disable(udphy); =20 return 0; } --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 7A0073B3BF2; Fri, 19 Jun 2026 15:29:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; cv=none; b=fWQKkHdlgPIWfQeySCU79fyIG+CrsaFlgmrAJKr/Ujf3oSzCTaqF6BkbhUX3zEN9upxMpZpo1O+ZT0eIg3Tu57HMJclySiGtVwF6KhXDvuXMfMfk8HzO4FVVRKKQzaMTTR+14qILKFUMuX14xl+NwNZyvDjVCILkHcjs/htpOCY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; c=relaxed/simple; bh=CT7u7E77U7zQr5kR3FDQAqLkvmw2hnmp6IofvsnGVfE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F/DKE6uB1R3WCmptGACY7pBIA9r/f1LMVtdNrf7UhlhndeoIxk0yWmT2zMzhx1C1elcCA3y/KVP4CGn+fOVT+IlSjB7YQtWJ5TEcYLIr/spRfmZyyV6KdIurb0/QsODapNPlGfTmcGKCP1FhDwvSPJB3nIxWsG5iGZAKc5IQ3Hg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=ovSqgWUA; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="ovSqgWUA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=CT7u7E77U7zQr5kR3FDQAqLkvmw2hnmp6IofvsnGVfE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ovSqgWUAmqufq0Ithx1kJogO2JTHWlrBZwgaymkZwIx2f0NKbRktMiJ/9S31ShQ4j TuJHzgZ/rQVfKiY/E+TmNZmE/70zviksO2S1TAMLY7o3SQQb3W640iq5zAt+/xXSFv +9FsNUkKrBx6jOwY8U5y0lGJMHVoZuiKABKIuwdRJLFH4mNEniHuT7dJUoLBidtVbW +EtxkxfOUWGOUmEEW3nrbUSyimRUpDieAYzZDZ8BfZzANLGXAk1UF28NGkpDrXoHne 66Fy2di8FzdtQIdGcfh+hbm3SrmXu3agMUR9g+39W4aebQmzy4l3+EJuedSuRxIMVj J+n7Nw4Mq5T0A== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 2F18917E1024; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8FEA5480031; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:57 +0200 Subject: [PATCH v6 06/23] phy: rockchip: usbdp: Limit DP lane count to muxed lanes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-6-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1284; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=CT7u7E77U7zQr5kR3FDQAqLkvmw2hnmp6IofvsnGVfE=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDgY6JgXUN4hevis9mLAzA6i9pfOugLV4 GbCGYjlmcnkb4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qazOoP+gPIDglRhRA9dbFA9WFquwF0e2esJ2neU5Q3g3XeMYfvTqmpVOQPYCZZMfB3L2SvrR/ 9OmJct4u2toKHmQpe0uAlohKsuNKtsxt8BX7NTLOkrW+pCci4fxSlZ+uWhujMMcohf9WJbM4LsX kEsTGwue3tvgtBbMGN4K1774ML7f4PFiLkGpSCQCk13vAUZrs14xZkhSKK2LCdE5JAba1GoRjWE HyrqNqFoFCb8wpWcbYtkFZYX8ZgAaawHWNmlNZ6r6Cd5IF3/nXSFJ8AndQKUvaFxWoZKD3j7dyL Gv+v6koDwSls1S71t3T6v9DKX4RBZMWL+Sg2WpcySL8rAfTAHb7zmLUURExKIECEzAxGXqlruWO XadkQuavG9jQplj+XhfeWcdKQQkCdxnbzS2BevT0gTOCaIvvIsX8w8MlnGmbQJAVDi/GbpaM/7Q FcRhLjlPffHjVLuJ3UmP76v1m/dwQbmMqWuaz7oAEivKVeWxJycB5hgxz+MAuvmnjInqopDNAG0 knFDcSQ2k1GuboE805tSdfruYLJCOY07XLKzQ/DqF+SPVCxHfwVY/WxlhAVYKfJ/SgceiuPD7vM C4b5NrCHvZY+R86PAZIFi0EGgf7Ln62AVR1SlZ9iloZwMCykuEwQcXAJ13sHegQVd1g94A7R0+B QSzUJSywuMx1o8R36WqMtMA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A In theory the DP controller could request 4 lanes when the PHY is restricted to 2 lanes as the other half is used by USB3. With the current user (DW-DP) this cannot happen, but as the check is cheap and users might change in the future protect things accordingly. Not doing so would corrupt USB3 usage by the following code configuring the voltages. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612165546.98E1F1F000E9@smtp.= kernel.org/ Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index ffe39c968c70..6dff4dfc9363 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1126,6 +1126,9 @@ static int rk_udphy_dp_phy_verify_link_rate(struct rk= _udphy *udphy, static int rk_udphy_dp_phy_verify_lanes(struct rk_udphy *udphy, struct phy_configure_opts_dp *dp) { + if (dp->lanes > udphy->dp_lanes) + return -EINVAL; + switch (dp->lanes) { case 1: case 2: --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 7A0AA3B3BF7; Fri, 19 Jun 2026 15:29:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; cv=none; b=SvBFjbOGes5hyvk9/PrWsMuvWQgCUNupvMXc9Y7Cj0d66ECKKYNz01wvcrADOa0j+bjVhuFlAuQc5QZ9uF4P8D1BZFrhZWjzdqF11tgliD4CG6Q6pHuVtMlv0D5k2km9GuCd9RAQiFDiMsxcFNU1CjrQVFsEswmE5K7sFkViFAs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; c=relaxed/simple; bh=f7KPjiSOnjCxa9RoMx7kPG+FkV/tgCDYiLWluj8oSYg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UDSQmsGoXgmD+DpkCkgozzi/5MibpPHVluOuOFeEkcDbgTmzqciVC/n0/rjoytyVN2/hlnC2J3Eot27MuzMQCR7j0f40QfrNgTTwaAay5kg3btARK3wSB1a6pc8rrBhHmRzFOHOApx/RoGf7KUBd1PZSNiObECTIO4wIWoMEzMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=ome+Hcxh; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="ome+Hcxh" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=f7KPjiSOnjCxa9RoMx7kPG+FkV/tgCDYiLWluj8oSYg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ome+HcxhFaoTtPDT1PQk3AVR+RV2tLf9dnPu6iyI5lpnQQB2JitGmiGIte58TD3Zk gzjyUDNhuRlQ/RurMa4OWYw4hu9griwb0EhG6tefdt7hnsBbJRtt+Ui606SvGt4tT6 P/h2P+6SQ9dWRph32L8mlc/9JyhGH0z8EjwzxckFmoYcoMW607Q+aH04J5iSEfWo35 XmPoH9+ZScQI4p6QqWf1gJaREsBtk/ebwWPBNzCBOwGmu9voSZ3pst6RK89SO0zsuW 5gVpUdR6d7tAGLihdzf5QNEJBYcIInIiiWQsZ6eS9CPNeNPFUr3H/GU7HrCRzsDe4z wj1Ck/Idbgbkw== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 36EAD17E120F; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9164F480035; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:58 +0200 Subject: [PATCH v6 07/23] phy: rockchip: usbdp: Keep clocks running on PHY re-init Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-7-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1163; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=f7KPjiSOnjCxa9RoMx7kPG+FkV/tgCDYiLWluj8oSYg=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDj4vFWawwKth1Jmo6InIOSwilacNlLO7 KZrp4dQCdNc/4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qay3cQAI76iMJRvIjFIBwjVoEOnisEDXuEjFJpO95CwrcbJ1HFwdgAE5p1DiYT+0een3uCXKm Evkl2CuBYL4FQc9a5mOmZR3on+sDZuODl9ybPsu9OPdDWqJWKS0vOLxjNQvxFRYvTxVNzGXCd5M wL7l23crLE+kTHnITbNAqNuIQJFqj4dVCz4ukKmRRTiMrQsMOxC7lS8KTU+WAXFnxS76HO0Xhln hPaJDWNAAzz9ZY034bRp5rhPnMzyDul48+mZiq1A1hBd7exy73OH9tvFQAK6F6Hqrpzhsc0/CWt T13ejOZ+KWVn073fS+rxUNWv1EXnmTCwaHG1sTpMsK0+ySYm6gIiZIUd9iqA7jIE/QW1+WzbA0J nzjIVO66gtYPihkWf74lUj3brVsrYMMso1JK2oStxDuy2j4+1fWiduGAb+6gZa6hDwMDIY3lz1d cEZSl/5gCtynDK7BehufqdT1+xUnffnCmDa/pAreMw65U8DqtliIYa4xYGZsFJ0r5tHaipuKCop A3SuRbpr3m8gY412mYzUyi/TSwgSaRSYZJfQA7xPfZ/Daz+vilAV9YqDNwZGJP6OoZLnOszYZfz VsGpSjCxoa+fF4sD8T3JtrEWtzGF5uQWTmkxu7i7gtrWzeuedAzrpIejA2+nTdq19yygexIZh1J LAqoynJkTdexkR6q0L4A1LQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A When a mode change is required rk_udphy_power_on() disables the clocks and then calls rk_udphy_setup(), which then enables all the clocks again before continuing with rk_udphy_init(). Considering that rk_udphy_init() does assert the reset lines, re-enabling the clocks is just delaying things. Avoid it by directly calling rk_udphy_init(). Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 6dff4dfc9363..c05ee65a9f73 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1011,8 +1011,7 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 - rk_udphy_disable(udphy); - ret =3D rk_udphy_setup(udphy); + ret =3D rk_udphy_init(udphy); if (ret) return ret; udphy->mode_change =3D false; --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 79F0E3B3BF0; Fri, 19 Jun 2026 15:29:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; cv=none; b=nlLsPpvyQr9E7uSAXMgGVSOrt8k5QrI6gbT2WULLACVgCSmI/Z1Io2kbh8me9n+LyK75AKI5JN2WlMn1ktOdPN76TO18H5YBkFHfMsnMQs3/2rFVGawY/lotG5pn5mDqQcAUzbVKhkJMoXQ2fCksvQoy2xo5oGuTFsCV6/szx6g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882944; c=relaxed/simple; bh=cpvq43WRrUvRj02SetrExdbPsYDBWgO/ul7fvY292vs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BuBTjyfRjOI8SXunaRiFib99GN2DZbz4a/JRyPLCODGS2M1wfAGMPVXdD1LQr5I4sZvPRzUVVM7j8jGe5MMZ4rSyhDYjtbr+gSokNkEJ5F3uX9lDkarzeobZsA0anuXpu74WJ+4k5zXxThdVj57HnLQ0Ax0qV3Qqe2qaDcb9lW4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=FYXcPLbF; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="FYXcPLbF" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=cpvq43WRrUvRj02SetrExdbPsYDBWgO/ul7fvY292vs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=FYXcPLbF481CnTg31VM+szyWM1uTJyP8JYhGfhqBZsbCQwD/v84XjUv2jzSvueGzb srXx0H1Qt75d+vXkeAL9kj+PtpP9XGNY1ewH47mJxXYwBa91h/ImRMlrWcZWKTVtey /FdDDrzoGIa02Nli6XzjapYuN+DD9n/8OSeZfzCmF1THAz2bOXOOaN/9U01kNAVlyE HyAPZzOi1lYhYAlH3rTyqBqRwXMmUQPEnoeLDH4AVM3918KmqOuXPnAwtoWjdu2zei glLji3HxJsRS8Xq5bPtULGTGrHpf2b32Qn6cWimBpmgkyzSKvW9L/Sx3B2gvDFItJb Jw2L0nnCdGXzA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 3BBE917E1270; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 930FB480038; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:28:59 +0200 Subject: [PATCH v6 08/23] phy: rockchip: usbdp: Amend SSC modulation deviation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-8-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1765; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=LCrcJKsu7JmY/ja6BaMtSNvqcASCulXZamqfYDJZGNc=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDgcc9ln6ZxZahY3gWApTUHyXhflppCaI GskblCNLykLy4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaIhIP/3reH7DB3VW7erXppLH+b/3V4K7nSiG+1+t2enw/TrkFsduMQYeoN5waTzTcw/3ALMn l0eeTyQI2ccEfy21+c7PC5fa5w0YAN+AdxFAWI46snNEgs/3YmU5kRAwW/H4A8oTsxdartQTD60 AdpcLhda5YCFi8sTtulPMrZ0QKlfPeMXZcmqDrIXH5u5TdCZLlj6qBmCuxkqk+eEQQAUflVu4ea J/1z74aPTEFMRsegP/DtXTfIayni8b40zhTqtyr0lLJmXw1tGL/SkYXuaxUWmYmko9sYnoXD4A1 Ezp8Hkv4pqfky/VdNjNEjEK7vvEHUPvJj7AC2nNDpyq5OWCWezsOquFzE4VE9s159cuWpue9tk+ 4VUovMGI72gwx/2rWNb9X4LCXyyANYYn4uJUp0uL/uPEQNk3Ux22e5fjl0X6zDYMmeENcy4AQJL 1HklAiuHW8XEL+KmhoIO3WjcWfrKSQZam5OzeB3FV+6yCKoKcDPhFnAyqVRsfQwhBpDIh9qBuw3 1EtABjeXMXqek5t3rF2Pz3sX9dMplJnJ9A6UmEQE01UBEQ9ApPEIHn6Kt9MkhT6WaT4q8elwhWk FehD60alcY/TSbvklBIMiKoa0jWSxFH+FMnA2YVKNlIfFCnp6n933wp6ThmYsmkPBe8irx4/Xxf CH8eOGLFKl7+jAb77Rxouew== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Frank Wang Move SSC modulation deviation into private config of clock - 24M: 0x00d4[5:0] =3D 0x30 - 26M: 0x00d4[5:0] =3D 0x33 Signed-off-by: Frank Wang [Taken over from rockchip's kernel tree; register 0x00d4 is not described in the TRM] Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index c05ee65a9f73..a44babac3517 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -350,7 +350,8 @@ static const struct reg_sequence rk_udphy_24m_refclk_cf= g[] =3D { {0x0a64, 0xa8}, {0x1a3c, 0xd0}, {0x1a44, 0xd0}, {0x1a48, 0x01}, {0x1a4c, 0x0d}, {0x1a54, 0xe0}, - {0x1a5c, 0xe0}, {0x1a64, 0xa8} + {0x1a5c, 0xe0}, {0x1a64, 0xa8}, + {0x00d4, 0x30} }; =20 static const struct reg_sequence rk_udphy_26m_refclk_cfg[] =3D { @@ -377,7 +378,7 @@ static const struct reg_sequence rk_udphy_26m_refclk_cf= g[] =3D { {0x0c30, 0x0e}, {0x0c48, 0x06}, {0x1c30, 0x0e}, {0x1c48, 0x06}, {0x028c, 0x18}, {0x0af0, 0x00}, - {0x1af0, 0x00} + {0x1af0, 0x00}, {0x00d4, 0x33} }; =20 static const struct reg_sequence rk_udphy_init_sequence[] =3D { @@ -412,8 +413,7 @@ static const struct reg_sequence rk_udphy_init_sequence= [] =3D { {0x0070, 0x7d}, {0x0074, 0x68}, {0x0af4, 0x1a}, {0x1af4, 0x1a}, {0x0440, 0x3f}, {0x10d4, 0x08}, - {0x20d4, 0x08}, {0x00d4, 0x30}, - {0x0024, 0x6e}, + {0x20d4, 0x08}, {0x0024, 0x6e} }; =20 static inline int rk_udphy_grfreg_write(struct regmap *base, --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 5CD3D3B38AA; Fri, 19 Jun 2026 15:29:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; cv=none; b=FE2VCvioCSq9Y2kh6vmaWM0uAtwPkbH2Syto5djBrxxhGrHxuJMfRR/XX6X88td3z+3mYcPqdMDSC8VB/F9oknz4RX8htHMrUc11E0dxA7HqQwW+/lQFsaYsPTyjcd6OWPzxLIFJ8ariIRumEdaKL1Ns4pS/wSE7C4qSdPaiZ8U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; c=relaxed/simple; bh=gXGJIR/hmYUEejkg/YXqOvfEwIx8WrXL3cr+XlmGmvg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CxzGZUYbht9Su8hhua9h6PN5EPHuYSU/Thjrm1PVPKIjrwaumIA+q0kXgttejbf7vqJ90Yt4ITgZFeP8VmB1yKATU6rfCesnjPvnEcDHXuv3niDkE5jsr95nakmUdMoIKPsE2Dx9zN5HVJhBRA5GppUvYWMP9qHwxDE94ua5m4k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Pqq6bYwB; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Pqq6bYwB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=gXGJIR/hmYUEejkg/YXqOvfEwIx8WrXL3cr+XlmGmvg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Pqq6bYwBUQk0ezelaeevCIwlnKF/U4g7TH7CJPmXNNRMiuXAU4TbfmWcW9Ub+8nWH hJx+8Hx4mL3FnhF7yLY/uFissRKYM2n/DQGGeVDmI6uTY2KeQoahAyeDe7bXNAr9aB dMJPLXtcZJDOvZtEQlmKtvToU2QNiP9VeAbSbr7rVaT8V2ySi4WG5hqrDFakEQ3vpC JZ7QIOGmWMMRH+y63XXmZD0rsu6xqPGoR0kQYTUTY4lz42jNXdlbgiCCrCCnOQBKbB 8FJB14geXKEC+7j/HLPkA/jB5LtozNeWWoy9Nq/7ay33lNF/8wSTknq0h0SYccSBa7 o9aHOPieIyx2A== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 42C9217E140E; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9476648003A; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:00 +0200 Subject: [PATCH v6 09/23] phy: rockchip: usbdp: Fix LFPS detect threshold control Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-9-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , William Wu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1521; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=GFdUGpYmGDDQ9cGl9w7ZUJpxRNfqmVqO/MAupoRmLlQ=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDjzHd5Ldq1LRJkV60chyxZljGtaMmC0w VooZWQjj2MBkYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaSmcP/04WRRlb+XpqTe+EmFOylARJJG0CYb9LnA0KUHtTd0tzTUNnzLRgR3znfVu+vGOZh61 yZgT/yLmTqboowZVhvyI78a7TVKRShAqRR2/lDn8+3R9tsZZv5OHF5EmV1chdFNouhUDawc6sx7 SkJ4/tpI5Zsr8FUcGhpum3RpBt8GLSGLgN7uti2nS49F/lgzVsXXGuuou2Tj0x/ykIro3DwEU2K 8YMMme03XTGcrP8OpcGun1OG8BPFWO3iQV4vWt5FAK/8p5q83u4fjmBXXN01QqFH50PysmNDOza +9umUy5jjhigcPOUWBvLtdXaHbh+Hil5hj70155rx/L/fhkopP2EC3J5Z9kSysezk7b00wpCv+a Y2ripcrhridNT/hxu/XO2E4jYSF6LHNLNfoUIUAbAVyaRvaYZjSRk8EvNUgyM0JN5cbCiBTpUKK /LimC4bETqW0fNvQ0xxkmPI/4V5rSU27pIwbEH/T+TtA1TjvliTRvAPNAVoxdmgpHw7K7RnKut/ D7M+5bj9NPRya3AWyy3ughR6DInUKmXmtxlYYi96+662HcqhD9bBuD24VMSUdJ02/oXbJme9BUg 1Ref9FU7bJpCKwRX1aJh2RqfIY9xGAi/fbO0JVYV+hdM5opU94L105Hh906OF32X526tZj5S5+x FaK3ZjcJvR2XDqlDO+2812g== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: William Wu According to the LFPS Tx Low Power/LFPS Rx Detect Threshold [1], the device under test(DUT) must not respond if LFPS below the minimum LFPS Rx Detect Threshold 100mV. Test fail on Rockchip platforms, because the default LFPS detect threshold is set to 65mV. The USBDP PHY LFPS detect threshold voltage could be set to 30mV ~ 140mV, and since there could be 10-20% PVT variation, we set LFPS detect threshold voltage to 110mV. [1] https://compliance.usb.org/resources/LFPS_Rx_Tx_Low_Power_Compliance_Up= date_Rev5.pdf Signed-off-by: William Wu [Taken over from rockchip's kernel tree; the registers are not described in the TRM] Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index a44babac3517..7ed539d8c791 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -413,7 +413,8 @@ static const struct reg_sequence rk_udphy_init_sequence= [] =3D { {0x0070, 0x7d}, {0x0074, 0x68}, {0x0af4, 0x1a}, {0x1af4, 0x1a}, {0x0440, 0x3f}, {0x10d4, 0x08}, - {0x20d4, 0x08}, {0x0024, 0x6e} + {0x20d4, 0x08}, {0x0024, 0x6e}, + {0x09c0, 0x0a}, {0x19c0, 0x0a} }; =20 static inline int rk_udphy_grfreg_write(struct regmap *base, --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 7A1D23B3C08; Fri, 19 Jun 2026 15:29:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; cv=none; b=q1KTGad4VvjD4bka3HWuvUn1TFS5yg0IIxAN5jnODDYHSWpQTf0ZKsqOV9m1TdMlK661ySNNdSN0ZVEB7OjjLM3fAIaX8spAikkZuDzTfQrcKkmgeI5xOc5St6+cdFNTuurrYwkOBk/+IEYhDHnznZyERh4XQ6TB8//cjcuqZts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; c=relaxed/simple; bh=8fwJQNAWVdvQQ5leZl2N4n7wGKmaRAjfyHU/ZtF14xw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T2l6pW8apaapJNP8zaLhe0s7ox2Jsfr+g2bmzBvp+YQqX3HAPdi7Hz/4HYjNX0yLcy8fJI0t9mG68d8goCdS/om7Nv8tushrMGN+pgRJHxgt291zM1VYL7B20IDXAE4W2oNtk3bRDL12MEvZ5y05mhHBL7ilhMR+cgn1eJy73+M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=B5zqK5FM; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="B5zqK5FM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=8fwJQNAWVdvQQ5leZl2N4n7wGKmaRAjfyHU/ZtF14xw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=B5zqK5FM1ghrXXfgzKqngW/lAZVtDMHXFDTCNzj/M+nPexDnU9i1igIOghx5hwQTZ wkh74HdIJ1dZXaHNNI1AVNfgg6a0H5tCYBPSUPrUMvyWkR8j90uVG1t2VWV8hANapr ygvfC4wvP7wa+F+XhI8wiu669Sef8m+e5fT8hVew+3IbN/MeaX5fQTEI2gLueEwfki /i+w/xF0s3m4SdvxBY/bz0VUwkc5ob3DjVf1fyG9NqZauki/O+agBvdnkGqb2PMjAn 0nDJt84MnpzVWlz+Em/FsqiuY27ad+1n/nqwRY3jvfAsZibLuv0g8G6s1oJoaB99pd g1tfRIVKmsD9g== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 4A18617E1531; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 95F8848003D; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:01 +0200 Subject: [PATCH v6 10/23] phy: rockchip: usbdp: Add missing mode_change update Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-10-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2006; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=8fwJQNAWVdvQQ5leZl2N4n7wGKmaRAjfyHU/ZtF14xw=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDjkHf+p27fxWhrBQvBa0cCWXiR1Bfip9 ZYVvSlxSoePtYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaWjkQAJdHeTiDokwNUEFCbirLcWa2uk3W20hskVyyecYyanibdHtXbSvcIuCcdZNV1OkqOQ7 pfmpbWcZTD3T9lCyJcjd8i0oJV0RW3OppprheMpxJkFqaeA8Gqfpc8R4VYJpbSW8Lzf+2/Pd3Bt JVwFJ4zTNfWW/382KtLppuYmxjXu5sCTDVz8UBwadjw2sO0CpC2dzYMaWtauGz6mfJn1vV3fArz ZuzsKPR8k3+L+tkCnE6K8wmojsQRADjEwlIHxNYT89hGeS3GM0wmf5vw84QciYh8ARwzK4kOsNr 3DeF5S6G1RQi8UON+1VfNE1NkXMVRpvs2JoM5xrKtOCUTvGepHcny+keU4ZXFWOck39hWwW+ap3 ld1DVo6hIqT9Qt5yI/rmOI1DNrAcayJjWfRwLgE94wKdijkwgBcvNWjavcY0UZ3k3nHglZ+sQo3 tjdo8sG2/DamoBuxKszY7CR0VW+tl7cMSWieRvl+NGeIemxDtjquNKwlI2XnFqNJxo70L9bAscM w5LD74DAisFDPjAxnJh1vjeQGTTCFV+C9CvLttrVceXC9c8R6z+FXPtAhzMGOL7BDucPIQUscjq WiA7q9DW8fb/E+ciAu6wBJcgWNkSab9a9foDFLo4euOejYZF/Ptr7QFiFgbA8315tEZ1E4UtMD+ 8nzdshDS2QqvlNfx0u5YnNg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A rk_udphy_set_typec_default_mapping() updates the available modes, but does not set the mode_change as required. This results in missing re-initialization and thus non-working DisplayPort. Fix this issue by introducing a new helper to update the available modes. Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 7ed539d8c791..2ff05ef6eeac 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -619,6 +619,15 @@ static void rk_udphy_dp_hpd_event_trigger(struct rk_ud= phy *udphy, bool hpd) rk_udphy_grfreg_write(udphy->vogrf, &cfg->vogrfcfg[udphy->id].hpd_trigger= , hpd); } =20 +static void rk_udphy_mode_set(struct rk_udphy *udphy, u8 mode) +{ + if (udphy->mode =3D=3D mode) + return; + + udphy->mode_change =3D true; + udphy->mode =3D mode; +} + static void rk_udphy_set_typec_default_mapping(struct rk_udphy *udphy) { if (udphy->flip) { @@ -649,7 +658,7 @@ static void rk_udphy_set_typec_default_mapping(struct r= k_udphy *udphy) gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 1); } =20 - udphy->mode =3D UDPHY_MODE_DP_USB; + rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB); } =20 static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw, @@ -1388,10 +1397,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, usleep_range(750, 800); rk_udphy_dp_hpd_event_trigger(udphy, true); } else if (data->status & DP_STATUS_HPD_STATE) { - if (udphy->mode !=3D mode) { - udphy->mode =3D mode; - udphy->mode_change =3D true; - } + rk_udphy_mode_set(udphy, mode); rk_udphy_dp_hpd_event_trigger(udphy, true); } else { rk_udphy_dp_hpd_event_trigger(udphy, false); --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 5F3C63B42CD; Fri, 19 Jun 2026 15:29:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; cv=none; b=sxOOq8GXYiOwI0FNS0IoI04Z5UmNaucHdwAe3bdrKA4QKhpGqIfluE19eDBJFjckcdS+xXKKjrZ+BwnlMezgk8nd5Q9ZngCmzaLt5NJxV0oiEB3Kgc3cVOxRXA5EA74zCaM9fg19600AuSsDo/7VGu2SP3nS+e18U/UJMbxWHvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; c=relaxed/simple; bh=w38Zr5LnA2vDI3oK5mf+KCvDs5ubmqCK3hxZY6pulE4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T7ftqJaN5zqOBi2M4VgUmPX5oKWr+Ue4loN7KYCS5XWTPdJ4A6kyHc7ljSgS40lVgDtCMpOHzVlcROSV09wcjYpg8NOcsbwAWm6xU4XBB+D1quGxYzuKQZXYp7Iu2n84c8XBbwQ3xPRFBn2nw6DR8d2xqZyhS6vNa9L/RxyY3t4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=h4c5wjqM; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="h4c5wjqM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=w38Zr5LnA2vDI3oK5mf+KCvDs5ubmqCK3hxZY6pulE4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=h4c5wjqMJh1flT5tTfWTsd2ggkEe1B3TEKkG1FK8TQlpWUQUe95lgy896PTRHYuTx pzR7i6WHSg43jIKYVqmSrhP6+Bus0A0Lutpzhl2jwfJRNeyOZYVohw9SpdcPu5U41D BqJhet5Zj8y5C/rc5RxPt6U/K9KmUZOIPNtudQMyWPplYO2Jd35oo4o4hWX/DttXb2 6FrLT+eu9MeUpHoOqyDZg3UyQ2cR7g9khyngUpDFDWLc69pTZdY4lmRJMmw8FXVUH5 NEtxDSAxQBGsXIFPuSWU4evzinI8LUxt75o/xas3zPeNfzfAUNjlensa6WjSTQ1yFV OYKJeTY44I8CQ== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 4FD9917E155B; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9780D480047; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:02 +0200 Subject: [PATCH v6 11/23] phy: rockchip: usbdp: Support single-lane DP Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-11-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5347; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=A0v6tver/IPirKeqfCvcdC9OAMwM8iKqAu8OE55drho=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDg1jtV6vWD6qn75t2uH/UzFC0hasbkqc /UIW10fFcy1zIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaiXcP/Rq2Dvm6ZGGnLi7OhPpU6YKbRdZ9PoXyRRAf6aYziUaTDh1kNHd8jlzgaF3BFxtfimB xRbAGQvofJPUlOvzbEc95y3jKtNNB0Z05a7vt0Pw9nMXqjonmPm8x/sAN2BAjZqxZBIYXAK2T+m swGMpvOi85m9E4Yw2Yll7fYYBliCO5K376VAONTLmECuEq/H695c6exORa8tt+X7OzKby5WodMY 0gU4QTAIVy3PHE9IS3+oOzkwHhuv8lHk3tV8EROx29xigk4qFZ1amEV7jt883WfdNoMSsXBczuC P21P0IqZsX0vyGghmnBvLCZeddgXfXTmzXOEnI5+N1WKrXrkIE7IGL8crL6MmY+5Pv+qO29qzNM lg1xR122VQveYvWRplAePlGCcgeCrErURFq3gx1gsisv6QEQA6bMQBIkK5SRoeblSds+vBDdnCz bOwR22za6xv4JU7oR44qQCDv4dGhOfGspehJs6Dj5pZ6crApLDwfbZVE0i+k2UG1bNOv7aHn38t y3Bg4g6NL6BbHB4v8U78GoUGHozVIO068t3O91y1WmbOCZH45MxE0AIjjWdi/0IiyDR+w82k+Y5 woZ+Ok8AcnO2v0OOrWm7Cqp/ecSt0gG0esBoL2XAKRMuMV3sLpdvRSuGJIk4SDrstn7W7o4TH1k pkg0h9K7GYsMaU5fmg7Qm1g== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Zhang Yubing Implement support for using just a single DisplayPort line. Signed-off-by: Zhang Yubing Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 64 +++++++++++++--------------= ---- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 2ff05ef6eeac..a87cb5c0596e 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -193,6 +193,7 @@ struct rk_udphy { int id; =20 bool dp_in_use; + int dp_lanes; =20 /* PHY const config */ const struct rk_udphy_cfg *cfgs; @@ -537,6 +538,13 @@ static void rk_udphy_usb_bvalid_enable(struct rk_udphy= *udphy, u8 enable) * <0 1> dpln0 dpln1 usbrx usbtx * <2 3> usbrx usbtx dpln0 dpln1 * -----------------------------------------------------------------------= ---- + * if 1 lane for dp function, 2 lane for usb function, define rockchip,dp-= lane-mux =3D ; + * sample as follow: + * -----------------------------------------------------------------------= ---- + * B11-B10 A2-A3 A11-A10 B2-B3 + * rockchip,dp-lane-mux ln0(tx/rx) ln1(tx) ln2(tx/rx) ln3(tx) + * <0> dpln0 \ usbrx usbtx + * -----------------------------------------------------------------------= ---- */ =20 static void rk_udphy_dplane_select(struct rk_udphy *udphy) @@ -544,18 +552,18 @@ static void rk_udphy_dplane_select(struct rk_udphy *u= dphy) const struct rk_udphy_cfg *cfg =3D udphy->cfgs; u32 value =3D 0; =20 - switch (udphy->mode) { - case UDPHY_MODE_DP: - value |=3D 2 << udphy->dp_lane_sel[2] * 2; + switch (udphy->dp_lanes) { + case 4: value |=3D 3 << udphy->dp_lane_sel[3] * 2; + value |=3D 2 << udphy->dp_lane_sel[2] * 2; fallthrough; =20 - case UDPHY_MODE_DP_USB: - value |=3D 0 << udphy->dp_lane_sel[0] * 2; + case 2: value |=3D 1 << udphy->dp_lane_sel[1] * 2; - break; + fallthrough; =20 - case UDPHY_MODE_USB: + case 1: + value |=3D 0 << udphy->dp_lane_sel[0] * 2; break; =20 default: @@ -568,28 +576,6 @@ static void rk_udphy_dplane_select(struct rk_udphy *ud= phy) FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); } =20 -static int rk_udphy_dplane_get(struct rk_udphy *udphy) -{ - int dp_lanes; - - switch (udphy->mode) { - case UDPHY_MODE_DP: - dp_lanes =3D 4; - break; - - case UDPHY_MODE_DP_USB: - dp_lanes =3D 2; - break; - - case UDPHY_MODE_USB: - default: - dp_lanes =3D 0; - break; - } - - return dp_lanes; -} - static void rk_udphy_dplane_enable(struct rk_udphy *udphy, int dp_lanes) { u32 val =3D 0; @@ -659,6 +645,7 @@ static void rk_udphy_set_typec_default_mapping(struct r= k_udphy *udphy) } =20 rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB); + udphy->dp_lanes =3D 2; } =20 static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw, @@ -897,7 +884,7 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udphy= *udphy) return 0; } =20 - if (num_lanes !=3D 2 && num_lanes !=3D 4) + if (num_lanes !=3D 1 && num_lanes !=3D 2 && num_lanes !=3D 4) return dev_err_probe(udphy->dev, -EINVAL, "invalid number of lane mux\n"); =20 @@ -923,9 +910,11 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udph= y *udphy) } =20 udphy->mode =3D UDPHY_MODE_DP; - if (num_lanes =3D=3D 2) { + udphy->dp_lanes =3D num_lanes; + if (num_lanes =3D=3D 1 || num_lanes =3D=3D 2) { udphy->mode |=3D UDPHY_MODE_USB; - udphy->flip =3D (udphy->lane_mux_sel[0] =3D=3D PHY_LANE_MUX_DP); + udphy->flip =3D (udphy->lane_mux_sel[0] =3D=3D PHY_LANE_MUX_DP) || + (udphy->lane_mux_sel[1] =3D=3D PHY_LANE_MUX_DP); } =20 return 0; @@ -1074,18 +1063,17 @@ static int rk_udphy_dp_phy_exit(struct phy *phy) static int rk_udphy_dp_phy_power_on(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); - int ret, dp_lanes; + int ret; =20 mutex_lock(&udphy->mutex); =20 - dp_lanes =3D rk_udphy_dplane_get(udphy); - phy_set_bus_width(phy, dp_lanes); + phy_set_bus_width(phy, udphy->dp_lanes); =20 ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_DP); if (ret) goto unlock; =20 - rk_udphy_dplane_enable(udphy, dp_lanes); + rk_udphy_dplane_enable(udphy, udphy->dp_lanes); =20 rk_udphy_dplane_select(udphy); =20 @@ -1368,6 +1356,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; mode =3D UDPHY_MODE_DP; + udphy->dp_lanes =3D 4; break; =20 case TYPEC_DP_STATE_D: @@ -1384,6 +1373,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; } mode =3D UDPHY_MODE_DP_USB; + udphy->dp_lanes =3D 2; break; } =20 @@ -1532,7 +1522,7 @@ static int rk_udphy_probe(struct platform_device *pde= v) ret =3D PTR_ERR(udphy->phy_dp); return dev_err_probe(dev, ret, "failed to create DP phy\n"); } - phy_set_bus_width(udphy->phy_dp, rk_udphy_dplane_get(udphy)); + phy_set_bus_width(udphy->phy_dp, udphy->dp_lanes); udphy->phy_dp->attrs.max_link_rate =3D 8100; phy_set_drvdata(udphy->phy_dp, udphy); =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 5F2A73B42CC; Fri, 19 Jun 2026 15:29:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882946; cv=none; b=cJTRpSoJ29pcfA6oX9rq+rJz2A9pis9ZXfNPmVBhengPq9drBurq9fSpYEXYPvKNCJ64Ay7b8521Ko+XORLdqrqCCyIdNoyLmrALqAHimFIepz6mXjoLi4HHPp19dIKLKyMGtGGZGXBz136OuVc3YHGEwi1GEsLnr4mYaDSviUg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882946; c=relaxed/simple; bh=EVPCL9zVkRBzg+EjML3hQjkCgGTjuY/mvZktdVccv/4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tVMBDgPpqJzqJZi1Fk5QngA9AgPbAJgeKDoaE6unay1X4mDsZLwgLR07YaRwdaEufedw0f3m+4V2av+b4FGyALbR3AEyb/26pggu0X48ebmepNUYVAftxVtf/9dr2RyijGb0ONTXZWu8h9eVyqhEjqQk4NcNVgtXrT8f4UGafkY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=RO0icPph; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="RO0icPph" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=EVPCL9zVkRBzg+EjML3hQjkCgGTjuY/mvZktdVccv/4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RO0icPphqGTjLtKrM6tAJC5J0nGdDXBldmuDTvcQZ7sqL0YCJ/ia4LRaSsssX3icf hasgDOohHXVSs7Iw4z8/T4XSclUbDaPD39qwwXdpMqcUyOBgBkNksVzWowR99Tq68Q 9ib6yEdkRe/FvsZQH1Fs4JYVzWqQfavjfziaTtSUl7YBUdAJ5Z/zOhyUClvVzEGtFF 08rok9axkliVDuS3fR/c0GohDcQblMkTRN/Fp6lBCDLek4zfrLGdxftfI40Q3LXgRy nHxw3RK9q24LuySn91tRnO8sJxKRqAsp7EzJ6dy7exNmu/vI8eFwfDlQtNdfmk430w ef6eRdRpJBnaQ== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 5475117E1562; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 993AB480048; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:03 +0200 Subject: [PATCH v6 12/23] phy: rockchip: usbdp: Rename DP lane functions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-12-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2007; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=EVPCL9zVkRBzg+EjML3hQjkCgGTjuY/mvZktdVccv/4=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDiH4AF6nR0Y8pMlkq7ImAE1wb0xdod7j 8SGg5kDmSYpPokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qafBgP/j11fTxdDdT0zWXlvJab2gavkKaEHs4sMgo1O3iDbDUI8ThDWCK4ogiOfSXwp66LTSA r5QY+p+Zl4swVIKSJM1xC0VqVG+gnJaPbOXMHx4rpoQdpicaAilahlvDqErk2+iDE13sbCycJBc xbxgDq7dmQ8E5xu28yvrk9VTwip48Q8kNQZBlXbq7cnlVDlHsTBp8xiwNuF1D6av4w9mF8Ng5XR wL4YE20m+tU+JqgpD4gFbXzAn5xG+FOYEisxKMsygiRL34/99ySO93iTOQTT/79TiBbIs5ewDVb bVW3gOk3ng0Z0YTJnZEdwb86GWStpCOh96WOoXuuphgYAnYQ44IQnDIuq5RErGBAfjR9rbuOCpZ +3HE2kTQPDKGaenIs9/6hWP3ttcN5wCRICQo7yxozhSqz3f0q/h4zZDzwJR/vX2wOMfOmooV+4x 0jH2S9i25nTuulZU1lIiwGBbl1uTqukcQcOFo2DyXQ2ntYy5iYJI6f2RDrefllfT799SzDqR2cb U8JPPNB0BtAhgU3p6KllZFDXxJiLNBMb8aqw1l4zRRTmgbNCBzHTHiJ9sBEKfGVTyljueaX7aWQ QP/kpy12yQVLBfJWQCTiKkTCHzTPRsqugTy3Ed59cKzqduvKhBDjKd5ZvvTDVqeyAd2e7QzN83s EhCUWHnPRd9asaW+9YRof2A== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A The common prefix for DisplayPort related functions is rk_udphy_dp_ (with a final _), so update the two DP lane functions to follow that scheme. Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index a87cb5c0596e..e8b2adecb08a 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -547,7 +547,7 @@ static void rk_udphy_usb_bvalid_enable(struct rk_udphy = *udphy, u8 enable) * -----------------------------------------------------------------------= ---- */ =20 -static void rk_udphy_dplane_select(struct rk_udphy *udphy) +static void rk_udphy_dp_lane_select(struct rk_udphy *udphy) { const struct rk_udphy_cfg *cfg =3D udphy->cfgs; u32 value =3D 0; @@ -576,7 +576,7 @@ static void rk_udphy_dplane_select(struct rk_udphy *udp= hy) FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); } =20 -static void rk_udphy_dplane_enable(struct rk_udphy *udphy, int dp_lanes) +static void rk_udphy_dp_lane_enable(struct rk_udphy *udphy, int dp_lanes) { u32 val =3D 0; int i; @@ -1073,9 +1073,9 @@ static int rk_udphy_dp_phy_power_on(struct phy *phy) if (ret) goto unlock; =20 - rk_udphy_dplane_enable(udphy, udphy->dp_lanes); + rk_udphy_dp_lane_enable(udphy, udphy->dp_lanes); =20 - rk_udphy_dplane_select(udphy); + rk_udphy_dp_lane_select(udphy); =20 unlock: mutex_unlock(&udphy->mutex); @@ -1093,7 +1093,7 @@ static int rk_udphy_dp_phy_power_off(struct phy *phy) struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 mutex_lock(&udphy->mutex); - rk_udphy_dplane_enable(udphy, 0); + rk_udphy_dp_lane_enable(udphy, 0); rk_udphy_power_off(udphy, UDPHY_MODE_DP); mutex_unlock(&udphy->mutex); =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 794733B42D0; Fri, 19 Jun 2026 15:29:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882947; cv=none; b=ml2glfebkONUo+KzKqBKj7Txpdpn9Aj1AW80n+KWNhqOSNeKZA/ok29tj0t3ABHX+lpncGbadr1L0PCk4b5qQtt5yJbW/ynmA8GLzQlrCVgzLN9RdaUSd4dmfB9ed9Xigt5XpKwC2RP8IHJR3Yeqm2W5yzbXounWLxPKQUH1X+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882947; c=relaxed/simple; bh=9kn1f+t/5GGJZ/kTWkBXhYGTLNor/RP1jpdd3Kej13A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CsKSMriD5UNAiROImL7h9CkZp6kRBrmZntNq82rabrOOVn9l/AVGYQeL5zjJkuLT3rIZq9VeXfmWIbz4EBfRtqh2UTng1wEfKhX9TJ6Ug4kcBZlaf2MMqtLdPDuQ516iPEwXMquzloj6QUq2dtmrhzSBY2UHhHTnlOrZ518WjY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=I/xLdo8m; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="I/xLdo8m" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=9kn1f+t/5GGJZ/kTWkBXhYGTLNor/RP1jpdd3Kej13A=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=I/xLdo8mkbGbtDz1l6207Kh1quxIj9Tye1ckVrXjNMSx6+/o6ygGfvXdH8SBzUzd8 LHPFD9F4GkI/xTWIaSoVfE3JcXCFPcbsx5rYqLl9nEOUbEx7PkLCVh7HP9BeYwllw7 WbVanDNM+uKuDzCC6tiIMYICsWLE2VMtLGXG7QA4x9InzaQZbaaTunSUQ6lUX2z8AA dW5ZcrL75DuEE3PdsJo6OYpcCiIxzHkatqlavgG4LqGgXb8a7JsyJLEdcRqfbk/4YT pWJYMTGbPkltDzfOfKepU1lunJFUL9QiriEpFbEsSnhortLaMOOagBnNqEZ6KG5fg6 0FFNakovqvX6A== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 5D50A17E1576; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9AAE448004C; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:04 +0200 Subject: [PATCH v6 13/23] phy: rockchip: usbdp: Use FIELD_PREP_WM16_CONST Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-13-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1546; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=9kn1f+t/5GGJZ/kTWkBXhYGTLNor/RP1jpdd3Kej13A=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDgwSr5u04Hxwyf138blDNzIbPrEiv6ed CCIdnqzLe1Ux4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA4AAoJENju1/PI O/qaeqAQAKdR/4OimZHX48cqGz/7bQihDRl4Mpf9Aetig4pWa50oP5T2fJ/o3rVNSImxWM6A8Qr ozQ7RhIt1XiVXw9O1S2GtB+yT18UNE921pwqD2E8z0Ww8bELRuga4rYmx89iGIliF/HcKAjcN5Y 4C9ZlzTWDVCh7GseWkCEA0qgAZTGbAfnee3vimm7Xlz4XfAQzGoP8t1UZqcn9th9asCd1U33fHd JiUSnC4Z8Mpnfxd3OdNynpT76xKKvQgjnp0bYSAl/xGP//G5XmsncczhwYC7fs2xOOqthguMdjl 1nkYIiSnqUXNRfQ8D7aMJPeyO4vCaR4fUlP9w3PdlXaEW29kfARmAtKjSBOW/wtSLuGRgjgCZyc iNajVCh81czw/xTJA/Xb2uP8I2Pl8qXDPeCvg2FItklZZfhCpYyIyDLJW3lhJUac1H5Xofcptlm aKM6I0NixivX1iyS5aArY3XhgChFL9HjcoCjYxNXqVHdy5KVou+g/wwWUgnOD7fL5yNliTmcYRC eOKXzBxvTANJWikzyf0DbMKiRPaHuI66DrHFZhzyJftWnMaWgZK0/L/DKx294ESZzIHocoXtg4Z Yc52V0LmGrRtxPpuaNoh4xP6lQtohrdcGS5P5ojZ8bvfdjk1F9bpsqWRihqSc0KSkM5XlFu4hRD g6VLWxqOrKC1RsTwqXZUrIA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Cleanup code by replacing open-coded version of FIELD_PREP_WM16_CONST with the existing helper macro. Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index e8b2adecb08a..ceaf091b9101 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -75,7 +76,6 @@ #define TRSV_LN2_MON_RX_CDR_DONE_OFFSET 0x1b84 /* trsv_reg06E1 */ #define TRSV_LN2_MON_RX_CDR_LOCK_DONE BIT(0) =20 -#define BIT_WRITEABLE_SHIFT 16 #define PHY_AUX_DP_DATA_POL_NORMAL 0 #define PHY_AUX_DP_DATA_POL_INVERT 1 #define PHY_LANE_MUX_USB 0 @@ -104,8 +104,8 @@ struct rk_udphy_grf_reg { #define _RK_UDPHY_GEN_GRF_REG(offset, mask, disable, enable) \ {\ offset, \ - FIELD_PREP_CONST(mask, disable) | (mask << BIT_WRITEABLE_SHIFT), \ - FIELD_PREP_CONST(mask, enable) | (mask << BIT_WRITEABLE_SHIFT), \ + FIELD_PREP_WM16_CONST(mask, disable), \ + FIELD_PREP_WM16_CONST(mask, enable), \ } =20 #define RK_UDPHY_GEN_GRF_REG(offset, bitend, bitstart, disable, enable) \ --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 83D6B3B42D4; Fri, 19 Jun 2026 15:29:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; cv=none; b=i+9Mmu/NFOhPav21gSxkOb5jCdTn69NdHJnFcjxidPMuyq+W10aVeeeZyYKHXxl6iNbRYF9fwBpxptxoxgMhB+TcKT4AscIZmjJMEidT395nJvAmG0mh0ceNx+h5jGcULyqfMXwnzOLoMdlUfwQNS2rV5UPWNOfUDth/YkpyzOg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882945; c=relaxed/simple; bh=s14hSsNP0osKXinr4iWclYN6vFiEnD9Nkat0LfmjKmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tNBe19wME3GITPoR0onfD0s92JvzQkZGb3/Q73wzviq5MQQaxT96k7b5KYWGL6chMt6CMl2t7cXfhBjvrzIai9sZqNkBvV5e58RUaMw20WOr3ZRl/1iqLkuaioCa8jwY/o9BDObuuwQq0Y9mFtPbfjrBo07jTAEcT3RI4FD5iuA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=AKtsY2Qf; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="AKtsY2Qf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=s14hSsNP0osKXinr4iWclYN6vFiEnD9Nkat0LfmjKmk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=AKtsY2QfVidBtS3hDXI89Ds6yYCEqriwWsyOSJeiRCpgWuUxwY7M0ejB9D/9JiXfW t837T3CbeAuNQ6x6JrR+/hqDYu4zxc6ie3nzYdA3WcN/wNx5pyUwWNPfc0goj4B7b+ f243Wnw9KW6lVfOGpkGh/Px2TObRVFBWWRWzFpHvd0LryPasOnTB3qD5Dey22Ao0Qk PjWLtmErbZHiVg+FBLRIKXpDdPXHTc2UR5NWvAaacZQ47wnnqZe+2Y3b9/C3lhQi86 cUBP0qTupqCIMKB67rTsqOxecxsXzmBUvK7ryl5Ob6G6BGtebj8km+M4qg21MT1n2S JImIInZZeCaOw== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 6215A17E1583; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9C5C548004E; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:05 +0200 Subject: [PATCH v6 14/23] phy: rockchip: usbdp: Cleanup DP lane selection function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-14-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1889; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=s14hSsNP0osKXinr4iWclYN6vFiEnD9Nkat0LfmjKmk=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDlkvRhbTNBO8GgHHW802Yj3ZgKZMs5s2 5LmBa1xc7zVY4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaHsUQAJ6++/xOar/VpxBQbPBS6noAFVkLTkWW6mesZg8RcqtqO/EldrQw3HmopvKccp0TFn2 T3WaTdr7BURmovEuAHLRNXk16CGZDCnRRUaOorrWir+w5PbisIbciYcr9Ha87ejJ71PTNb3mn+i woCzwheRP+xiHdHjO81SyLyAbZXtQA8Ra/vCEVxQThdYEpLvCfdcnV0yKupbsyD0zkJaRZ8Crpw HipfOkQqcIKzWZXayA0MxNnA6FcfWjezUsk5hAa+oroKZ3yx1I6cLgFHFbz4r7PQv4MIlUm0laV p+M2M3KZWAnm1znWLEIkwcpLxYb2Z9vtjrPJ3QCVYn2V5L+SV7Juj8dFp3TuY6PdP4dEkQaWEai GnEeR5Wy9baTLC9u+jes3sWpC3g3fYvv7qTjseyDCIFnRpL2CgJznZEKd8U5V6HU1aJlAvW1bMq HYvPWfMxxdDglsGBZe4JwihMcvRCkANt96f6xR510UqZpkLotOkt/zgj0hfETH47h6lX/dRXs2v rDLrUapGPLTKnOPS3bGGgzU24BvkIAWjVWHxdmhDYrxGdAvPEa39avzlSCHv2dCWRI7SXpBGBPb pnGCG9tw5OOraclhPojMqcNl9vIFc7gA4/bZeDI5McRSm+Pzh74ukUm7Lj/yTj/5SJf1wZre9Dk rae1kNiqVrqv0Gwjapkgu5g== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Use FIELD_PREP_WM16() helpers to simplify the DP lane selection logic. Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index ceaf091b9101..da769790df98 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -550,30 +550,16 @@ static void rk_udphy_usb_bvalid_enable(struct rk_udph= y *udphy, u8 enable) static void rk_udphy_dp_lane_select(struct rk_udphy *udphy) { const struct rk_udphy_cfg *cfg =3D udphy->cfgs; - u32 value =3D 0; - - switch (udphy->dp_lanes) { - case 4: - value |=3D 3 << udphy->dp_lane_sel[3] * 2; - value |=3D 2 << udphy->dp_lane_sel[2] * 2; - fallthrough; - - case 2: - value |=3D 1 << udphy->dp_lane_sel[1] * 2; - fallthrough; + u32 value =3D FIELD_PREP_WM16(DP_LANE_SEL_ALL, 0); + int i; =20 - case 1: - value |=3D 0 << udphy->dp_lane_sel[0] * 2; - break; + for (i =3D 0; i < udphy->dp_lanes; i++) + value |=3D field_prep(DP_LANE_SEL_N(udphy->dp_lane_sel[i]), i); =20 - default: - break; - } + value |=3D FIELD_PREP_WM16(DP_AUX_DIN_SEL, udphy->dp_aux_din_sel); + value |=3D FIELD_PREP_WM16(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel); =20 - regmap_write(udphy->vogrf, cfg->vogrfcfg[udphy->id].dp_lane_reg, - ((DP_AUX_DIN_SEL | DP_AUX_DOUT_SEL | DP_LANE_SEL_ALL) << 16) | - FIELD_PREP(DP_AUX_DIN_SEL, udphy->dp_aux_din_sel) | - FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); + regmap_write(udphy->vogrf, cfg->vogrfcfg[udphy->id].dp_lane_reg, value); } =20 static void rk_udphy_dp_lane_enable(struct rk_udphy *udphy, int dp_lanes) --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 C16D13B5820; Fri, 19 Jun 2026 15:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882947; cv=none; b=Y4OZx0qwyq3emQyo/ReGitook6gAtSm2dvy/qyAwfiUn8xuSJFGz1CYT2RwqK3gUZqs74m0zY0F+YdSRB0caMkzhSJ6ix/s+7dOdh9JEL9fMGuGzYSkJqtqp1Z3LqFUHCRpy5qMj/yX58EpORPmSujRAY82jO7ygar+MJHMHlJI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882947; c=relaxed/simple; bh=d+JJe+XQ+Y3L2NVQWkVOmIYISNROo337V2shDm9B67g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nIActs/WqnA0OO0ngh/l9bU2xLVrUImWgIwSKPyi26rrzPm96OZ7GAX+MZmEbjVaqIU6InpWslt3kZsDBz83Mds5dSrIcEAWHjny23ndRl4oQ0XKECwbVN3S2kbr/qAJmHRJUOmmshZP5CgI+AI69agPOyAH9tMp931zTGqEQ4A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=hUUy191y; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="hUUy191y" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=d+JJe+XQ+Y3L2NVQWkVOmIYISNROo337V2shDm9B67g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hUUy191ykC4E87fh1byZOrSAgsLanBuxT2eXi8JauZdVga7o/5Nv8WAz3OA693MgB 0KTRl5Gm8wN2l7inHVbY0zStkyqJX9opV4vkazHeBXhSPwH7WlxtshEeNgzx0JMGN0 htfOTe+qUr2wCGax4OphGUFIZ/uvL/YSgAcRlVG15ccltLv9MrJCQ2/w4+l7BwJYps u6mYY63Q6FMNvGMcJE0T0mNDSj7o6hwf3xrIw/xFtnge6ASgIqfeHHrKd+FwcvV96r 47vI00OReERLfJQnpzMvoAlZc4j3U/HAiJxs852aG3hu1t9krJxxGt7p+kGdSzvlcE SNqFp/WC/VjiQ== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7A39D17E15A5; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9EC18480052; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:06 +0200 Subject: [PATCH v6 15/23] phy: rockchip: usbdp: Register DP aux bridge Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-15-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2991; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=d+JJe+XQ+Y3L2NVQWkVOmIYISNROo337V2shDm9B67g=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDml4tyOwH6M+iXyJiGYehqX8Wzq9zP6q D99hehp4ECMCIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaWSIP/iDG6UrI9cLiquOeu9VOTGEU26dA59Fe00f/Y9loI9Ow3a04dMpNX8UmDhaiHcegYs7 XAsxV7UZxBi6cmBREM3zPtRVZJmpACIoW0j3NmgWVRH/9sdTV28zR0m7oJwyHPwWImu2+9RvuM3 yuXALcZe2dt6hUty6nxOmzc932JmN7cSmhqD9vK13P9mDVcAXI1JeP150RmEh031j0tNGGFrB+6 filXt7lvKAh/YlXHIHqM2P+fSDZtnqA2zj7gRseawYQTI2u7rTtGn1d+Rd3F/tKX5htzyWEuC5w dAmQd1pztpsr+R7BMjtJmccebgrU5+bBfySNRcukO1WSBsqpgbwucsWx/3zg/+lnAYat/PHzXjt h4I5E8z6QwaMxLUV0JX3E5YlLHoo80G8Vx4oD+6vGFIR4tPKD5R4wpTWPuG+CqEUqYtPmAIuO/s 73oosoyg4ztPlum+Wclb/j8nqrfNWusicyKdlQ3zMaymrgSVkhwdRemyUEox8rPeHbJ+RV3rHgu ygXtFwSBQFyoVj3Kr1ZoopN+lsyoM73Xvhcw+RnnEfjFvQyeQod8v2U+MXgOBLrRv8hmI1XNYGw N9/JbfciCgwVUv0fT0PlISRNdEvMf1JajV4QcdqHMFKuHNpecdjOdvp6kGAeFVkXYRmlVKB7244 /fXBH0em3oGKz9YeJlkY5XA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Add support to use USB-C connectors with the DP altmode helper code on devicetree based platforms. To get this working there must be a DRM bridge chain from the DisplayPort controller to the USB-C connector. E.g. on Rockchip RK3576: root@rk3576 # cat /sys/kernel/debug/dri/0/encoder-0/bridges bridge[0]: dw_dp_bridge_funcs refcount: 7 type: [10] DP OF: /soc/dp@27e40000:rockchip,rk3576-dp ops: [0x47] detect edid hpd bridge[1]: drm_aux_bridge_funcs refcount: 4 type: [0] Unknown OF: /soc/phy@2b010000:rockchip,rk3576-usbdp-phy ops: [0x0] bridge[2]: drm_aux_hpd_bridge_funcs refcount: 5 type: [10] DP OF: /soc/i2c@2ac50000/typec-portc@22/connector:usb-c-connector ops: [0x4] hpd Reviewed-by: Neil Armstrong Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/Kconfig | 2 ++ drivers/phy/rockchip/phy-rockchip-usbdp.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig index 14698571b607..39759bb2fa1d 100644 --- a/drivers/phy/rockchip/Kconfig +++ b/drivers/phy/rockchip/Kconfig @@ -136,8 +136,10 @@ config PHY_ROCKCHIP_USBDP tristate "Rockchip USBDP COMBO PHY Driver" depends on ARCH_ROCKCHIP && OF depends on TYPEC + depends on DRM || DRM=3Dn select GENERIC_PHY select USB_COMMON + select DRM_AUX_BRIDGE if DRM_BRIDGE help Enable this to support the Rockchip USB3.0/DP combo PHY with Samsung IP block. This is required for USB3 support on RK3588. diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index da769790df98..b75c190a4311 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -6,6 +6,7 @@ * Copyright (C) 2024 Collabora Ltd */ =20 +#include #include #include #include @@ -1438,6 +1439,7 @@ static int rk_udphy_probe(struct platform_device *pde= v) { struct device *dev =3D &pdev->dev; struct phy_provider *phy_provider; + struct fwnode_handle *dp_aux_ep; struct resource *res; struct rk_udphy *udphy; void __iomem *base; @@ -1496,6 +1498,18 @@ static int rk_udphy_probe(struct platform_device *pd= ev) return ret; } =20 + /* + * Only register the DRM bridge, if the DP aux channel is connected. + * Some boards use the USBDP PHY only for its USB3 capabilities. + */ + dp_aux_ep =3D fwnode_graph_get_endpoint_by_id(dev_fwnode(dev), 3, 0, 0); + if (dp_aux_ep) { + ret =3D drm_aux_bridge_register(dev); + fwnode_handle_put(dp_aux_ep); + if (ret) + return ret; + } + udphy->phy_u3 =3D devm_phy_create(dev, dev->of_node, &rk_udphy_usb3_phy_o= ps); if (IS_ERR(udphy->phy_u3)) { ret =3D PTR_ERR(udphy->phy_u3); --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 240303B27EF; Fri, 19 Jun 2026 15:34:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781883266; cv=none; b=sU+gp6n3lc4seSmaeeyqjJ49WUztv+cuupYz8RtVDjTIZ8FqXJwBE3Umsg+DFJS5chj+k6yUxZSdVrZ4r5IyzrJFkr4aFk3qJdYC3yMGdxyT3Bu3JutPFW4vYVy/cziA3vR7OQi3A5td172ay1mVSvf2USItRoGhnLHqUOzVKXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781883266; c=relaxed/simple; bh=HaBOFuFe21ffySfCQzje2DlzG/bKoGkSOzwTEV941FI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GOM+26OYOUB5dCYNocaw0EHtBFk/J9W3ox2AsBxvfcLhemJZZidSeCxaEZpqeoJGyNCN6Lb0H9NZoMYkcWxLKZJ3I/Pd27/b5lu5dzH8mm8r+/YesP50wRRuKXAxsUAA1l8ToY1DVZbOF7NHPQXRZKQTCPe5SwUPb1OvTWPCXqc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=YaEC2Guw; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="YaEC2Guw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781883263; bh=HaBOFuFe21ffySfCQzje2DlzG/bKoGkSOzwTEV941FI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YaEC2GuwiYt77eXwmqNoMorIjyH9HmV7oifvcda2/2ii4EL0IMkhOKb/VRKYR5D7Y lnnAXASN0lPRcVEDRFQXlHyTKdZHEIfCPpcoP/XLKftIOrLFGvaOmR8JgTz7PmQHLb GyGuQTHoxg3a7GNx0QLjlxUl5mp8ui3/WsONi7+17zAxRvhXduARwJ3JsHGUzTIWFp 5dhZGwZXnTSZ1GS6Mgrwlev9GihgBY2yEUk6IDjBiOUO2C61VI5AZl0XbXvvhzZ9GB 7PZPx09SKrEs5esjYfAMCsWZt4nCa8BmZpih92fHDKHl6xqgSGJF8/YLoGUrv4VnbS m2Ac0ho60FscA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7637E17E02B5; Fri, 19 Jun 2026 17:34:23 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 9F968480055; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:07 +0200 Subject: [PATCH v6 16/23] phy: rockchip: usbdp: Drop DP HPD handling Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-16-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5858; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=HaBOFuFe21ffySfCQzje2DlzG/bKoGkSOzwTEV941FI=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDk3lmulfxkAKyl1bB0UefJi8Cjjr1Tpz 9I0vWktmmc7PIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaI50P/20uAXYYQxrGAf+FvUvz0/7b2zrU84vwY0RVN394tPxNDDsJKp+GmW7V2oiKjhVA6GD ENk/+ZeU5vwCioWwB+8L/myHTypWWD07CRGUTCxgwIeimwozRSGrZVwhe3oZ2fKbJ3z2IfufJxR rKc0KkdgB0wjehZ3w6zz21x0iKZuGx5RLt/ljwWzyk3QTkAHnfF0wuh/+awgJSAL73FOBCTBDnN RLyK3TNUeF+/xnI38iFmrfKL4Me3EmwVJcpvc+tXpwM8xSJThwfFcc4b4QoHdMQEwSm+/QNbrab vK/iM9ZpOb2uZCa10OM17HbejX5ggDY1RckWe7k03mNo7AmWxPMuBCL/mn7HX5k7S7wEFnMWX9k kIy5MnAwK8jFLoSEZuwiXZWvnL2OOmjSbV3fgexOnArpbXtpyuuLL4IWAj+vGHjS/Oxak2YKyS7 NlbGX9DG2x5UV649swGYRHLIYBHnoSAnmLAUjIiuOl5Ets1CX1Q/Khe0ZBgrLZFLFKcqPIjW/yV U5bJEi9DmClQbV6HqWI2/6MEgCpukaH9SK6jPxCCb05FIQy4ENo4rz1jUojI/+Ly7R1662sei97 fMwl8lLBPMAQNsYFdnJ/BWyLj+9RcD6qirHzmFb34QcTpQZsdStqkNbmT3024EnO+Rl//isRzpz dhWnnAupd8iN1VAlhepooHg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Drop the HPD handling logic from the USBDP PHY. The registers involved require the display controller power domain being enabled and thus the HPD signal should be handled by the displayport controller itself. Apart from that the HPD handling as it is done here is incorrect and misses hotplug events happening after the USB-C connector (e.g. when a USB-C to HDMI adapter is involved and the HDMI cable is replugged). Proper USB-C DP HPD support requires some restructuring of the DP controller driver, which will happen independent of this patch. The mainline kernel does not yet support USB-C DP AltMode on RK3588 and RK3576, so it is fine to drop this code without adding the counterpart in the DRM in an atomic change. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 85 ++++-----------------------= ---- 1 file changed, 9 insertions(+), 76 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index b75c190a4311..383e68b24506 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -128,7 +128,6 @@ struct rk_udphy_grf_cfg { =20 struct rk_udphy_vogrf_cfg { /* vo-grf */ - struct rk_udphy_grf_reg hpd_trigger; u32 dp_lane_reg; }; =20 @@ -186,14 +185,11 @@ struct rk_udphy { u32 dp_lane_sel[4]; u32 dp_aux_dout_sel; u32 dp_aux_din_sel; - bool dp_sink_hpd_sel; - bool dp_sink_hpd_cfg; unsigned int link_rate; unsigned int lanes; u8 bw; int id; =20 - bool dp_in_use; int dp_lanes; =20 /* PHY const config */ @@ -579,19 +575,6 @@ static void rk_udphy_dp_lane_enable(struct rk_udphy *u= dphy, int dp_lanes) CMN_DP_CMN_RSTN, FIELD_PREP(CMN_DP_CMN_RSTN, 0x0)); } =20 -static void rk_udphy_dp_hpd_event_trigger(struct rk_udphy *udphy, bool hpd) -{ - const struct rk_udphy_cfg *cfg =3D udphy->cfgs; - - udphy->dp_sink_hpd_sel =3D true; - udphy->dp_sink_hpd_cfg =3D hpd; - - if (!udphy->dp_in_use) - return; - - rk_udphy_grfreg_write(udphy->vogrf, &cfg->vogrfcfg[udphy->id].hpd_trigger= , hpd); -} - static void rk_udphy_mode_set(struct rk_udphy *udphy, u8 mode) { if (udphy->mode =3D=3D mode) @@ -1024,29 +1007,6 @@ static void rk_udphy_power_off(struct rk_udphy *udph= y, u8 mode) rk_udphy_disable(udphy); } =20 -static int rk_udphy_dp_phy_init(struct phy *phy) -{ - struct rk_udphy *udphy =3D phy_get_drvdata(phy); - - mutex_lock(&udphy->mutex); - - udphy->dp_in_use =3D true; - - mutex_unlock(&udphy->mutex); - - return 0; -} - -static int rk_udphy_dp_phy_exit(struct phy *phy) -{ - struct rk_udphy *udphy =3D phy_get_drvdata(phy); - - mutex_lock(&udphy->mutex); - udphy->dp_in_use =3D false; - mutex_unlock(&udphy->mutex); - return 0; -} - static int rk_udphy_dp_phy_power_on(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); @@ -1278,8 +1238,6 @@ static int rk_udphy_dp_phy_configure(struct phy *phy, } =20 static const struct phy_ops rk_udphy_dp_phy_ops =3D { - .init =3D rk_udphy_dp_phy_init, - .exit =3D rk_udphy_dp_phy_exit, .power_on =3D rk_udphy_dp_phy_power_on, .power_off =3D rk_udphy_dp_phy_power_off, .configure =3D rk_udphy_dp_phy_configure, @@ -1333,6 +1291,14 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); u8 mode; =20 + /* + * Ignore mux events not involving DP AltMode, because + * the mode field is being reused, e.g. state->mode =3D=3D 4 + * could be either TYPEC_MODE_USB4 or TYPEC_DP_STATE_C. + */ + if (!state->alt || state->alt->svid !=3D USB_TYPEC_DP_SID) + return 0; + mutex_lock(&udphy->mutex); =20 switch (state->mode) { @@ -1364,22 +1330,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, break; } =20 - if (state->alt && state->alt->svid =3D=3D USB_TYPEC_DP_SID) { - struct typec_displayport_data *data =3D state->data; - - if (!data) { - rk_udphy_dp_hpd_event_trigger(udphy, false); - } else if (data->status & DP_STATUS_IRQ_HPD) { - rk_udphy_dp_hpd_event_trigger(udphy, false); - usleep_range(750, 800); - rk_udphy_dp_hpd_event_trigger(udphy, true); - } else if (data->status & DP_STATUS_HPD_STATE) { - rk_udphy_mode_set(udphy, mode); - rk_udphy_dp_hpd_event_trigger(udphy, true); - } else { - rk_udphy_dp_hpd_event_trigger(udphy, false); - } - } + rk_udphy_mode_set(udphy, mode); =20 mutex_unlock(&udphy->mutex); return 0; @@ -1535,20 +1486,6 @@ static int rk_udphy_probe(struct platform_device *pd= ev) return 0; } =20 -static int __maybe_unused rk_udphy_resume(struct device *dev) -{ - struct rk_udphy *udphy =3D dev_get_drvdata(dev); - - if (udphy->dp_sink_hpd_sel) - rk_udphy_dp_hpd_event_trigger(udphy, udphy->dp_sink_hpd_cfg); - - return 0; -} - -static const struct dev_pm_ops rk_udphy_pm_ops =3D { - SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, rk_udphy_resume) -}; - static const char * const rk_udphy_rst_list[] =3D { "init", "cmn", "lane", "pcs_apb", "pma_apb" }; @@ -1572,7 +1509,6 @@ static const struct rk_udphy_cfg rk3576_udphy_cfgs = =3D { }, .vogrfcfg =3D { { - .hpd_trigger =3D RK_UDPHY_GEN_GRF_REG(0x0000, 11, 10, 1, 3), .dp_lane_reg =3D 0x0000, }, }, @@ -1613,11 +1549,9 @@ static const struct rk_udphy_cfg rk3588_udphy_cfgs = =3D { }, .vogrfcfg =3D { { - .hpd_trigger =3D RK_UDPHY_GEN_GRF_REG(0x0000, 11, 10, 1, 3), .dp_lane_reg =3D 0x0000, }, { - .hpd_trigger =3D RK_UDPHY_GEN_GRF_REG(0x0008, 11, 10, 1, 3), .dp_lane_reg =3D 0x0008, }, }, @@ -1653,7 +1587,6 @@ static struct platform_driver rk_udphy_driver =3D { .driver =3D { .name =3D "rockchip-usbdp-phy", .of_match_table =3D rk_udphy_dt_match, - .pm =3D &rk_udphy_pm_ops, }, }; module_platform_driver(rk_udphy_driver); --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 E3EB73B6340; Fri, 19 Jun 2026 15:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; cv=none; b=BBNyE81F3X2tnwF+m8vgP1ZI+o5IS+LwnKo9jBl1cqa2AdXmfmbEAMkJw6qOcYTvw3QCGhLkOHGqdNI2JiwQpV9MIe/wt+wy64Zt/pcYuc40iTSogd2zks7knawGl7eRVF9ebi3bf4R/1akwY2xLcx1dY587A+bKrs4xWtLM/cE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; c=relaxed/simple; bh=gn3ayTGnT+JU8UaQ6hkWMrrwAtC7Qql931Hfq6sCpw4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ffxyMd8+8R7KUTLt+hwarLJr4ziISNPDZ3GrWSI54tf3Md7vX0k5HGyYFjydI3THb6beCkHTTZM1Tq81CAJPX4wG0XNFtNo0PMmoxeR+Zc7Ya83THDhRBSnMMg9YYspna5QV6W/ilT8f3u1ljUlPLI8p+VhhoC/FbVRWvYC/Nlc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=kd2EZxqJ; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="kd2EZxqJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=gn3ayTGnT+JU8UaQ6hkWMrrwAtC7Qql931Hfq6sCpw4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kd2EZxqJyg5hgL+GpmEdVFvZsAPJS2e3hWa8C7qUzSlTyZfGHwcYKajbbDUgwDoO0 FIvNjOqf42OxtLBq6japqLtJss3AU1MnUoZF5qnFchfiOddKFYgoFU3aVftuYeYhmm HpK1WKV4ReLsBl9tRtlceiU8GNe/XUCtjlJ3JfqPAQqkp8gDjJgOvuuRwO+sr79xsM FckK94AXznAKn/PcQUdegZdUhl8v5b7h5YyUA/hTFpOFVkIr3lF/JpHp7Av8ea9GHS sCR3mKv6K6vuXkOvKtt++Hky6A4D+Z4wSEhZrVf/kJHXt/pEmsexnKILIWSjkZPohb bMMsPP0PgxhhA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 87F2817E15A6; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id A1267480061; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:08 +0200 Subject: [PATCH v6 17/23] phy: rockchip: usbdp: Rename mode_change to phy_needs_reinit Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-17-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1831; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=gn3ayTGnT+JU8UaQ6hkWMrrwAtC7Qql931Hfq6sCpw4=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDmF9N3nCAV9kSDLwDmfmxrx2wdXWdCbc G1bWi+GIhpMsokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaSKUP/0h9Ewjlsm4obFqkI/shoQzwmAvYncuBNljV6jG2L/QtNihfLcTz33UEqnWn6VyQgu7 kRJD1FI2siFFZKniVDirE6JcudbwsT/9KT+NBZ857HECbIkTSrmd1IaH80GnRphtUXydW5Zqbyq 6YGnA4vSpXWsd47+bHNKQL1+IGUmjwJiAlKDryJ6I+3/oAlYO/NVTjslfZ5yZAbLsXIC6iBiJsS 1iibriF0kYWtATJaMRYCCZUFKE1WMpG2/PgLMxeaewg/xVubvXXuI4QIhPAMCQLlZcMQQ8ArQ52 RcWRHjSRpIiLLOsVojjGZjxLEutAViNxoMzqd4TeUyORDWZAfiVkesOQBq6HVmDl/e/WtLROS7J y6Ddc6pQIeVnstyEPPMcUlIJ/EiHpjrHVPZk0qgw2n6aws5qwk4yc42JGpvTDqq6B9Fs/26lZzM b+rVbqzkUI/ozanLhXchKO8R+KMiIknX+PzGanTOsf8JEGqI9L+8EzDIUJo19FGgAh0XC2rqfps +LdiP7WTRQHAq+kOeHLfaMMc+/Z4+Va694urojpYWKDeGx9mAkJm5nKwpmKWY/wEwLfqhcMNhUk yGGyrHSK+DGCjpo0v7pi5C4wdmX9fFwKpnC5XRKRBPx7U32ckl29548ZHmXT0RiNAh5tgE5XPOw sLX+yJ2IvtsLPSW+g8XAmSA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Right now the mode_change property is set whenever the mode changes between USB-only, DP-only and USB-DP. It is needed, because on any mode change the PHY needs to be re-initialized. Apparently at least DP also requires a re-init when the cable orientation is changed, which is currently not being done (except when the orientation switch also involves a mode change). Prepare for this by renaming mode_change to phy_needs_reinit. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 383e68b24506..c210aaeb283a 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -171,7 +171,7 @@ struct rk_udphy { =20 /* PHY status management */ bool flip; - bool mode_change; + bool phy_needs_reinit; u8 mode; u8 status; =20 @@ -580,7 +580,7 @@ static void rk_udphy_mode_set(struct rk_udphy *udphy, u= 8 mode) if (udphy->mode =3D=3D mode) return; =20 - udphy->mode_change =3D true; + udphy->phy_needs_reinit =3D true; udphy->mode =3D mode; } =20 @@ -975,15 +975,15 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) =20 if (udphy->mode & UDPHY_MODE_USB) rk_udphy_u3_port_disable(udphy, false); - udphy->mode_change =3D false; - } else if (udphy->mode_change) { + udphy->phy_needs_reinit =3D false; + } else if (udphy->phy_needs_reinit) { if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 ret =3D rk_udphy_init(udphy); if (ret) return ret; - udphy->mode_change =3D false; + udphy->phy_needs_reinit =3D false; } =20 udphy->status |=3D mode; --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 0D8A93B27E9; Fri, 19 Jun 2026 15:34:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781883266; cv=none; b=oenT1CtxdOV0s+xs4RYK5cu66mks1+B5pDqFKAhIQ9IHnwAxzgmZ3AV38IeHcvFTjWlyktTFh6hjCGa82XRShOrmK/Z8Gp+XlLLyerNpPsgAF2ouYJqyD0wuTbSDkEJIahim0qyHO0t4H5WtmX8Lq6GdlCDVSiw7Un6Qeq8/JjA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781883266; c=relaxed/simple; bh=zdz0qSNvUbyDNxpGPNeOCdVRwIgtCiqNQzxi12no7Ro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BtjyA3BYktIkZN9MsYbmGpH4/cFrfvGCbZ5hSTkQusqlbpqqRWLgt0vc/wLhfVStJIJsUXSB/VwNGC61Y4RDFzNlDXmEg7uuCtSCNu0OBA7i6ly4YxvwvGrhMw2L4tV0l5r9ibepdG/1LIYSXq/Au0DN5rzBvCPcG3Q3ZtR1HOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=TAs9IHGH; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="TAs9IHGH" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781883263; bh=zdz0qSNvUbyDNxpGPNeOCdVRwIgtCiqNQzxi12no7Ro=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=TAs9IHGHXkV3qj0OdFdj9LuRkzRKFQh6LVrsWCoXAbD2s14KSxgTUmlTxwaGUIUrL vO4KFhFYlj2UhSnK7HhgnvB5n81OuT80NtNzuyhOPaWiK41XCOb4Q+ZOdBWglZfme6 Szldph5i1M9Wp/zs9cMzncrxsg2kfxeuwaPV/tOLQ+tcuDiKCC2XZ+W+uJcN+VjQPI shD/hQ8cuB5RDa0OfxkX26Iq9VNQe1SbdgfncqmZT+6t647esypOYpsxJn07lI6Ml7 WNgQ+JLzSYhJKHx+GqUsb8O4RpZH25Zm0iC8O4dvk+gk6bUt+/kA1WeeH+KLpuJtSh pEr4trg/Dtg4g== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 778D217E0416; Fri, 19 Jun 2026 17:34:23 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id A29A6480062; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:09 +0200 Subject: [PATCH v6 18/23] phy: rockchip: usbdp: Re-init the PHY on orientation change Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-18-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1257; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=zdz0qSNvUbyDNxpGPNeOCdVRwIgtCiqNQzxi12no7Ro=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDlch9XO/NguQ7E+yR+lATAcZGRn4Xgw8 ExBLQPi7D21HIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qas3AP/ApgK5e9KfU9SnpcT43qYfF0oXyZuj+U44QI66Xq0qOl0vI926AkuV0NVqhM1jKaLWc GH77x2qwAeTpP5owYTtOEQ38Gnz8yEf2sxMAeEXGRr/PG6e060tS+DMTwQWzo4hekex6satUki0 d0xopmghBig39To1Lx3eLLWn9y59S0zTTlmryEIoC3VdiEgD4cZfDGYQQJiC0O6TJkEqdh1Qtsm 3fF0bAjfo8vFYyWhx3QLPKIGMxgt5Dhi002T6NbmUkGctseD0kdeTgxSY4yJBhaSzQAuZFKdOLb BRjIApZXJknwPYoaRaoFqUEf1xFa+7kUMJfa63yRINxlChjZMNBTLtc3aOgR+0QpwQ/vYEstUq7 wI+vgGFcJQdAOvwM+wezEQWbCm1aJvxlK78g6ffFWj7L7FsANtgMTireE0thNtS6oJOVQun2PUu 1NAtARGtLftT2F5+ZNKeE5JRbrf+ikitnmd+BK+QR54ruRAEXRniZCqSFgZtgMuTdEpzEYNuYU3 0IlzELjZhPbSDU/meUYoUpFWpl3hMFAEJn1yP2afv7bGPXEmRfeUmMhyQg8T/v8ZlSn0k0nGv6e Cj2dTn8tRDgRWf/CcmDrik+yfhSQnd/xd9lONihXDcyOJMXZl4QNg0TEYYZ0jVIOUr3xFVCe68s 4qi3SpuuStd5ku1wZU6gmaQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Changing the cable orientation reconfigures the lane muxing, which requires re-initializing the PHY. Without this DP functionality breaks, if the cable is re-plugged with swapped orientation. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index c210aaeb283a..402f3cafcf0a 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -622,6 +622,7 @@ static int rk_udphy_orien_sw_set(struct typec_switch_de= v *sw, enum typec_orientation orien) { struct rk_udphy *udphy =3D typec_switch_get_drvdata(sw); + bool flipped =3D orien =3D=3D TYPEC_ORIENTATION_REVERSE; =20 mutex_lock(&udphy->mutex); =20 @@ -633,7 +634,10 @@ static int rk_udphy_orien_sw_set(struct typec_switch_d= ev *sw, goto unlock_ret; } =20 - udphy->flip =3D orien =3D=3D TYPEC_ORIENTATION_REVERSE; + if (udphy->flip !=3D flipped) + udphy->phy_needs_reinit =3D true; + + udphy->flip =3D flipped; rk_udphy_set_typec_default_mapping(udphy); rk_udphy_usb_bvalid_enable(udphy, true); =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 E62163B6344; Fri, 19 Jun 2026 15:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; cv=none; b=BeByJRjSNEhxRi1pwRCPlKWw6XYsiVA+mg+nl8coznMj+bGClalV/gSu28kreF7nNrjC5wwV/hnitRp6JH8xiMQBHNRrrk092AtGtuUmUZxaVaSKxbHB3Kzm7vYybJEZ+eGpYYceUW1Yv3du/lhH/X9j+D1gl1Y/e/JvrnEdTzc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; c=relaxed/simple; bh=vzGBtAimQD/c/iwmrluNEzZrLQN7+T0GbgLa8xRcfH8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I5EcUcFWFbjBv0qIzMAXqXgM8kzkIiR7LMdKO0K62hijKG6zTsaheFgOCCDFrGDZPaRoSSg1S+SaklT0h62kJ0TIvmI1dKZaEEh5Jk/fIwuDGbONFOYKbp6zBDmC0dUwPMSmVd+P2xD7IEgyKxLGs+WL/hoZwoJr16LZtu+Zbsc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=jgqR6WwU; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="jgqR6WwU" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=vzGBtAimQD/c/iwmrluNEzZrLQN7+T0GbgLa8xRcfH8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jgqR6WwUvtm1/4ZHyy2TSOatQkiL2XIRR2B4S31EyQfCevajHdNg1lqDu25xitRvl a4jlykDRU4PlHgZdVVRnHb8GOW0d9cC7ZgXlXgzAhvix3LCIR/k3HZ/jCAE4TqASF2 7PUmTkIAwW77scBWjfu2vvVPVrannMlx2QoOjbDo8vnZtPLERh1YI1XFRF5HVac5o0 SlRqaR1+rVS5wCFFIRvOyfo06vaAt/+N4kdA4cuqWTNea9B4SKSaofl3mX9sgdV+B0 3KORTP2UTsel4OsVf735t6ZAtC/AsZcNHs5HOaiH5ckBQCjU7eYLDhV9hr1KzWDcnf VgwE03zqHHwJg== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 95C7917E15A8; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id A4204480064; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:10 +0200 Subject: [PATCH v6 19/23] phy: rockchip: usbdp: Factor out lane_mux_sel setup Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-19-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4580; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=vzGBtAimQD/c/iwmrluNEzZrLQN7+T0GbgLa8xRcfH8=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDmbvZ0CinduXFcZfcddwm3o9VWF/tZy4 olnGo8Af1C+eokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaMdgP/2k7FJhJypP1uDKpWpqdLV3DRXE75RrJADqoaNBHJqM6drdgoxyCQf+SEionxZBVzrr 3lJ5ev1/EIinJc0SDPpTlZ/0/Kys75EVxfv3qe6SZN4rPzktKYtZHluj8o5OVKmT1Jmojj1lJ8x fLzGlSeHhbMQ5yVoziGsc4DfAS6S+JHn5V3Wj9ipeTn/4XCWhCpW+jaCMExMaxeQZ4nv1Fbc6Oc AG286iIUpyOvBWaGkMSkWUstnLpRL7eJyt1ayqTGI08i6Bu6ue4U1Uddllg4tfMYwf/OFPqEC8n Sy49vIvrNGWgB3TGxxZZJ+B/QowXRsA3ahkC6COw/osaWKBYONibogGulJHW8nUWGfJKaaBVvDQ 7oo6uNV8nvY3zQvRyMbZohyFj12d+xp5ZEKWJwSxTBMLPKVyr5kGWqGQqHzWAjDSZQ5nqnCWdQi VQQYalzn2qIujPX5Vr8jnB5R8eKBzossMerqKSufurUJvmSrl9fVcAbSYAuIfyiwidL7Ch6RR7/ GF8l4ZitHrqTUhVPrDzG/pnd0yRscrgR+5qgm1Onp4i81DCO6gEeuCVfK5MFcJu4d0duRtfP2Ed RAuLGcTAvIXSrKarVeoWt5mVL5guWWG9PRVhm00/N+qyD3A7FVaKvuyJ6pCqkeAER4Iqw7MxeJU KQaaHXDPR23BiAp5RpPwlag== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Avoid describing the USB+DP lane_mux_sel logic twice by introducing a helper function to reduce code duplication. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 81 +++++++++++++++------------= ---- 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 402f3cafcf0a..46ab9fb45ca4 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -584,6 +584,42 @@ static void rk_udphy_mode_set(struct rk_udphy *udphy, = u8 mode) udphy->mode =3D mode; } =20 +static void rk_udphy_set_typec_state(struct rk_udphy *udphy, unsigned long= state) +{ + u8 mode; + + switch (state) { + case TYPEC_DP_STATE_C: + case TYPEC_DP_STATE_E: + udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; + mode =3D UDPHY_MODE_DP; + udphy->dp_lanes =3D 4; + break; + + case TYPEC_DP_STATE_D: + default: + if (udphy->flip) { + udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_USB; + udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_USB; + } else { + udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_USB; + udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_USB; + udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; + udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; + } + mode =3D UDPHY_MODE_DP_USB; + udphy->dp_lanes =3D 2; + break; + } + + rk_udphy_mode_set(udphy, mode); +} + static void rk_udphy_set_typec_default_mapping(struct rk_udphy *udphy) { if (udphy->flip) { @@ -591,10 +627,6 @@ static void rk_udphy_set_typec_default_mapping(struct = rk_udphy *udphy) udphy->dp_lane_sel[1] =3D 1; udphy->dp_lane_sel[2] =3D 3; udphy->dp_lane_sel[3] =3D 2; - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_USB; udphy->dp_aux_dout_sel =3D PHY_AUX_DP_DATA_POL_INVERT; udphy->dp_aux_din_sel =3D PHY_AUX_DP_DATA_POL_INVERT; gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 1); @@ -604,18 +636,14 @@ static void rk_udphy_set_typec_default_mapping(struct= rk_udphy *udphy) udphy->dp_lane_sel[1] =3D 3; udphy->dp_lane_sel[2] =3D 1; udphy->dp_lane_sel[3] =3D 0; - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; udphy->dp_aux_dout_sel =3D PHY_AUX_DP_DATA_POL_NORMAL; udphy->dp_aux_din_sel =3D PHY_AUX_DP_DATA_POL_NORMAL; gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 0); gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 1); } =20 - rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB); - udphy->dp_lanes =3D 2; + /* default to USB3 + DP as 4 lane USB is not supported */ + rk_udphy_set_typec_state(udphy, TYPEC_DP_STATE_D); } =20 static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw, @@ -1293,7 +1321,6 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, struct typec_mux_state *state) { struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); - u8 mode; =20 /* * Ignore mux events not involving DP AltMode, because @@ -1305,38 +1332,10 @@ static int rk_udphy_typec_mux_set(struct typec_mux_= dev *mux, =20 mutex_lock(&udphy->mutex); =20 - switch (state->mode) { - case TYPEC_DP_STATE_C: - case TYPEC_DP_STATE_E: - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; - mode =3D UDPHY_MODE_DP; - udphy->dp_lanes =3D 4; - break; - - case TYPEC_DP_STATE_D: - default: - if (udphy->flip) { - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_USB; - } else { - udphy->lane_mux_sel[0] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[1] =3D PHY_LANE_MUX_USB; - udphy->lane_mux_sel[2] =3D PHY_LANE_MUX_DP; - udphy->lane_mux_sel[3] =3D PHY_LANE_MUX_DP; - } - mode =3D UDPHY_MODE_DP_USB; - udphy->dp_lanes =3D 2; - break; - } - - rk_udphy_mode_set(udphy, mode); + rk_udphy_set_typec_state(udphy, state->mode); =20 mutex_unlock(&udphy->mutex); + return 0; } =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 E9B913B6347; Fri, 19 Jun 2026 15:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; cv=none; b=I1BisD/Y0G9mYvu8R0/EkO8YknrRhs4c8/V2XXdEuXGQK6CyCPgFlaKBrDClM2rljhMrMb6jsJCQxQY9yayFRRDxz3iHN0JRU6G0B/glTADYMzIKsg4XbJT63LQ4QsXaOPEpwI/hETCSZBnAJyTPX2pDvNuOG2vVP8BW5pioVIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; c=relaxed/simple; bh=SZHKCD6y5r+cx+c5g5/FSRiXojtd5c2Eb5tJY0RbcM8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LLdtvvuglSmNTKJyc/CAFjIH4XhbjONYnu84zDmNqZEMG4nRrPBUJSVhFxaIdvSEzFkAfVB6hBkC2+YC/v3GhGfjq2/tCpQFevuQOkc+LZXTxv811b6pBgj4If1NWa+Gk5Uqb1FzEytnR4flfRKaDvLKwRP9tg3CktSrpco0qWE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=nx66ztvL; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="nx66ztvL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=SZHKCD6y5r+cx+c5g5/FSRiXojtd5c2Eb5tJY0RbcM8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=nx66ztvLKuWzszBjXiaYzOTBlgBzyYbMjeKhEezdHmllz0cW/oQMqlku2vr08FC2H k6pU4Zhdhg33Au2zh+u3nqUpgHKMzAZZGM+o8s38LUqTL8szbLmK0jW3k0PTl4H/Bb zUsj/LWNBOCi+eSgHgZtIGBJsF4us6vqPeM/h8lnqx+MtFBFtJ077I5ehTnqO1YGj2 bBeS8M1Vcyd5jinWrflmU7r+laUZmikV2YT8/mfCIakrNxwKKm2sMCxIsU9P5uC7MJ osFw4t+NeeKK9tHaG+khVRa9rYWXZ0kiwF+t99i7z2EQD9lAWSHLi7xFg7luYb9iCf +jNOz9wBu8VlQ== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id A376C17E15C4; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id A5838480065; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:11 +0200 Subject: [PATCH v6 20/23] phy: rockchip: usbdp: Use guard functions for mutex Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-20-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4412; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=SZHKCD6y5r+cx+c5g5/FSRiXojtd5c2Eb5tJY0RbcM8=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDldO0jN/QyEvdTaJxvrbX/mDWh/AASTv 2GT/nq57twASokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaA1wP/izCSvHu0m1xVMZLBc3nifHCs2kU7aq9fIhm1F5LL7QJiF5TEo4209/sLgOmOowb87U ppRhn0OIgxDyTGnQR/kItHbKmcDutjbHoLLt1yxqCJSDM9NggZFtXzysVZobtm/wicasA3rEHE9 VS6sAW0wzdbvI8zsd8xufRMAXXIAvJPw/2kTGSb4FfaC33N3wDvre0Fj8DzeJBTW4ekX81hlGMZ +PvwNHg8qCLXz5u5FEfaYKHcyuTN3NI30mMU78DgP/Unv/G2YHQPzBZUkhQkh04I+cXxYNiwUfF KGl9liFB63IOmaszN43yurJczNlaloLv6rqATHO9Eioc8Jwuq4+72rpRQRROUvtDIBp2yyhAHA1 DzhH8Ni7uZwWs3+9RYd/AftbvKVxoRg9FSCNtnoBUoRa96qWbEk38pBwurP7xU/yVy5bmuKFqs6 UgmZU63N06kVr8I/y47/78q6sJOS4s2TMpTc5oRHcRbpG9+PVcUNwi7kSAQAsD79QvuC+Bb7UYF hCWn1UWlLqrgoMdY2kMS83TVPcQWKVc5+eLOGFs+al1+qRGoluwaQpBbsyJsScJlHOiE6QeVIsp gLVBRTMiZ4QcddWcanMm1b/JQzIBwyWyo19rFGn4jAVNjMsqnQPS/SeV9y6zM6O/eSc+FQL7IVO yKJD89yH2hhZPXTtFn2onWA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Convert the driver to use guard functions for mutex handling as a small cleanup. There is a small functional change in the DP PHY power up function, which no longer sleeps if the internal powerup code returns an error. This is not a problem as the sleep is only relevant for successful power-up. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 54 +++++++++++++--------------= ---- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 46ab9fb45ca4..81aae3bc5747 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -652,14 +653,15 @@ static int rk_udphy_orien_sw_set(struct typec_switch_= dev *sw, struct rk_udphy *udphy =3D typec_switch_get_drvdata(sw); bool flipped =3D orien =3D=3D TYPEC_ORIENTATION_REVERSE; =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); =20 if (orien =3D=3D TYPEC_ORIENTATION_NONE) { gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 0); gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 0); /* unattached */ rk_udphy_usb_bvalid_enable(udphy, false); - goto unlock_ret; + + return 0; } =20 if (udphy->flip !=3D flipped) @@ -669,8 +671,6 @@ static int rk_udphy_orien_sw_set(struct typec_switch_de= v *sw, rk_udphy_set_typec_default_mapping(udphy); rk_udphy_usb_bvalid_enable(udphy, true); =20 -unlock_ret: - mutex_unlock(&udphy->mutex); return 0; } =20 @@ -1044,26 +1044,25 @@ static int rk_udphy_dp_phy_power_on(struct phy *phy) struct rk_udphy *udphy =3D phy_get_drvdata(phy); int ret; =20 - mutex_lock(&udphy->mutex); + scoped_guard(mutex, &udphy->mutex) { + phy_set_bus_width(phy, udphy->dp_lanes); =20 - phy_set_bus_width(phy, udphy->dp_lanes); - - ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_DP); - if (ret) - goto unlock; + ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_DP); + if (ret) + return ret; =20 - rk_udphy_dp_lane_enable(udphy, udphy->dp_lanes); + rk_udphy_dp_lane_enable(udphy, udphy->dp_lanes); =20 - rk_udphy_dp_lane_select(udphy); + rk_udphy_dp_lane_select(udphy); + } =20 -unlock: - mutex_unlock(&udphy->mutex); /* * If data send by aux channel too fast after phy power on, * the aux may be not ready which will cause aux error. Adding * delay to avoid this issue. */ usleep_range(10000, 11000); + return ret; } =20 @@ -1071,10 +1070,10 @@ static int rk_udphy_dp_phy_power_off(struct phy *ph= y) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); + rk_udphy_dp_lane_enable(udphy, 0); rk_udphy_power_off(udphy, UDPHY_MODE_DP); - mutex_unlock(&udphy->mutex); =20 return 0; } @@ -1279,35 +1278,30 @@ static const struct phy_ops rk_udphy_dp_phy_ops =3D= { static int rk_udphy_usb3_phy_init(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); - int ret =3D 0; =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); + /* DP only or high-speed, disable U3 port */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) { rk_udphy_u3_port_disable(udphy, true); - goto unlock; + return 0; } =20 - ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_USB); - -unlock: - mutex_unlock(&udphy->mutex); - return ret; + return rk_udphy_power_on(udphy, UDPHY_MODE_USB); } =20 static int rk_udphy_usb3_phy_exit(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); + /* DP only or high-speed */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) - goto unlock; + return 0; =20 rk_udphy_power_off(udphy, UDPHY_MODE_USB); =20 -unlock: - mutex_unlock(&udphy->mutex); return 0; } =20 @@ -1330,12 +1324,10 @@ static int rk_udphy_typec_mux_set(struct typec_mux_= dev *mux, if (!state->alt || state->alt->svid !=3D USB_TYPEC_DP_SID) return 0; =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); =20 rk_udphy_set_typec_state(udphy, state->mode); =20 - mutex_unlock(&udphy->mutex); - return 0; } =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 2433B3B27F0; Fri, 19 Jun 2026 15:34:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781883266; cv=none; b=nCWhtHDEDeMnxoVhhQcJFiz+4wbV8O80zW89cPoZRa6OrxK9HTjNRhksyA9jgDIStShSOBF2C/eep0xP6dFmeTAxZNrnMui+z0Wg+ljhbJNHheStMtHgCOQCj84/Qqzn5+qyVu2cOIzGsaccu59nqPsImCv925NXwWwesSmHlJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781883266; c=relaxed/simple; bh=Z/LdeXSUssiy8jEYkeBPrfksk8Z5qtIxmZ8LzHUPTgU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZB3+58ax08ZNLrQx6LkSo3+gp10rkKjDdeHV6mj68Twc9GmoV3A1myuNSxOF8kAyEQWIZcDmyVKckHeo2eSKrBinGE2odNWyh92mOp+w8Zgu7Ira57JY6MZJDrBnrLVzBHV01m5Xxr1nu0TO8w91E0cBwf5aar57pV3bPOHl7YU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=W/H9pP80; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="W/H9pP80" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781883263; bh=Z/LdeXSUssiy8jEYkeBPrfksk8Z5qtIxmZ8LzHUPTgU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=W/H9pP80cmRZz/arTVG5OlSgAJQvhH8L84XneURugJy4ziYcINkBIGe+LWnYJThqE gFD1MJIPELbuqHpXtZ1MM9t1nOcMHqVzeWkxgCfCtskt8bQLCyTxo68kbe36FILbwW o+1acIFPRJflWp+AwxLzNxUkTDLwyu6D1t+uKCTAY/tbEXTdUP/+bDc5I3kuarXWb+ 7yVdFPt6+L45MvrvfwhXJh6VU+24+hwji7BJC7XjvSGiEwiTiooUClRAquoKQDpXb9 pIjjF/lhke3vbEoyOCLzxpfyvNP5C19KJCKWKbav5oG9P4YKQFTdpnuOcdMTP3Cz5k juc1hAZZx9r9g== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7963717E0CD4; Fri, 19 Jun 2026 17:34:23 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id A6F5B480066; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:12 +0200 Subject: [PATCH v6 21/23] phy: rockchip: usbdp: Support going from DP-only mode to USB mode Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-21-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3002; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=Z/LdeXSUssiy8jEYkeBPrfksk8Z5qtIxmZ8LzHUPTgU=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDnpPon/ct8GoOHH5a3CZZXhiPN1GuEQH j7lVODRfYvseIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaVncP/jwKBPqMOXxTuIixNy6Qcm4mw1QpC2qkP44wYlaTlHC+lTWpY+NoRerIvMkboyYPx1f XcD1rI6nk5i+JRtG46qY6mkL+gX9vJxV05H/2y86nVTEkTQEuS0IMntBfxQ8FQMbk3feEWblrqI HGtawGdU2MRbLlSJyifeKzUJldwAbTyp8NyeqWaBSNtsMnybplw7VoWZXj/gd5U/yuJcADbgr6E SsjZE09qXDF6ZRVtUuyQgD+5n5inIIAdqetEtDJulcndCspQBT5gRDhMoak4bGdOIjaSZn7zTic teosHaK7/ps2PA+anGOMBleqQcvbqSyV5O/vJ/SyaBBCH+7t5DW/KpnxfetvBmwFZNy53vgX+tK If8y5qND45IDsVJMs8r/jsvyBjBk5e1y0sxBBmdVrUcSQqKzXwuxlHLLwnY3AtBQQyXipwO/Xig WugF1CUELpYi3Da37iCG0NTciWe6KrztTL0fXW6yD7Dac/sJmOCxVXmEs0FkOv9lZ241K6TuEOq W3goWFcdPE4bgd0xAk258Mk7BiI2Xe6yWoXZlvSDbN+d00/soA4JQxRtCRXPa+4hqzmCFTJPKLX 23m6tNh27OAiVN4SCFuXtsOYD9SU03Uzy1D5+QLXSuUdMJ3OLJN7uEUBUX9OOwn0Zy2nOJ7zpx3 EI5E7JfGTZNmPKLstTw43Kg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A When a USB-C adapter, which maps all Superspeed lanes to DP is plugged in, the USB support is disabled in the PHY. When the adapter is unplugged and a different adapter with USB functionality is plugged in afterwards, USB functionality is not restored as the USB controller keeps the PHY enabled for the entire time. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 29 +++++++++++++++++++++++++++= +- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 81aae3bc5747..7f26b74cb515 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -178,6 +178,7 @@ struct rk_udphy { =20 /* utilized for USB */ bool hs; /* flag for high-speed */ + bool usb_in_use; =20 /* utilized for DP */ struct gpio_desc *sbu1_dc_gpio; @@ -1015,6 +1016,10 @@ static int rk_udphy_power_on(struct rk_udphy *udphy,= u8 mode) ret =3D rk_udphy_init(udphy); if (ret) return ret; + + if (udphy->mode & UDPHY_MODE_USB) + rk_udphy_u3_port_disable(udphy, false); + udphy->phy_needs_reinit =3D false; } =20 @@ -1278,6 +1283,7 @@ static const struct phy_ops rk_udphy_dp_phy_ops =3D { static int rk_udphy_usb3_phy_init(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); + int ret; =20 guard(mutex)(&udphy->mutex); =20 @@ -1287,7 +1293,13 @@ static int rk_udphy_usb3_phy_init(struct phy *phy) return 0; } =20 - return rk_udphy_power_on(udphy, UDPHY_MODE_USB); + ret =3D rk_udphy_power_on(udphy, UDPHY_MODE_USB); + if (ret) + return ret; + + udphy->usb_in_use =3D true; + + return 0; } =20 static int rk_udphy_usb3_phy_exit(struct phy *phy) @@ -1296,6 +1308,8 @@ static int rk_udphy_usb3_phy_exit(struct phy *phy) =20 guard(mutex)(&udphy->mutex); =20 + udphy->usb_in_use =3D false; + /* DP only or high-speed */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) return 0; @@ -1315,6 +1329,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux_de= v *mux, struct typec_mux_state *state) { struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); + u8 old_mode; =20 /* * Ignore mux events not involving DP AltMode, because @@ -1326,8 +1341,20 @@ static int rk_udphy_typec_mux_set(struct typec_mux_d= ev *mux, =20 guard(mutex)(&udphy->mutex); =20 + old_mode =3D udphy->mode; + rk_udphy_set_typec_state(udphy, state->mode); =20 + /* + * If the new mode includes USB but the old one didn't (e.g. leaving + * DP-only), and the USB PHY was already initialized by the USB + * controller, we need to power on the USB side now since no + * subsequent phy_init call will come from the controller. + */ + if ((udphy->mode & UDPHY_MODE_USB) && !(old_mode & UDPHY_MODE_USB) && + udphy->usb_in_use && !udphy->hs) + return rk_udphy_power_on(udphy, UDPHY_MODE_USB); + return 0; } =20 --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 E668F3B27DD; Fri, 19 Jun 2026 15:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; cv=none; b=PXb2RWhlbqpIqm1xLV5CTTXv2jhnEujFNE9SyyOBE/R039yZYIJi3rPTtYhZAqV2OXXtjpuMn/XXQCIyT8+GJrXmq8TKPr323/zba3kUBCIirhidauJHNwlxUI9y756VRDkp2szItzDcz4Qh1eiavus/BUr/XP+t03ZD6BSdYgI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882948; c=relaxed/simple; bh=7DI+RHmwmwOKQNaB2HylLylJp2KES9vdbb2FVIqpRQA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RhbBrhQ2puWWDDiIVg6mElitVIma34vWnEcLuTCm9Q762VLF4Fgh9gchAmCIqkasDGXI3eUVXR7VEXabZ8r9at+1XLeHLeq69DkVrZIVab3UDr7s2abjTPEvGocRrRwZHSqadGmwcZRSrrR8zZwpncvvQdofjEI1fYWHGi8eEHY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Assn3H5R; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Assn3H5R" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882938; bh=7DI+RHmwmwOKQNaB2HylLylJp2KES9vdbb2FVIqpRQA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Assn3H5RNmWsDVeDWZhDxjkL/b7okZO6ORPt1hkZ6fBlTeGGSti4sc7qesE0uCaav d9bYnraJS9wRRj/6d01R9m5Hcw7VPo1NDo4RzSjguOKWmP/Qwcags86H6c60W6nBmG J9YYDeCxWvml8xFDaa/gtOcJi3qZtXwr8ZPlCuh2AcGRO8nmGzxEmwcmbEzjUnllcf xBNwIevZNDFT9U0bDOh5DzhqCkEDmWEUARyzhgFd/gD8hjFL96PSTbN1EWh/53hq6W r9P/+XjH66Gk5jX0GenJhz+p7x3l1qNjnXNXqCYAlKw3uEElVapiCdvPDDWOEd/mji C62QRNlBp44FA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id AE29F17E15CF; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id A8B40480067; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:13 +0200 Subject: [PATCH v6 22/23] phy: rockchip: usbdp: Hold mutex in DP PHY configure Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-22-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel , Sashiko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1341; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=7DI+RHmwmwOKQNaB2HylLylJp2KES9vdbb2FVIqpRQA=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDkcnB5awIvA+Y4xIbbpdL4bx76UX4zdy Fvv8TtYcJEd2IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qavrUP/Ref6911SkrhHGixV4ezS+koaxNitDebclE+VibzFGQJa53zLiDH31PRdWEeBbcs1GL 7TSpzXjagmKoqocRVzdQ6BUjDJJlnOEH8JgWT4M0JWksJXogkYYvMAfLqVldBO5misbX77YA1bh 3iKJyQPqBcrTXNWd/rW8HTmeS0rSu8/YivLxV4THDBMPal5DXBV3bUCnOLsbvzw5KeLFwnmgzQb 3+4GtlI00CdojicTsllYwGBiTp39v/1/GyXUqbSkzGK/guetjOOvOXbBj6P8RoqeKWHB4DIi/iR UoxignbPvKbNmoE0YWoExrXuhp4gYsvRvPEEcaGRsyDr4t8B915kaE3cuARE0zIuDY9cI8IrTfp kCJ15ka6DL/zBRiwvEQMqQqMFmZk8aGuUvMd3Z0dEOPrlsv8/ij/AwI7rB32hEJZ593u04uslq5 0rZRR+ETL5cnMileaUQg8+LSck01ODC1SuMI+IZF5YguxU52o4caoTqz8guqA1DvQJWnMMFK3OV 47u63pRvrkdMs6fd8VpxsblqANVAXqxWNLpTSvyYOXRp63yYdaoq+prFKJG3lbDOuqotXm6bp9r 3/hMq0QZxd8nKet5r5XwhDi/2gceiT0lvOiV/KxRFeMsypc80iQ+HC6bpFa22dwchXh7JcWwCYD yPhTUzkuLvDsPJOFsKXgvfQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A rk_udphy_dp_phy_configure() accesses some variables from the struct rk_udphy, which are updated independently from the USB-C framework. The USB-C mux/orientation switch functions already hold a mutex to ensure mutual exclusive access to the struct rk_udphy states, so simply hold the same one in the DP PHY configuration function. Reproducing problems due to this on real hardware would be really hard, but could be possible when quickly re-connecting the USB-C connector. Fixes: 2f70bbddeb45 ("phy: rockchip: add usbdp combo phy driver") Reported-by: Sashiko Closes: https://lore.kernel.org/linux-phy/20260612164627.23D391F000E9@smtp.= kernel.org/ Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 7f26b74cb515..8c59c50f207e 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1183,6 +1183,8 @@ static int rk_udphy_dp_phy_configure(struct phy *phy, u32 i, val, lane; int ret; =20 + guard(mutex)(&udphy->mutex); + if (dp->set_rate) { ret =3D rk_udphy_dp_phy_verify_link_rate(udphy, dp); if (ret) --=20 2.53.0 From nobody Sat Jun 20 19:59:25 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 E7D7D3B42F6; Fri, 19 Jun 2026 15:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882947; cv=none; b=q+Udl7TlPihkEZ1yrsslq7pAZetfFuRm2VJHmTEX4YTpj5XkcVyhSs8Ncbdkl/UsdYAGByG2XqtFtn1Jvf2R/tAs6WsiEJWwvjkQvGjiP0UkNZ6clETszZdX2ChAdmTYnDFjXlywml6v8vMO/e6EBda7u10f1GMxpMRCtTv8qPY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781882947; c=relaxed/simple; bh=fGB8zX6Zfp+M6Zw2pNizcuxxMV1dwDdIVya+UcR/UWs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SXfsq8G18irqIdGe07MHgHDSltrWTHjj+kC/34BF+EUd47vOi4+z8yXfROwp5Dy7DZnjLyCUdwK6rqXR3bqlnXWirbx9qsqr2+iJRxFoCC/GaIQL1hdrCOgky40NxsBPpiiAhAC/sjS5U+edY2UtPnw5Z/ZO7uCdBATxFKyCmgA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=cqqKC5u4; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="cqqKC5u4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1781882939; bh=fGB8zX6Zfp+M6Zw2pNizcuxxMV1dwDdIVya+UcR/UWs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=cqqKC5u4L7yn/VNNiidGhgTp8AuupLzSGNc3cv7+RYkaDlXlLg0k0ID0nOwbYC3cZ m4SEPXy7j/haBEclBlI0z6jzyusE/uYHqucaVud4GpJNVOqQzZ9C6GPpDKEZMMm7bm JNGa0fu8+w6edua1/LiV06/PZP6PtmCgkeWazfxfOReXEohd0hqc8VqvOH4O0AX/1v X0sNoyVG/61YgEeS3XC9np8DFyPaalISpUXlOl4SYZNcbvpbTVentF0JPhStsm8RCe 8fmkpOZmHvbqZgv+K3Ew38vC/XNJj433Ek6tm/jA69TCacrO/i0im/XmKt0xt59jrd JcLNpz3tORqYA== Received: from jupiter.universe (unknown [100.64.1.62]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id B9C3217E15D0; Fri, 19 Jun 2026 17:28:58 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id AA50D480068; Fri, 19 Jun 2026 17:28:57 +0200 (CEST) From: Sebastian Reichel Date: Fri, 19 Jun 2026 17:29:14 +0200 Subject: [PATCH v6 23/23] phy: rockchip: usbdp: Add some extra debug messages Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260619-rockchip-usbdp-cleanup-v6-23-3bb1f54b3f35@collabora.com> References: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> In-Reply-To: <20260619-rockchip-usbdp-cleanup-v6-0-3bb1f54b3f35@collabora.com> To: Vinod Koul , Neil Armstrong , Heiko Stuebner , Frank Wang , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Andy Yan , Dmitry Baryshkov , Yubing Zhang , Alexey Charkov , linux-phy@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, devicetree@vger.kernel.org, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2060; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=fGB8zX6Zfp+M6Zw2pNizcuxxMV1dwDdIVya+UcR/UWs=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGo1YDlwHmGpzQsaGGZ+39APMlgb4ew9c/ad8 P8oCEIriDj5UIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJqNWA5AAoJENju1/PI O/qaEykP/0Jz31zIyMfVKaYYsJVsYofuD95kkwNxLBsk/gGuycjiV3oXe35UC3cTPFbibHncxxj NeSk8HrkLUvh4DjBPIIPMKeRdwQY6ASQqqNfVXBmjuVdTqzw+AOW/1IRrBgLrB+XP9+rbfb7ES4 cjmOI9axtyvi8eEIM5Q2gfTPHxOcRPLgvYQb/hyS9T07dSGs1HAj66jlo4QpG2Cvyh69xXluf90 3wRx63i01sdp9wjKCuy9etnS7xpscSQwclVamql3/sYu2tjks6HxileC8xu/G8v172BLz+lQ9w3 jas/OgFI2CJHMp6963wfx/NzW0Vsv+yKnWc1usAFhnoS1aVZh984VdYHhN6qdQLD29FSMXYRXRr Ey9q2x9WBMoQV5s+IJ3E3EIPUl14OQWL9wqGoTrQaYeKg/p47hlPonr6M+/RbdM+MccN0clFyQb 4u05kZfGrQgT6FNI2p3d56QV3zZV9Hl6hHk3ov7eDVTXfrbDX6I4wL0N22LoO5SFHOrqynB1Uyh 1/yguZ6GaUhQcLWVNyLyC0qFbUSBvGdxnP1RRk92iXp1+6TGYM/lGq2+xEj6+5ArExgtncioHnR oWVjcKQ4MOkxryD2Xm8lZdnBeJxsFhgIXObkeriOOhMnc71gZEPYAD/iLMmiFE/Qj0rQdluWATE jpr4VDqEACgUq62tGmIQnsg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A It's useful to log PHY reinit to ease debugging issues around USB-C hotplugging. Signed-off-by: Sebastian Reichel --- drivers/phy/rockchip/phy-rockchip-usbdp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 8c59c50f207e..6e80dfeee0e5 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -491,6 +492,8 @@ static void rk_udphy_u3_port_disable(struct rk_udphy *u= dphy, u8 disable) const struct rk_udphy_cfg *cfg =3D udphy->cfgs; const struct rk_udphy_grf_reg *preg; =20 + dev_dbg(udphy->dev, "USB3 port %s\n", str_on_off(!disable)); + preg =3D udphy->id ? &cfg->grfcfg.usb3otg1_cfg : &cfg->grfcfg.usb3otg0_cf= g; rk_udphy_grfreg_write(udphy->usbgrf, preg, disable); } @@ -784,6 +787,10 @@ static int rk_udphy_init(struct rk_udphy *udphy) const struct rk_udphy_cfg *cfg =3D udphy->cfgs; int ret; =20 + dev_dbg(udphy->dev, "(re-)init PHY with USB=3D%s and DP=3D%s\n", + str_enabled_disabled(udphy->mode & UDPHY_MODE_USB), + str_enabled_disabled(udphy->mode & UDPHY_MODE_DP)); + rk_udphy_reset_assert_all(udphy); usleep_range(10000, 11000); =20 @@ -854,6 +861,8 @@ static int rk_udphy_setup(struct rk_udphy *udphy) { int ret; =20 + dev_dbg(udphy->dev, "enable PHY\n"); + ret =3D clk_bulk_prepare_enable(udphy->num_clks, udphy->clks); if (ret) { dev_err(udphy->dev, "failed to enable clk\n"); @@ -872,6 +881,7 @@ static int rk_udphy_setup(struct rk_udphy *udphy) =20 static void rk_udphy_disable(struct rk_udphy *udphy) { + dev_dbg(udphy->dev, "disable PHY\n"); clk_bulk_disable_unprepare(udphy->num_clks, udphy->clks); rk_udphy_reset_assert_all(udphy); } --=20 2.53.0