From nobody Thu Jun 11 08:16:31 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 A5BB042E000; Tue, 28 Apr 2026 16:14: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=1777392845; cv=none; b=giLunZu3QSfrHi1yGXHV1Hzqq9lfK+vTgy+aOWLUJ5j1Kp4mv9d1Ju919gqMPz3wH5RWhwidXuFhIoSj/5dTt8bc6JpQHaglkwyM/k6WGAvyGakO8xj6g2u8MLUa25w8MD2BGmHGELDfCskoypcqkNysjUDme+sqGrr1jmoJQM8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392845; c=relaxed/simple; bh=ZjzLsdPJD79HFPyUgKrqEvktCEnIt410bUBn0SzDAG0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uZbIMOerBkvcU53z59f0uTdZH8Z1iqKYpkqWaXEhPQRFIaYgtYnSraZDTTCOK7PB/vd39pBn55FL/JtnylJ7UsFwshzpdXkNkYx1J9KjYEMPte0A7FxXUGOVMpyrz/Na2zDguz0sz79bmT632Flvq9kfdTD8oOYMU0kYMo3vwRE= 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=SAvdxOSK; 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="SAvdxOSK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392841; bh=ZjzLsdPJD79HFPyUgKrqEvktCEnIt410bUBn0SzDAG0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=SAvdxOSK3lY36U6FdIKtJlJAk9Ct7CxzQ0TCgAIDYfSkFWSVHKDPBo6WPRyw1lS9j S5+SNaBIky7/gloDjixH6N0qCwcl8CiJc64D+6ZeMP1ToQNNlkb+Kl64gTH8dhLqoY EDybd8QxegFpo0zxV80UwzaadhlcI3sNhWTcXK/XOHpbV54doQLKatMRVWk+7TFwS6 AjSqtEPFoMjGsIpgTh2hOxmZKHB4CafzNEYiVPyoOkvEngHvcTlUMNTCM7uOLX+rNJ w3Aqh64jWfnHdvw87k/tRnRKmrBF8Pb4+zoxmZzip5ICpQtDyo0f0+8WGO9e9Bgshg ee/Zdz3a6P4/g== 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 C7A5817E1428; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 7FCD8480028; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:40 +0200 Subject: [PATCH v4 01/16] 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: <20260428-rockchip-usbdp-cleanup-v4-1-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=2240; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=ZjzLsdPJD79HFPyUgKrqEvktCEnIt410bUBn0SzDAG0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MiW06eF2CJ3YxlsW4XbRigkSDGw5Wbt2 Seox4GHVkt9OokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzIAAoJENju1/PI O/qaN0MP/1IgQDrZ4gaz6GsDh0Fuj+WpZJLRmOqaYHg78eAD+OtsD/JEoX13NS660PzV+qgGspS QmcICbjUJZlHo4LUBjy9OtV+0Q+03nEdpLn2KNNLsAM8v4ViyyoIlgw/U19Wk0SC3zXLC4aSTTH MvwfCLhYxQQ5N7qL9rXAaCYCL9sWL9JBE8w9vl/lf+MZp4ezYN+1jhovjHGnEm0uDnDEtsylp06 LrPcthUFc73xs01d5MyegVS9McSi6YcN9g+99514ryLBDKfHYpKA/rXfu0QslPqN4BsUXuUgaMV bLxUKTiqdXt7CqNgbaJarJ0yA7V7T8vCzYfnkWqLQn3v42EK8sHy1T8kszFE+/f8y2bnRme0Frv BWc0bXkgyKyC9e2WuTYJ2i4au/97RbnVLSFq9FaP+TYzy2JOaUVTlnpP3NXknasN21q5o2noBmQ JQgcTD+4ndUHEMMmgrYzGxmFnhN+IIHFVcbxDcNmBMbHouUaKvExUrz5w7GzAr/HiKXThPVpdF7 4+Tm0QH/pR8YIDuHKzYWCLREC4U7Bb5Q1n947mehzkvI+jyx2bNgeuyQVpyEIl3o/M+q6qBxQPy Wv7SXuicO3tQyGzZyKwKE5K//uC3A4anMDdrcl0nZ4wGmzz9MnP2vFOBNNnOuvrvH3H2L7kmJ42 Pa/cY4ee1CC/RuJOTU0837Q== 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. Signed-off-by: Sebastian Reichel Reviewed-by: Rob Herring (Arm) --- .../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 Thu Jun 11 08:16:31 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 A5CBE477E34; Tue, 28 Apr 2026 16:14: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=1777392846; cv=none; b=suuMBhfpm5QZUY2GA9Zzrlm3KwhEWNLvxuAN4Uvt0QIqpguvv15fw5vaHNMOcNMtpeNhHTHbIupZ1tnmVMQQVUmSvW2fR1pQ+d3502u39Xk3W4hqhmnXqFxCA5caxUJbLHAK+Cp9dolcy+6zIh6bkXCBp5SF3+Ylg6r/4LEQ88I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392846; c=relaxed/simple; bh=M9YKeB04nDfzPlkO52PaWO1g/F/RekD+6nPgWOS08C0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tdot3A3diEpKCf8T/UXJlOkXYXKVu2c9dbwX1Z8sAdixz+3EbJjzRtsEDqI6plfrrdr6YcBNpLmsIaYhfpHLo01HSxwgUdmYpy9PVJRfb+te+bgFj+uf+9UuezPVlSexTvqko5Awpkun1ESM+HdUw4GNWx9TlOraqCOobHK/1no= 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=KWpksf2K; 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="KWpksf2K" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=M9YKeB04nDfzPlkO52PaWO1g/F/RekD+6nPgWOS08C0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KWpksf2KZ4SBi2yZ9tImnK8ZI81DHlN51odpi/gb6qzCx+p9EcctztOG2GKYhNx4p P9v+WtsuBboh+SN51GzKJjbnsMjeaypJMk6629BdaNZ5KRHbwKjub2jTZ2qfJjK2Yt 8F2mAzSboR1mg5wRGqEVTjq56IZxyMCcjtTr9OJ36LAc9pQB/iSFU5OnRac01ObbDm n01HySNFeh1g08jPzVTMuGChQ3B8fYmlctN5mt0qa/LKMT5DZXrY3PUOmbZuwXNneO og8g/tE05FxO0sgo9MaHxHuFIx+p7TRD2N1dFEnlT3OD206t1tpE8Hcg+j59s2yRol LaTwfYKUEetXA== 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 CA71717E1525; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 814FE480030; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:41 +0200 Subject: [PATCH v4 02/16] phy: rockchip: usbdp: Do not loose 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: <20260428-rockchip-usbdp-cleanup-v4-2-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1343; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=M9YKeB04nDfzPlkO52PaWO1g/F/RekD+6nPgWOS08C0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3Mh36ZC3c70C8q8aNKeGsDsvFKC7J2esL VRxgnTKfQt7hIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzIAAoJENju1/PI O/qaLcwQAJkg3DjxruwxHG6upEbB+j/DWH3OkQuL3+/Km3QwtdTODAk0db1Sf7lUDc/3ig74TME ZmNTQ3hNNQZXLcfjif7G7UBQqST0fV0E4QFjFPiz09xp1sCzrBoMs7evQXIxKuFVZtUyOkt/cip EzZWfH50mju4KJhrilD4VafQG6ANohqS4/yJpbQJ+5CSCXBxOb/t4pFRFsWWCQRo2Uq82JJAAPD Lu/IGvoFZ66gW1r/KE0Y8vZQkcv5USlUb5rLXShoUGRWJ3D0uR+RTSbdZqXqXVrX7SQLVqeZIru YSyyyDbFuRvgyeQEVgrQs8htKw/Hibb62mzhTITZowRXHDbnGsNdWUce8jhn08o/XTXw/xAsUeO ebhD+3iEFFgw6bbEaZtdE1W/lqJw0vQFuCLoBj2dAShr1msAaCxVxhXWQb4uPzopeTpl1pvICv8 /BsKgundALGouGzK323jSWl90s45ATVjkSrQ+zYrTRiCfgWXw+wjCo82SCHA6V1EEy+4bgc+Alo q1w1PfMjiJS5C/wZ9vJr8gP05t6eWmKj/hPdSB87vWy+KRMOr2hTmw7VQKcBLOHlbA2q1H5fFeo OFRvcfLG21NZ4OmBzIV+orfiUzovIq1GO/dj2qtHV0dWZvmFTGxZYJjDGj8JsjYmYmKAJ7Uktuf IY4zyiG3OIIwbHz5VU2Uthw== 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 ist 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. 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 fba35510d88c..744cc7c642f4 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1009,7 +1009,6 @@ static int rk_udphy_power_on(struct rk_udphy *udphy, = u8 mode) rk_udphy_u3_port_disable(udphy, false); } else if (udphy->mode_change) { udphy->mode_change =3D false; - 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 Thu Jun 11 08:16:31 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 A5B183C6600; Tue, 28 Apr 2026 16:14: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=1777392845; cv=none; b=Vh3hGMj5XEvuhLFsirieJ5+xpx7JpSEbRwaeQwrim3+A9ISs3JqH9Lll3phLEYU18CLaUD7s933fKcdLo5x2+5gBh+dzlPmaU9Rq+KHGBQ36prLuxRLr5s1w04o3AysXi9Mv06s4oAvYgR+2RyfDl7fCXb7Z90ZNmGQbbZ8VgpE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392845; c=relaxed/simple; bh=lVMDgPrv/XqgshhEJQv3iup6/HEvG/vwnk6YBAh6auM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S9X1LlyZUzZ4Zt7OWF1/YiFPUGDeOxuLyPzB7/i9usoqDhLdNmKcUHOwuAL3g6PJiXNrHsXlpg3nUVbycC+0q5khkXbnqTRN5DkT239xd2KKhaFLyBbrUwxaIf45YLW4w785zfF/r1JFemhSg+9pO0NMLq9Dp0NFyJ/54AJTlZk= 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=RBC6iJh7; 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="RBC6iJh7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392841; bh=lVMDgPrv/XqgshhEJQv3iup6/HEvG/vwnk6YBAh6auM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RBC6iJh70Ng9puW6JMdNu5KVfbha87tiDZ5g5Ny6imQmIHfOon5ATNv7CfeFg9qOh sKUcu7PoKZ6jQiwa89gaAp0hB3NUpaMUlNBdVZwGJniOaJu0Xq3aBC9TyMi9varnWl HIAQp9KjcqlRgiwyrE4anE5uVwSOl8J1DNOwscH9vFM4JbnQVL+vSivN17Roh6m/ap BMk+OaAjR13vhNz8i9WAwtLag7MPXck/h3AxAkW4KjQogBri/dqVgYE2WJxtLBeAlS 8KhVO8/+JgDX/NfuhULDI0YwOMrBk/A1uid2PVu2fHklOOtb5hxb+E0C5iHjPwK89s ggQM7+XA2vEUw== 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 C640D17E131F; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 82F84480031; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:42 +0200 Subject: [PATCH v4 03/16] 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: <20260428-rockchip-usbdp-cleanup-v4-3-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1079; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=lVMDgPrv/XqgshhEJQv3iup6/HEvG/vwnk6YBAh6auM=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3Mg17IfkYpPi/fviUG85PATBikSnAA4pr 2aWLQeIAvq7AIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzIAAoJENju1/PI O/qa3Y4P/0EamDY5YtEJW1mTJU2BWbfCzMbcmKNlEXmJ4/SA0R/qs4XRDgtZoKCFEq1RblvDFaD k56HT8lR6tOm0bB4XiV+OUpvfqyZsQfplSbPFZv9bTSs+AUWNMgImi9q/rXYsGeCvYSlEuh9NPi CbJaU0UxnFA+3432hoVC6ElH6a2wvsuVwDTRbq5VDc1sL4jrfZOgo21E5aHbGfod1urBGdGDGJB iQbBVOBMEtqfcax8cFW3cVIi6u6hhBZctsQqXL6NP5Eo93c/fEogAVPFtYN6tE7rAQggr8Kn/R4 zMJ+lfc8/l7RenFmhhbfoZKtu6ivWBBdbisaXfDJ0liKzNHEKIk4T9hQR5HBYpE4QqbgdKXZL5O UhVlMERXWM5tIT6x71SOi9inzfjwqqjj7bcT92+EjGj0m+BEpwIFOoQRpnft9RQiedUrUlLxljK V8ckFS60SabcxsNguiv+8GD2Tte/LzEJ6Lk8fKJUJoMUFY1tpdknTXUOdB3uU8HCouYJDV+f5jf RcrmHdeqPqoqa3rNzRsLAbRdhMlpoqlBXXa2ivfVt14iled9QAUDp3rGGy86GggUVlotVjevwMn TceiJKNl6XkkUgVICGP0fsxJsm84frxNVc+QWPNpmCE8vrjRXxi/0oYI1RLab3MBzNJLAUMY9/L xwtRyFnpXSQaFFFvEmFEspQ== 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(). Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 744cc7c642f4..98562a888b42 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -1012,8 +1012,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; } --=20 2.53.0 From nobody Thu Jun 11 08:16:31 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 B384143CED6; Tue, 28 Apr 2026 16:14: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=1777392847; cv=none; b=kam/riboQ4OfkX1otyXesxCNOonLsi1ij3mKxKiMVZhuwrjigH7bNZ71G5Mxb/XMTUPWAulhAF44Ke5B6wMwXNc6lgXILCh8++XXkmnts9Tq1f7lvKqRceNoUAz2NHMD5VjwmYuCEJqDzbXdhqKUlsJ07fxccKOmUYX/XrM8d/c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392847; c=relaxed/simple; bh=0XX4vVa/0GPAugnfThIRtqHaHn956POvyh55GofpEvI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=APjj/oOkTmBFXYD9tfLY8raX/VVDQZyKApPv0lbl0Zrs64t0Dqu0slV7uZ00PACQhi3WFVAZR6FybJj1S/2BgF/ChvKEP/jsDrxIq8BJ09DSOVApGllffLKp/UCrShzOo/VFe8vWZmvIRG5xeQuoYz3avRkRiX51V26mY/V/Hjo= 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=LLCEyRfh; 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="LLCEyRfh" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=0XX4vVa/0GPAugnfThIRtqHaHn956POvyh55GofpEvI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=LLCEyRfh/f8c6ZwocfwlBbkwybR71sOgPU2xaEX92cAp3+jbVit4H3LxqODmmsehh vUyE9Tou3fIfsLvo8ITsyDwetys066uccZOgiC5QxHmurKmFh83puZoCxQwnNUFgFZ uGoXAGsw6FglqB//WZ6FsBy0PjueoItq84g/G3hca9flERCxclVUyamxc9BN9j99R5 sg3HfPQQsE5lZ9YClIQW4WMBNoRnjrI5pvOK/msdrDkwoUycfrvRjHoEkb4dEEcScc Onf0PHMyrx+Rps/dVfDQIacWWDh4e3rD9sIf+U4aNuf+9pCRLFqb1NBgb5D/mawDa+ RuRlwVrbO59/g== 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 CBB0017E1537; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 849F2480035; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:43 +0200 Subject: [PATCH v4 04/16] 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: <20260428-rockchip-usbdp-cleanup-v4-4-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1708; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=n8lRzOlMyygGbWhWimK1M+yPX1RbWFhy4RXxCi2HYdw=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MjgjA0lE+iTwOFRwAegngadQ8WC4GWmZ S+yAiWJpPsQ6okCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzIAAoJENju1/PI O/qaIHAP/At6d+Rx9C0Xn01ry0teoum+lfMfUBebklnK/mfOu7IC+XbNKo866CWkwtQ+5Sq7WXC 2p71qOtmod5u6Tz8rh0jFWM10oVFUvkY2MHCGwvKfNUPNt0FkUSciyKrZyYhec3P+pDjXUvcFH6 xFeeiVYDJlnnmVkpLEZgsj92/ZTzZrnoF/Led4cdC2womD/CoKiaTVyx0+P8Bmvy+Yx7tlw4wZ6 kblD9XSJBlGykVIt0Gn4EM2HBbduSLHxISQXozKadVr6CMkj6TP44punSV75TtGelC9IwxbLBNU QSyx3uwk0jG9nKtoUOa0OUGQJMEFBYuGzaErjYtMkD4G/PqFpPEo+RMoRFzkrxM8v12Vvne8Ing QLu2SZfBh5oBSvDY7cgiVWOjPuJ5/VSllQwpbcfia2E/kWEqCqoVjebs6WcAKDiQBip66AK1hVr MDBB1z64fgjK/P0lndVSTa7B0Ld15MMwdO2I2nWI8yIe7QGF8RD3NQHhPeXBEXiCutVtVsFf8yB 8IRjp0oPHysxNUsM3bwagRMlPs5Zdy8o0Lv+f9/KGBPTfIdz1BjSWRLoBPTQIlPQZfuNUlhmnAE 1OrhX5mki0fFia1kE8jlAAre2lXKlwgV+jGHAd5NlfJboDueyVjgdmSUK5Evlycdj8Zf72yCFWv DaelxzUiD/yBMmeO5osQqqQ== 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] Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 98562a888b42..1f686844c337 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 Thu Jun 11 08:16:31 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 3911B478864; Tue, 28 Apr 2026 16:14:07 +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=1777392849; cv=none; b=bZ5v5Z+L3rEU7fgqnKithrpplv9JyVySfAm0Xi4ujgjoKXWYURTgm3y+teu+iGc0xLrQCPyUCnLNdG951QuV92peJe5ktuu+rg38xDrEwhIt2bFXQh8YthM+0gBKGjpU1AjQJFHwHTk4mWfYCOtqUTLHG58wkcH3yHh6dzRkZnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392849; c=relaxed/simple; bh=44U1UChGeKh0HEiCvpuVJ49MDPkv3nQQ2Nz9Gq57yC0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QESSgnmwkA9n+PrbdO+IUPefAg0cee8gSgYRkP8NsSN2+46mtqJAj3eKJni7+EPcJnVzrlW9ybWOWYy/z2MnDdtjwxgIP4Lt8t7lP6qnKpSfbr55RZNkI8j8vquwwfzqAAwr8qMCA29G3+mvyLnILSWXoccykyrkmTD6L0PpB+s= 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=YLzpHbg6; 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="YLzpHbg6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=44U1UChGeKh0HEiCvpuVJ49MDPkv3nQQ2Nz9Gq57yC0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YLzpHbg6XSqh2vYW149Cb0Mr0ybRSIrbVSUVjwSs9LwXQJP8A+i7yrkNfTbNtlz/x ZUoJXNqSK0D0m6YKDrc2neDcLjT9sake1Y9gqmtRACliv0FnucCknafoX1GRq9HjPv y9BdQ7QWTHGiF3CV7Lil31x1k7Yp2SGZRB+DTwUJR5lRyuoC8PF8lEcd4V4T83fCBl mao1NWOFxFCPMfrO8jbjWfJ/bZjIkKqCYYATmR+znpbMXbODczPl5oVo1fsV4qIR8l 0qAoYxOIGsv5JpzziPHSakzTD8sQF1wIXW3nGHILMi8qPNhIzeaZvLkMtpVZqIlzR6 X5uMvquCybqzg== 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 22AF117E1553; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 863AF480038; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:44 +0200 Subject: [PATCH v4 05/16] 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: <20260428-rockchip-usbdp-cleanup-v4-5-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1464; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=eVOY3NqVA0ogxpiysvigAYrriG39FpovjHpdGuHvpr0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MmfN1guRhjMtYp9JkPPxN8GXqZLa1Fw3 +AZpTHqhhYZ9IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qayasQAJ7VUokwjwSLaNyTDCx4EDvrdj8WT91X64eLgL1YSZRX5VJXRA22KedRmXcFoKMFBeR CPEYb1LCKDOVQ11dc/Ggbwgec1EqRtt0efChSWzIjsasQs4fH+wa69lsWqglGyTYZnkTFRbOmSA lQBfkog5lRxvtY6qalkE6ERj8EokI0VigqxSUOAE37z7fPnkw4kbNs7/r5lUqzIBtJid1QsYDhH pl0L9PtnYXiT5T2f9QjLvtW95NxUyJKcZXgwML+JAIYw75GtWdzhIEdbEQa+clv3EPpYYBnhtK8 b9RedvdRLHi2cWrywbHQcupCNakcW+9CgxJgTvMJuBF1amNa2+DZ5QmDrczf6Mk7zEFvHqtqatx o9ZMa6eYbMh1MOYACjuSClnzARLc3sN6RH7f8zNogEgW44Efwvgmn8u9Kcks13a0RXUgvoznBvA C+4Sc2d2D0s4hVyoWfi2yr2ZecfHpuhuSxCaak4r6g6d04dIS8pOzgiMRv4CsG/jEcv4pg2uR8q 01V4vXcbytqE48kvGaQRs7TfCIz17BzO7mJzqEFv5N01gNrCvPNe5Lb9r9nVaAzqPY2N7iqVGSS /Z2vR3d2Ot24AT+4tQSwz0fM9OGEgM/206G17/qAALXynyJ6Ve9C8YquhhOAziS2gCMAGvDRMrg 1wWt4el7UIycW0B8dW5g1bQ== 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] Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 1f686844c337..97e53b933225 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 Thu Jun 11 08:16:31 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 3A383478865; Tue, 28 Apr 2026 16:14:07 +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=1777392849; cv=none; b=VUgPrcwX5ohSj7EpxC7c+nictWK0Wba0QudvLnqHnik+jeIWG9aisdbmF6/ogT5TsSslwR6sPbTTyRXVd0CL1BEiIE8bSl3LbWPlvA+fk3h+tdVJnoXfVr2Gf4CxVtZUargv6OXctav36MH5nhIWc8GLQ5wYIOgs5uQzxRMKpik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392849; c=relaxed/simple; bh=jN3EWA7Y+IO1E1+ctlqunQ4afKe4Rg68KcoQplL5rMI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ImhJeinePRWNOEXSuo7LqBZIY3uuBVIGfpOhFy36JVDw43I6+yppSa9exHkQQoGs4OQf7tUOdGrifCvhGiJfgcXuRNR4IlxFPeEuGD2sxtXDHdABWQncbIJsYDs0s5g6wFVjzdyvmB2+8+pb4UqRUEUPC5kiIjyZyx/UwezzSxc= 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=gkF0O/Hw; 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="gkF0O/Hw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=jN3EWA7Y+IO1E1+ctlqunQ4afKe4Rg68KcoQplL5rMI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gkF0O/HwmgHNMX9ayjQ0cJ8nZNMsER1zPFPJnVHuUgTeXgkCreT7jzJPyDO8Sm4rD 5wPW/vzCw3JcyjYPhdeNAK/Whq0Mzubi4G++psJ0jQfovejFYbHVsQM3w6jpCwvZ/Y uVvI7RMOF6wfdEGKD6zJSuR/v93iMTdwYoKhErPENJc+DYBFl8Gm0bjtuRXBMmZs+E TsGk6VLfCElHaeCpwcXi1s2aznHyrZ9CUp/hdmP2lt+TR4xhgxuwsTc1k4F+jqdeYT k+7T3pfkhN/vk0wVcCjU8R8U0rf544OgBz7gQwdosBKQNC1IrEwj7QBm7ND1MD5iY8 jk/MlFMC5NRmA== 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 24D2A17E1562; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 87F6348003A; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:45 +0200 Subject: [PATCH v4 06/16] 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: <20260428-rockchip-usbdp-cleanup-v4-6-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1949; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=jN3EWA7Y+IO1E1+ctlqunQ4afKe4Rg68KcoQplL5rMI=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MnLtB8nOxEXUVhTmg2XYLHFs60idx6Vj FjOT2c9a7ivKokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qa5gkP/RdMPWyyzXlIZAxDzVUlY4nV3vFAKU59lKk7BbvtSN9nPI28xd4KWhd30imgyra2EPo tSp+lI1lIUciR34/pwcd8zNaZ3jzYjX5Ge84heJNULnxKtoW0zwKQSdCz+14sDbreXC4spAtjQc i2H6sDF5EBqh2tVonardS/xnWN3cOdMfS5jrVwyvqbXHml1GgpHHwtLalYqRtY29WDkp+pM0zhx QOGUTSHWal4QU7+DGzWWMYDu47puZ0MQT03mWYuzx5nUW75Z2eETrW0C8583mlK8y8GmwGOsGmL WQplNGL/2UkCOyScfCju1sA5gMxL623U5yvi5fL4l9LEPSJKiknRrGZGShuKFaAm9/ryiG46IDr sO+/R1EflsElfQk8LP0jcNjHrleIIFMms4+sMDAetvS10+6NV/S7eG61+qDnEC1fXDf+4ax1aPb FZj123ur4Iq0+XtDX98iAA+zddB1VAvn2pNn2YyOwxOS+N4TtFVSRKoLy3hpX2FLPc309l/GsWK Z4oft72s4L4N01Eaib1V/v1iAkS7/jkgYUYTiXBID1163JIHwUIg8rziyMCjH5juwL4HEspVBk5 yuLeFMGD9eTB6pywxnYN9tV5Y8mfURTe/NEdROxUQHbRlVVJAPaAKQ9Pk1nqG5NCkNfWc+uFV9c nbURqjmZXuM6MlOPlgikvPg== 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. Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 97e53b933225..febc148a754e 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, @@ -1385,10 +1394,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 Thu Jun 11 08:16:31 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 3A9E7478868; Tue, 28 Apr 2026 16:14:07 +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=1777392850; cv=none; b=Cbaf6UKiAXLywk7P4BP6h+CB673IPLlEEPT+pDjxbNAdBeFXBlHiV6EaDPxUgUYRPUCRIrcAJzSDT2Vz9iYkwt8/o1T6rBrGiDlRASuhUe6satzHPJ3fMBgcfu22RnRDm/OVS1p/n7Lzye82PpBDyQe4eqz5XS3SmWMdh2Eb1Oc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392850; c=relaxed/simple; bh=F+/X9KX/MbPYEGdlL8kpGC62tIqMCkZjsXpPGb1baWg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QIqV4Xnh2fw+C4okROpSdL4c9G5Svr8zjNavq6JvQ9QE7y+kJD1wrUwA46WsvJAXR387Gb4D84+HqcRLaDzdlwV1Nlx3K5NOQIBiKndqHDYJJrK+V59IfxkEkzVJZb2rPk3lZvODFDlq4ApyI+zCTXGpLkk09FAg18ClNGnJUic= 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=cwk5+PMp; 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="cwk5+PMp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=F+/X9KX/MbPYEGdlL8kpGC62tIqMCkZjsXpPGb1baWg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=cwk5+PMpOR9B73PuUr6E5MisgAfno/toLQMjIEqk9MN5oRYF24GhmZI1ZK8DMzxl8 bHarRyuSlw0I5Q0aNdmZLieRKBMgkcFCrYWb9DE6BTB724VF6cL4tKNDZvL+uOnrC9 rKe+YmIdkzV2syf1X1X4XthRFCTkARS0d23ELC1THmL1hBeJfItw88GWrdLO+o2hmT smw49iRL86QfmHFkVFiEwMUkjEko5VCY3k+i/kX0mrivzJLnAzTWGhHHqkJtGVlyhF 8j9r+c2RXq+fbfI1wK/Txf52qE0lBkBRnDODtIqvvsNWqd1mO84pgqXFrn9499Ftxd yJqcBZUdClgiw== 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 2C94617E157E; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 89A2D48003D; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:46 +0200 Subject: [PATCH v4 07/16] 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: <20260428-rockchip-usbdp-cleanup-v4-7-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=5209; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=b37g3sREdBGDY7tFDKeV5U/vMOZkhC2Y7QMIV7WXbE0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MnQ2wLMLAm/FnDWS23LSIY9nJ9TCqSdY 6z/yqiCC1chC4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qas+wQAJt6s6I3BRb6AULYaK7NWIDjQ3mLl68u/xaDeOEn3EfQ2hUo7MIiXANODzw83HWd+Mp aRYTXmOmK6NginPw+R5pZpx6O2Y959nFS9Q0/Yl+lYtOg1/k79n5ocypZU96DnJYq7fUL7E2FF8 I32k029YUUmDN1gf7yT8OxBPiPpaEN6BBfubVZLpgN4kcuYQ122kpKKfpfLBOehjHjyIhyl04Eh O3bDQ9Q3Zb2N2a7fyuJhz1XUsjiZpfaRqY2tvXejIWKDRYAy99KkrAhUIUvYAisEeAvzxLTBo3A P7IFxdKZAfdo5hUC1Zschxdd2yN/D+CrkBDJgiGBWi3m9rjr2rnNW3GC9XOLrISXFvI8j9URf+h vNTrkuj7quceTG+lNQ25ymQeJLpQlLxf2gQS5mkIg5SexNSE9TRQHt/ifAiZBrWHI5YzVVP2GbV EWdX4B9r/JBYDNZSLAKm/Lugxxk+AxOGEiQFI+nuBKs6eLE+D/hipMNmt3kNuYBRSiFw3QdS6ik fS6KFbNRbTRn8iO/PBW3vHEvJHKqeuW/2OUNxDvNc4ItI3cOeefDZ76I3EJZCVxtUqqdxDdjG8K Dh5QAdaFzNkUXIk70si/omihmJtAw+wGAwK98U+kx9FCGEBhxYrFFeZSbE22xC46amjNWyM8AA7 nyJy5HYGAOldJC17/kScrzg== 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 | 61 +++++++++++++--------------= ---- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index febc148a754e..bf8394174294 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,7 +910,8 @@ static int rk_udphy_parse_lane_mux_data(struct rk_udphy= *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); } @@ -1074,18 +1062,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 @@ -1365,6 +1352,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: @@ -1381,6 +1369,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 @@ -1529,7 +1518,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 Thu Jun 11 08:16:31 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 1FA0A47885D; Tue, 28 Apr 2026 16:14:07 +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=1777392848; cv=none; b=qLzPJ4sX9Ww8i8yn3QdcjIP9N++o54ulG4NrAgMskqabj/DaWVo/Yq2OSOqIp8k2VKh5EKvcoVMSA5fTMs9VV9b+jWZ1EL4kKeZgqt3awEyYAQ/zWlgWvuhzbJ8s4eIDGfRnSWtH51O4psgp5tXbTGtpyqwgkDevUWjAgwpOukY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392848; c=relaxed/simple; bh=vJfW11wiGelpe9cQawuDCFj8JmgWHyXe7dAI8G8ccBI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GQ6bBgyHGpdkEBdzpwr78VRMtNeZ3ggq5jznvPBD/8g5hN16C5BCdE08o2tfdX9+8OaMo+4q/iJl5gJZvGMpjQZ8moptCC/FhLAODCPLx6s3pnsPzQbV8pIAsiMntH734GUxZi16O6xqcrnH1jGY0eRIr/mY/0rwaL1AyF+XnZY= 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=eXlbmZtS; 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="eXlbmZtS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=vJfW11wiGelpe9cQawuDCFj8JmgWHyXe7dAI8G8ccBI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=eXlbmZtSCCZhfVcc+NE7e4yEjQUSOJk/hlAqPPoe/DQxlOwpe9tJvAlz2HPE0UR6S Ib4SaqeHkOLn7JfGiAaY1HgdpZlpgQHVfo9S65ppy8l60G2eCPipf1jTolDT779h1o K+0q5SXOl516a8SOnSMzzE5YvaD3uILRrYy90KGRW8tk732sMoVA+3XGkkS7XS6cYc fQFQ0hlvZk1Rja5vRRiRoz8Lpe9Ak1CQf0CTcLBsm3zTSDZ2c7AfhORGTx6tOVTXVV no1gBt2lJBcgi17gmu7jEl0iiZxXRXGY7oRsvlaYUAtmLN69CsOhYHUCy950xksG0b mhI/KAwt1XaPQ== 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 2F95B17E1580; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8B5F6480048; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:47 +0200 Subject: [PATCH v4 08/16] 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: <20260428-rockchip-usbdp-cleanup-v4-8-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1950; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=vJfW11wiGelpe9cQawuDCFj8JmgWHyXe7dAI8G8ccBI=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MkQUfVzVlT8HbCMYVEmPFLAMy9yuKxPs lfZnsfO5HO35YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qamZgP/03xZbJ6F8WnQI1p+ecPTzidZcRNHamtGeyIgiMW7DXJYuX3FL0uF4sInrunciJbalB anRf1gIco6rbFBdOypA7gXvPbB8HrTcQX2hGfmLWic+/Hq9dj8Di1LQ5KWnXtjbJPDiExqptKYZ d5Dw7pnd9Y7lkbSAJwp1Bu5u9FMCnPc9eAR2IJsXBhBdqLGSQIYhQWFs9tj5Du4YtVZDXBDVd+W GODdkpZzncoOGCKwocP33OykGdADmCqHIxJjdQn6LjJftKgSd+75FGnzVb4nnBAJJUW+Xa8nzVR zWbWX9ppKPhFS4oOqEMrKgF3CxILCqz4HavxwhAW7dTUG+luxVxiTp1t/3zJKn6RXH1rsmMoVQL aDbLBXw8gUt184OcPzSoCtZlwFGb8kMJqaRNmBnNmSAWukotV+CTqXBFgp7QASUTfRAuVVgbfwu 5p2oOWyG0w2cfU/ZGhHw70gEncfrzRfBzp7QeHReKV6EG2f3shVe7PD9kbHiSHODRO5vQVcYD7w smsKdW4QJPyabSZkms2BqjlDmEuS1IytgorUiSE+StUJxD9t6GM8t41dzl/WzKwrqecA5b8lRP/ HnWkQV6WUuYu0EhkMgt62Ebn2SqSUV11R3xzB8/t2TApkn7Z7cXY5B2kdnr4rDJ9CzwvbggcWKG dib4th/rd5jZCUDHw+Scp/w== 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. Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 bf8394174294..6d7ca11b308e 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; @@ -1072,9 +1072,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); @@ -1092,7 +1092,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 Thu Jun 11 08:16:31 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 BD59647887F; Tue, 28 Apr 2026 16:14:07 +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=1777392850; cv=none; b=ueN/vo0LnsCuWIkG8jc/6FbDgQeWdxR086MqJsbE3U9vQWuzvP9Ln5Szc1lpyhN13YJ2pMf2ONrPlHvuGQaxkjOpCqeUMTkM5dPI00CD7UDMQdE65sgx51Il+AJFDFPgB6D/vZu7DjtxgCitht9XijlzOGIGjk6k7J4EUujJPoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392850; c=relaxed/simple; bh=t4WOoiRBpoIjnqRhUxMbzch5XZDGVRegDpDLfMr+pdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ThCVHaoL5G3rpkmqwo77a7AVF4gLynL+6Tv3CFC8jZF3X3Axgc17uepKbkf27kK/wIzu3uysLKwf3FK+eAkpvVMI0nR6qbovhlXzbdVMbxkOauS6G8ZVDxMq+41SUy2/LbE2ql4xgkTbNqrbleU9tDSq2TBTuDoQmUjQWNwQ6GA= 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=i5fd698P; 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="i5fd698P" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=t4WOoiRBpoIjnqRhUxMbzch5XZDGVRegDpDLfMr+pdg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=i5fd698PwsQNVvvRsgRxUQrTU7R+/NzE7vqqgibSb+EF8hdt2WMoe8BvAJQ5CO+4Q ActeE2//ia2HPEOeKY+QICzymM3KfoLEqQYTyHTLq2yXu++bnLeVGSWOeYeF2zBLvp XrAvTb7SDK4nkj0c6kpyUWltULwJa+eutPRzAPaDOKMKWtqOyMwYeGvlDGRz83i+Ia GNhjGjrJMSs26CvT3Eq3VX3yfbDihWSCLQaQZQV4RRQ9dPu8VU+3k5H1P485X8+97k eH7PEzR+WrzoWUMpRTVXtRXXP6w7y9uwHv2dGgKjb0ovyKweRiuKXh1EaRFsKUhClW pXmyhTnvTIRrA== 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 3B3D317E1582; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8CEF648004C; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:48 +0200 Subject: [PATCH v4 09/16] 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: <20260428-rockchip-usbdp-cleanup-v4-9-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1489; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=t4WOoiRBpoIjnqRhUxMbzch5XZDGVRegDpDLfMr+pdg=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MkDjC20n4q+HoWN81TqglrzFTrZQPhox hzb91pW/pjO24kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qae+cQAIxyY4nZl1j7ttVmDhN5dv8Tv2ehJKQlCrzwxiBK1yd7bwqpxoR2H+9+RlZ5U4ON2DV 1RLEUbMG1yHicfGzfHOhbjjgTuzBnxezS+ha3BwABSIzB8F00XfP3UFJtaxA0aVOAtHQfWrW1mK OFxjzKTRE75eoqh9ajonLZ2lkNpD0KbmpPgqpeEFKBgcnUAjNIvK3J2TGUaNSOny3g+t2kJB1Gm sZsg25jfM1y35N97WB39yCJRWJimYLfWATLZ95AYrSFZz7vSM3QpCWWOuIjuzjryuybIeR0M98U zqzYjuoQgfHkhFTzEUgOi+qmgPN6b4LkXiVoFF4Wv9inV9XFByzXoQ++vBApp9lLbCOwUmCsToX SVrwN2tnEIq2MClUar+Xhsv+GCTNAmHNJYZtBsQk5ZJklHzch1d4pXbzbRTy5gDcSGH8FGhjVqj KPE91jKg0Ore7oYxerQiUkRTs3EWVg1nYC7UcMabbPbpjpO8umfa0zqt/8QxmLeq18DIi3Rm118 79X+XJOh0khi0qG4Ryo2lFv4Pnr4aFL6Qy/11o3hOY249jk14akUGwkUzZvNEDM93dJyVkJBtEr b8kalPUjMEPzbzPBc0ZcU3pHqqSEl7n1NL2yNqiLHWOklHZpYhhoW+rFgw7ha+Xfuo3d4AZ77iM 2KEb/SKAaWmHveMwOoQAvVg== 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. Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 6d7ca11b308e..1bfc365e2b2c 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 Thu Jun 11 08:16:31 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 B690947885F; Tue, 28 Apr 2026 16:14:07 +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=1777392851; cv=none; b=sYYopOhQNnlW2BeOSDS5zJTwHQ+GKt4JZeLwScRqsXaZNjG7NGD372hB6qjuVFlKCIDGDR7z0OHUMGogOABroGGUoN/ZvKeJu1i5JVhn84CxpX2rZCE2zcy5WjY2LXst0N1Ii0fFFHz2WpoSi/MVt7YW7X5j5trWwTuIAB/4ZRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392851; c=relaxed/simple; bh=R0XOPqv8eiGOecv3syiCrtkuFgE7i0W5yOkkzmXW81o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GnppT6netG6mSlkebRgh2WhittiH4wDdzdyyEOFYBtltpPl2MIKkiWS8irXRmzyNMuMdmqTlbpVkpkgXYmpub9wuaK3CmUOrz88NJqNWXRG6kZiMT/q7IW3Q0y6NKlHsAwk/semb1BJOU25TnB7nIQMJqNPNIwm4eDlUklDgeqk= 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=G/h+70jd; 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="G/h+70jd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=R0XOPqv8eiGOecv3syiCrtkuFgE7i0W5yOkkzmXW81o=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=G/h+70jdn6Ul1cBNr1qYdBgAsoVur3WzJqhtJRImIhyZJ5tT6+V5JMj9Qg1O7M560 CFj5PVla0gedIYVD4d51xw+JBwjwPlwoAesP7eYrnSObHZTF0LRHAC6Y8irlE0sxMY H3WLk1qQxcqblhfBLChv7IMU9P8QQUuX4rbkN+nTU0tKrO4ySgShlBa5N/S+yS1hup LN6CBqpwBY8he5HA7Gh8Wvu+N+1OKZqsuK7VGbnrh9o5lkZW/loCsTkqELCYEkLS13 DWzowdyoukdJBoRMA6wNMidAJicttiC2SyMJuGseGx+EMlJj1yhXPw95AxxKL+vsCx ELcuUSkAHfPNg== 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 40A0017E1584; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 8E8FB48004E; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:49 +0200 Subject: [PATCH v4 10/16] 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: <20260428-rockchip-usbdp-cleanup-v4-10-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1832; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=R0XOPqv8eiGOecv3syiCrtkuFgE7i0W5yOkkzmXW81o=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MnMoM2ETRknEAFMzdGLUCkYpjQ0JeJnU cGBq/Rlx/v0CIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qaMSAP/1v8tDrHW5gPY6ZZd1M8Iw5rOtpMS8VAr4znEpcRNzlJpToFT2yIkzqUnj4TqMVRRlr RllfdRzVEIVByqTF1OvSlP3nFGAvZvlIT35uQvF6r/wh1W+2VlWCTJhYQh7xZmAGQ9yPpY3BQcF i5FVxqwn9VxLGD1UHQnnY8TgyaW1sYTJS7SMSAHHGAeye04ma1AX8JhTgRQeOSB04/4gEHsyBbj utVrMPxkRUlwX4dyecx8JnZdJmfmGtv24OgUc6gD1Liml/hNgGN90WOawy5K0/JHW3+1Gb78ZGy o7X/79YvjFisc9tqzmiU4/IrTr8ywdSr6sZMkKZ2iAnn2jCcQ+oPF0e0ps1rRkLIKX0rmZSZD39 RaLtrdW1F+x6c+5/EGNBrEdQIU/PXJjZRfOnGXcW6yjkRHLLZsptayCd6pXnd9+8Ts+GAuAvhrs h455Pjz2pu8H/b5+Z90DGjviG2Zvy/pRY39R6a7cXEro4BzG0QeMDuscRtsN6Ihb0rmq22I7XRF Ttqf/u43eeVRB0+PmlUtuIl6Ps9++86ot8FmaxVQTNUjnFryijO/VROwaWoCU5vj4O53CVDueYT OBbbtGmuRK/6sOQkdWtxZTo4POTD9oEm+GZw9kGBg8MpGlBkNsvhzrwnU1sIREy6Cc6dbHh+Q+S In8ic3A/GgNG+H5eG45Y1GQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Use FIELD_PREP_WM16() helpers to simplify the DP lane selection logic. Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 1bfc365e2b2c..beab20e4c512 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 Thu Jun 11 08:16:31 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 CA904478E25; Tue, 28 Apr 2026 16:14:07 +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=1777392852; cv=none; b=vBHDxjhe+9t023WlGJfRrOlZIaxoTHZ03BsxvWUJAOrt4APkKdTQCWmkuLnSCLu8dM/EtHNyiWjTVT9Xl13nrXmUfLVW63ynZsbp/Uk8SBkx7O1nenoR/m0S7oyOGf5d1Vpu9D1m+AAN4fy1PMtw8x3GVVrZBzjBz4hS71AQ/Po= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392852; c=relaxed/simple; bh=2RDTD3i97hvqpAcQDq/HnQnUMc4wftjxgYkOHKmJn4U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=B+8LeZw6XqwUTXWdezgMW5Eb1ysr7ocedRv/+ISfhbmIYWV+V8QwXARtfCz0CChc38RszBcXmZLmutyu5zULQEPdauKkpHY57XMZfgeQ4e2pHtPPWms+I0dQvz2Xs4ocfrr2GQFFgwsFdjgupWgU1vYUVVpHCPWs73Ke9NreqvI= 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=qYTwRCvV; 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="qYTwRCvV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=2RDTD3i97hvqpAcQDq/HnQnUMc4wftjxgYkOHKmJn4U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=qYTwRCvVxitM2Pnu8Km8cp6ScTYqD4RSacdYSxr/PbVX4M1yw8egMkOxU7YEOoBzL byApT/yjPttVKFK9DBXahCesoPQPYJNHxF8C+H2C8pcPWLmJa2kD6UYQ4pe1pTdBzZ i7htOZClsGbBC6/DXpa5fh66XcT/S/fcnUa7R+TpOgZBa3bO8yRnvheStoRf4QbaKL j3jyDB+vn2TXb8IzWfzgJnhYZP6j+XuiC++ujaiURrZMG5q882jmilC58hmftyzdR4 PCv6G01d5kDG0qBgK2Ph/7iqKRwcPWdbaT5HJKy7yujdYO/ywLoZvoi32yiS9PYOb4 WCNGeNpKHCIgw== 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 4BF0617E15A3; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 90311480052; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:50 +0200 Subject: [PATCH v4 11/16] 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: <20260428-rockchip-usbdp-cleanup-v4-11-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=2934; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=2RDTD3i97hvqpAcQDq/HnQnUMc4wftjxgYkOHKmJn4U=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MmQSSSwrcFXLHqHG6CyyOtH5uQtKKZOz +82bfniCOEglYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qam/4P/3vhs4uoTFTRp6OFin+UhI0KhjUsLWVjRF/uTJlIifjNAzP2AceepnakSsVbiFn3A7D e89Gq8BgbKfSlf/KrK/x411ZBfKWrjHDc0ks7sFKNW+l5U9df9bXvHhhZeNWvCzCfaRL0ZzRSlQ WuqZ4iDT1tfzLdGMugPWGCH57gYAyvZZMFRS7q7+SoKplmPNYXKUY1bvNHAwCQFbp46bk/1P1IY MH3zN5g7MUqkKv2VKUbPVandQEDtwvpS+F8+kKvLoaXAJdcNMf2n3fzgHsWJ4ovfDhYUS+FkK4I YhBJrJc5EzKymDNIq8omudVQDwy4jjE3KmeUbY3R68ySqPTdXNtN6fEb1Wz4ozQNrGMdDXWRSpZ 0P9t4l1egmQBY+2iSJ/v66BQxMV4pc4sMi4BSxSy0tQ75y7Dl9/Soce6Df9Y7Jv3+Vki7LANPDQ 3pZr5spNYsTeqFQpC407taDkjMIURi0tQPrJ1rM9CkWQai/0D8hJM/NT4qCETLzq3/hsQV062dI WHd+go/xyBuxsqkj2lOKtl8xn8ogAGwkzpZFtoBw+bQUdIRkSiZMLKXQ9hjKFKt9LacwUnQEo3F VsvxxTmyhGPr/U4USlal6mjkms172FRzxxb93wqaygfBqHeSgPlsD3NPMoAVx8AZYEsU01E5114 dmUpA6ncUrKq3JrInpeUyAQ== 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 Signed-off-by: Sebastian Reichel Reviewed-by: Neil Armstrong --- 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 beab20e4c512..77ad2a89d4f2 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 @@ -1434,6 +1435,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; @@ -1492,6 +1494,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 Thu Jun 11 08:16:31 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 B385F3DA7CA; Tue, 28 Apr 2026 16:14:09 +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=1777392852; cv=none; b=GZxDoBv4kL5hiI6MU0XQjnVTio3vejYs81+atH04gEeB1fR1U5MDDfQMv1cEYDLeyrHoi7HYa6RCCtMDevr+zdZ9e3optStzRngNnJqbmr3cM7Cy4lsOBtyB9tLpjsuxunaNHZLhlFSlkfKJOL2Q1y9MMidDnwuzxBB241sPF5A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392852; c=relaxed/simple; bh=+pleStZDe9MkxPKCrTUKOzh1pFK+HK0JKxesNBRI1vY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nenl0YMCwnDdy/OVBWcULMTfsTU61SzngJoCkKDcuhsWRYE9nHkE8B79hhntD1/e/4FV7YX2JCwinwkDTYWfODsKOX23C90B4nlmZpjg8tzw+uLTbxBGROAbw4HfaXfwtP7rUqemEsVP6D/gqUNj5Ob/CDFHR3fYzHlrnOfvMbM= 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=MnhLaPet; 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="MnhLaPet" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=+pleStZDe9MkxPKCrTUKOzh1pFK+HK0JKxesNBRI1vY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MnhLaPet0sS0Y2E3U8iS27k2fMzcjOxKAIXK4BYMgNhHW63YEtr4YbXqE5hUYzOz9 JTlvIG+PjIMbL5BLRGNku4+WvNJK2Dvy22vMAVmJCjbVaMjpZAkyyVgZdEJV88alBM U/MsAa4EePZJjQNmNbMe5ivTf0vcMyeiMXHmpGiJxCuJTa9oJ6hbFSAlubsrQG0Txx h+Nj9QFVNHKxkfmH698fwQi6jasMJi15Uez/Ad9XUkSt+mHpBWgrxMqWcMf/2EcGRj sObhkMDGGFwigVLHCuartcun9DMuIV+qU5Eaf4UvGViFok2WdjeR4yvFwoLQ1cFsGc 1MkgOQwGqWJIA== 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 4EEE717E15A5; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 91BB6480055; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:51 +0200 Subject: [PATCH v4 12/16] 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: <20260428-rockchip-usbdp-cleanup-v4-12-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=3585; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=+pleStZDe9MkxPKCrTUKOzh1pFK+HK0JKxesNBRI1vY=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MkcEEmJWVj/HJ6gFmDHXCdp3xH0Fq/nt 1m9ttBgIc4FE4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qaFUoP/is9eYWtBs37ZIECMcAQbCv0VCBuQR+En53eonuQcYpzczNhPZwM6BOVW/oQXmldkll EA+820mLllRzx6fXaQmLMG2Epmgxj70q2dUGvmCMymncbJxpdfPHu1N+TplDjAAsM2Gh/Mzv1rL xR7RJimwYyNX1ftS79nUwWkwLxycveAOMaVhAIqBT4f8g+5tBrN0kHiHjGR6RsRARVdyz3sewUQ 0+AoqZp2iintmS1l1J9MkHDm+rm2jftpSr6/dm34z91jCRZ4CzgjJ55qQVg8dETYOLdG6jDgjVJ zHJFGtfY/MZUftluxz7CLLNQbMv2OgcUM/nEijTywiXgN0NDgrpcFTPEjXyYCR3tJRpootqMale PIgiQqItA/g81QJE2GRrnjTJzRcbidjT2MRXAGOV8X5fMehdZCMxCI2+k4IFyyeV42nLdXXYExS KmWuxzodBCeMqXWtqEZq17O690+KttKgnW0Pm6DJVGBxM1fBtH8AYFbP43Srz4wIFcxR3M5zhOp rE6a3wKZmHCodyjsVJpcw17KBMHyinAEWRLokajbFgpuxNv9OJqQf27LMhgQeR1P0WHzmhvi6fc 6LAxXNjYm3JZfwqw2RrgpLY5hvgkIQvfT0nM93y6ZJrJSKlxN24lh2V9/u8san1BSfPIrWwV+LY SUg1sOiTJVpOmX5hRPJUn+g== 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 | 47 +--------------------------= ---- 1 file changed, 1 insertion(+), 46 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 77ad2a89d4f2..3f1233f50686 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -186,8 +186,6 @@ 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; @@ -579,19 +577,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) @@ -1360,22 +1345,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; @@ -1531,20 +1501,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" }; @@ -1649,7 +1605,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 Thu Jun 11 08:16:31 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 C634E477E2D; Tue, 28 Apr 2026 16:14:07 +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=1777392851; cv=none; b=eKS8rKmAkdBUCpbM8vZ+9NSglWw8/bIDdLyJK0o9REsNcOtA0FQhZZLvOmWjdQR9DzXd7Bv0mvmFb/7ZgYmcWA0TdyRYjygW5QCIeshyQ4Q4MQJRp/OicXGCV6i4AUZOnNs/HmESCF1OftAEZiI/gHW1s2MkEMJ3VxfgC5dCo2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392851; c=relaxed/simple; bh=hm1hwqX12MMmcOcx+mUmnef+Uccffb/i9jFQzzEPLQA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jwODVCW27jQlgsE3qS7nG0elcLz9rnliiqXBLCghSXo0dwkwtorjkwM5pQZ+ZYCpMmhvFE8f3jyGokwmxkkfWlFsXucunFylZXU9tqVJMudQUsfgoGcjcFoavPWjY62+Vhi4QiX27Cj14M0bHobjqBSGTwEmM4Tjc8upKByRPak= 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=U01CRmYc; 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="U01CRmYc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=hm1hwqX12MMmcOcx+mUmnef+Uccffb/i9jFQzzEPLQA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=U01CRmYcRmVIsSolJHd1twJqHsbhmtWWRlK0ZV+vx8jS5vXHFPjqHJChMZcUk07lr TI1biwMMWOe/J+TH2o2VeAkvCZIjOFLIP8rZ4XFAOKZ5mT8ApTRYYVpFPZSfnvSH/j shNomPytuuz+5ZHTH7L97dWUT+4gH+GcaWgh7JS+qkXkpQLufETX1M6423+Tut+Ffl OOgOyqaNqKsLgZVXFI7J2eVqpJBGF4yDJRNP/i7pFHMy/IbJxvsUD53h7swL8K7VjZ 6zurW9x8QdJ4PCyV0mkF+BjV3a63G4XOTzOl9rZBJ91Fp8u+N9K45z4nFUVPVqc5ql Pr2q6QPAthi9w== 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 56A6217E15A6; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 934EF480061; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:52 +0200 Subject: [PATCH v4 13/16] 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: <20260428-rockchip-usbdp-cleanup-v4-13-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=1849; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=hm1hwqX12MMmcOcx+mUmnef+Uccffb/i9jFQzzEPLQA=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MkGqm5aAX1UQ2T9KL1PCkegp2zPPVdsU UjQTJC2P0pXyIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qaUTIQAJtrmZYeZ2/Ua3NtDTAumruL/6iiTtFdfJIoM9DjN2Z7ZYeqo6g6PREZOHin1HyXJp/ OkpnqJ+BWr2yja2Xdx2cEaDzxg4iUzxtQ6YHOWyBB+fA+2tTCEf1heWwR/DsL2Dtj0yJbJEEQ6u LhAJdHXgGSJ4GmZYoHThlvyEvYm50kDk3ZQWh5wFbB57aKc4YcTkxF3uLNVzr3XjyzCWw/JbuTI 0cw7V8H1aLxk0u6jHzdZ1RMwjULKjcCW8r0I1nB6uTReiR/csnrzJL4ktIzgBe5T69UN9OlqFq8 Vu6c+pAfuqTvx2zs32pC3Brwx/MMYC2C3dH3Uhu7owtL6yrvzZhBZgSwUYgFwTHJjo7oIt2TorR gID9G2GnCYNkqnKBCMeNNqqLlh4r8uegT2s4lMPdBniIY2tJUDE1H4ND4lAShUDpeHwUVHrHrgf AXmFPlh8IrMpvOsrO7dunpdINr4C5vBwm8IFlMs/LYejr61HJGukCdOWFasO2T5opD9jfREUmE+ 3b5R2wPUNX4oym36Ga/FAAZUUoN63I/Ne+6CWSTqgkkyBsP85dJwf5ssiFTPZF9Z/VlPadKc07p KYPUczLFpZSqL3S7jpIZLGbitCejt7BtZtX9mZJgmRBVvcxDilczoTxW2BVRIeo1bf34XrNsMrB OOhBsZ7FT+7ydBQ2LcSYt3Q== 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 3f1233f50686..694832cc161e 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -172,7 +172,7 @@ struct rk_udphy { =20 /* PHY status management */ bool flip; - bool mode_change; + bool phy_needs_reinit; u8 mode; u8 status; =20 @@ -582,7 +582,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 @@ -970,15 +970,15 @@ 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; + udphy->phy_needs_reinit =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->phy_needs_reinit) { + udphy->phy_needs_reinit =3D false; if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); =20 --=20 2.53.0 From nobody Thu Jun 11 08:16:31 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 42E7E478E56; Tue, 28 Apr 2026 16:14:09 +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=1777392851; cv=none; b=Tek6hP/m2CZCSHZhRdrVwbijSMPShHtOX/x9960VlsAD+EETxTuzWeKmBN+mtjhRa9XW5I11xeHIARA5a/gMaC2OS8D8PP//4Suy8PI4CDlxY13wzigwiDqeriIHDbzebptCX6me0GF4ROzo4U050vq0yQumrnITVGHwKYs6+zM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392851; c=relaxed/simple; bh=qFPX/4eUGg2atGILKlG0XCijsAsacnxtqfiBlRM0ujg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YbujZymq9GXzl3JDI5Xzwx0/gEgiekZTqRx+SfSVRPmMaV0/NAl3RdR8ZCC3lNLFDjpiR+ODhKOWSSPf1xJnN/xyZvVDTg9JoJLGKIHMJHlFpX23Z5ogSgetKQluclaVIyTmYV/5w45JNgFw8D0xJfCNKA8FU/kdbpTUTv2OMzk= 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=lhGM6Xmk; 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="lhGM6Xmk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=qFPX/4eUGg2atGILKlG0XCijsAsacnxtqfiBlRM0ujg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=lhGM6XmkAS/XN9aac2Mtff66apwaHIF74CI/QMbV7FfYu/Ob3D/H0l1TDkYxpG+rg yQJPS6X8SoDaiFfW+GEDDCRzCwB9/cNwZohWKTF+PdXzgwSetBn3nJrLAERflpq676 xlVgKFl3lTBFv7aImbRpiuVtQELupHgHIzRrZ9I+wl3aOiL8SbU51eDK67b0V3Cx8t CL9lHbI8+dHKcKTR0bfoW6DDMERsJEpq1/W3RhDJ40neTjWDQbVSjtzYDpHKkw+yMd 4uv+io22OM/fxKY8nTgY3rfwocbcvu4fSjkRqf4MApsITYTZVNYX7A2pARab35qVhs v/pAIWbjsPlyQ== 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 59EA017E15A7; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 94DED480062; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:53 +0200 Subject: [PATCH v4 14/16] 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: <20260428-rockchip-usbdp-cleanup-v4-14-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=qFPX/4eUGg2atGILKlG0XCijsAsacnxtqfiBlRM0ujg=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MmBkCuKWKXdwR9zUCQ9nXzhCA/OgTvUO D5O00vL6gEYpYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qa7nwQAI+Jwg6MSk5g3e70+TJtqWEdnCjKxIRL8rM6TRLLbms9APa4F25/iivCQNq4CRKm+af 0bazVVRcb8QNDd5l3/6q5y5P6cEXFUmdMS2rAGazqdQgmZ5Qk9YOx060fCo2meLZ347Q7oFKYGI KfAMACMAoWbL/Y60ObYk71xYGWTF9U7Zv8YrlfqZHEdSPqWHnGlYEkav8Zq+fiKnxnoD/N+hKDA MEgX4u6pe8YwQwtVhONomXchiCRBoCxa+L1KjxdTfm39eKH0AePTGeN+SrNPgZXrhtcTnAQSttQ m3qdRtGEEGV9hsG/erk+hiIZZdNCsLpmh5tlXTNwUQzIUhaGoTHiCzOXEhJqeN07sFMyyfLQwqU O0g336YGifTLAYcpO8abgv4TftUNNYq44hWuZNa+o/1QwNdz+JgqneYMiry4B+hlMd8Aiorw7D1 tBcXfvOQiIadT1Xr80NcAo/FhJxpsiRu2jSe8oN9Witc9dCZvYi4sxqA3Gi7tOR4zYJDli7w6Lm vg+JaNhpPejXbLxtTL0j7FJQKDNdE/mmnIHut07tK8vzR7Ch8c3oAcdzNXTAqziEIfX5OgzYNzZ ls93Q8rt2LcuDVOnj2rBHRbKVl25abMvjm7RjsfpelvzW5LHGEefWoeyEg4Bkd3Fypx+uGgcOi8 vBkAT9uP7zpwCA0mnRQ4vaQ== 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 694832cc161e..80fe5993c6c7 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -624,6 +624,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 @@ -635,7 +636,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 Thu Jun 11 08:16:31 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 C0D9D47AF4D; Tue, 28 Apr 2026 16:14:10 +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=1777392856; cv=none; b=hRsC75FbLVd3bnpdo52+xRdOmhziGiAnSJtiZnGYiVCFr1DVicVYu40VGKYLjKKoEJ/+cC+8+eqpApbja5sikk6KuqllJvUMhghZJlnbGroEL844SeQKtcgW8UB0M9MGzsTImwVKHzc1Bg4BgynTsT+uzCIsmqtfWDpcUsZNfSU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392856; c=relaxed/simple; bh=j+6x+8s6738EmRpRIupyM/POjV2O++ynEfGyro+dtXo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qLzL3J8P2rIimrGLOHcORJsSF+GimOsvouXXrAOfq05l4FWPJprnLAxhS7Pgqe6If4GGBOq+jN0grQrBsg9hXVgd3bNWSRvlnKhFIwX3gFTX8eRpU8OHx7YI9NsQztf+E6vJmEQf4nuAuYZ/a6dbbrkwcUc6gsTGMPRGRN5oMHQ= 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=EIqiwl1j; 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="EIqiwl1j" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=j+6x+8s6738EmRpRIupyM/POjV2O++ynEfGyro+dtXo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EIqiwl1j+qjXrY/cdmeB4UyzP/SG4u7auHEUNCIY9elZhBrVZ8pVbZmk5DZUi21cq /v8UJ3ks69CHlBW9D3uTmfBU9cl60UugLeBY6V03HQfYRQggP8XbEgVVT8gXoN7odd Sp4iHQfLpPDQwq//MHxw63i1nMasqxMHgP7oie25RAz3R7BWd5VZfAY3vye6SDWx2F gov5EUQc40cwnff3J6RyOPnAYQB/syyCXMtj99SeuLnhK4OncWdCuGRW2BW5YR+ff4 /F/LA5okO8eFAH612/8fHlQzz7Jzyw6qIEqva4LCtRH87XA4nWiA0ZneH55mff41dp aGbiKsibo0ACw== 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 7302C17E15A8; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 96C2D480064; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:54 +0200 Subject: [PATCH v4 15/16] 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: <20260428-rockchip-usbdp-cleanup-v4-15-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=4429; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=j+6x+8s6738EmRpRIupyM/POjV2O++ynEfGyro+dtXo=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MnrsnIhG01blRm2ATakQyUc52Dx9pAgz 7TkpQs9cQvKM4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qaxisQAIxL5/YGANWVf/5yyKZ7fYeBYRSuc9LaEmSuR/XQfrgP/ExLHMfB42z1zvwA1jQ54RU tCBiEyDqv8EPk59zweDgoLTfd6lxiB33PKIU0vSD4GNJ0YDrJx2ad9ye4C58Y1n647te/lTlUPL nXXM49NZySt9kPf7/VNsjgFQ4hddtqt62Vkz/z4z6X3HB0s0GAm10c37lmok586eAN8NW6umwP9 xZ7nbk2oZTWOOSttpT1MP+vmLynURknWvW3qDW54scJuVj9NGrjRIPhfE16L/0WFMeOEdY4cz1J Jp7TZceiscRjLUCQi/EqWoegoybQMOrDu5jDtKGvwFPIYK5N7hFy/6iO5CGgjvdaGVhmYgf5sV7 hJ3YUC6mitQVQUX0wIh90WOvGbNrvIXmdlEcE8BlKZOySK4EbuFx9uq9DZ9qulvMPzQ5If+XWPQ WUmUpAEzu+pu6lXJpSp2jxGDsYWoqJ3vtiH9x6oXB5ljtkRyJjDALswtWQVfthxPIjhGwbwEzGm EAXS3RjJtozsni22NAaHu9gbqWauQqWDcCcsi74O5cDddS3/0eO600SzuFijj9N9WJpxLOrJPf9 sD6yvQ4W/Cu4fFnhj7iva5VAZaT8YPDjUTuA8sfirI/ukbcxsctE8vG7HdyQ0Uuh5+w3KSSv8MB v3CdrM0+wnrCUVkljNJ07lQ== 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 80fe5993c6c7..17637d92cf9b 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -586,6 +586,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) { @@ -593,10 +629,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); @@ -606,18 +638,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, @@ -1316,42 +1344,13 @@ static int rk_udphy_typec_mux_set(struct typec_mux_= dev *mux, struct typec_mux_state *state) { struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); - u8 mode; =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 Thu Jun 11 08:16:31 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 BBA0847AF43; Tue, 28 Apr 2026 16:14:10 +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=1777392853; cv=none; b=GDySFyn4lTqj5MYINJ4M7DaKvbhCRKUD/hcvFziSH26eTvLvCl9UJSAT2ERyHM1DLOtbWHzDebjrYPQSwJIvghcmFd9Doa1Clh+j+nUVtV72cEQVjlQEGurIos0FtON2NGKgV7+oegwNdNtbNF5aX6LUtMwOp5gYiKSF1Nk0ub8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777392853; c=relaxed/simple; bh=67wDmxJ3v0D7azwKdSyF1seFoWWxCmMFNMvA6kd6Ops=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Wa5q0UHRRY8agaphHzZdAcxWYqCUENWrl0CSTqXO6zHhxmse1bhrnbawpt0Z1NAdAhkxKe95pNoNGV+83+dic1i9C0U09BwdmNyEwsxzGD9KoaeJl52MJRQx4gzr2+ztbyBAcVVvg5LBuV5OM+0Aauw+sRolmvrfk+w2l8Q+fPo= 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=dQg9c+g0; 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="dQg9c+g0" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1777392842; bh=67wDmxJ3v0D7azwKdSyF1seFoWWxCmMFNMvA6kd6Ops=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=dQg9c+g04wfiQXa4L29DD0SCn3rfQo0h4bhB7cUqw9w/m0KvKqkkD1KVVQ5l+8LRw kW3Cz8rkVt49bGwsCtUZ/+rqDL449FL1zfzFhgTOspoO+4EEEcEH/8+ihbiA3IEFmG 9yHi3LaNZmhHpNTGwa3v0EG5UqVKrZmM6J7PwR+n+sv3FBIeZa1I37lvKv9SxtWWER g1mlt9KeSeNBa8y6FWe78ZYlq2rP3W6eyYTIzDXuHuNNVaauPBZrs70o72AG1lFxXO 0VImHn5AL3WenE/pvOSF3QvTOeLHUkHb16JtKrKze753KxOHZgqEjC/Fn2gQ3XnTTH ak/UiDFBY1nOw== 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 76ECC17E15BE; Tue, 28 Apr 2026 18:14:02 +0200 (CEST) Received: by jupiter.universe (Postfix, from userid 1000) id 984C6480065; Tue, 28 Apr 2026 18:14:01 +0200 (CEST) From: Sebastian Reichel Date: Tue, 28 Apr 2026 18:13:55 +0200 Subject: [PATCH v4 16/16] 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: <20260428-rockchip-usbdp-cleanup-v4-16-7775671ece22@collabora.com> References: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@collabora.com> In-Reply-To: <20260428-rockchip-usbdp-cleanup-v4-0-7775671ece22@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=4942; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=67wDmxJ3v0D7azwKdSyF1seFoWWxCmMFNMvA6kd6Ops=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGnw3MnW8CiIqQBhhqfXKVjaTn1rdb38SEoqq 4GEkc+Bgl0Q+okCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJp8NzJAAoJENju1/PI O/qaP5cP/13Aaft8oT737xrpkiUEL1jK6qvY/AcjzmzB37j0xavZ2FafsH3BTt+HH6PBKjtE3QX nKOSrF/PWSxdjtIdUYH3jLMSXb5hwRvUPeys1nhIzqWPBrBS1qTBhutRS2Zpx6JJ71zsMS39Bbf jjLUs3hEhB4P1rvUXPN0mmssmZJSMrzbqw22YE8if+gaZv3FbDK0eSxKqhPbLhArYFPqSC9Q0Cy BwndPrujnAAN4n6RrLLdEMTiGklUdaZkwvKuTPMu4bwpafnm8PiMkF+CVCj/cNmHlRezd6VMz73 UmSiAw+GXgIF2bmiEKikLkqP2LkDTYnrn2VmlouhokzhkfjvAys/01SNA+dE2T9BOWeVl1op5tg kQdeLhR9Euy3Ips8IkuVg2CAv9X/2Hh2iaDQ9DoECSISnAhFSOy2eITbSNOGQS5rCPYVcu4RfUY hYHIZMf1c9zwmyfWOQhpa32H1qzLUsO/6roOXw4Bu75UrWixQrkMZAi/TOg7aeo9zfOPK+yfaZB slbEwJ+tnjlLmZIzzkWc9HQ73QDIZmH1yilVKpiCiXctAwSygQa+qBujNG+CBVgrtMTzF5IDgl8 +LvL0Tw623G49bcPCDu8+8QTjKNNJo5e/IoDfV6Zm4J230OIgqdMsYU+0nZIFFejFkt8OqdzVk1 SVn5lrpCGfbrJboxqYBsxHg== 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 | 60 ++++++++++++++-------------= ---- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockch= ip/phy-rockchip-usbdp.c index 17637d92cf9b..f318b04c097d 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 @@ -654,14 +655,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) @@ -671,8 +673,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,12 +1044,10 @@ static int rk_udphy_dp_phy_init(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); =20 udphy->dp_in_use =3D true; =20 - mutex_unlock(&udphy->mutex); - return 0; } =20 @@ -1057,9 +1055,10 @@ static int rk_udphy_dp_phy_exit(struct phy *phy) { struct rk_udphy *udphy =3D phy_get_drvdata(phy); =20 - mutex_lock(&udphy->mutex); + guard(mutex)(&udphy->mutex); + udphy->dp_in_use =3D false; - mutex_unlock(&udphy->mutex); + return 0; } =20 @@ -1068,26 +1067,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 @@ -1095,10 +1093,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; } @@ -1302,19 +1300,18 @@ 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; + int ret; + + guard(mutex)(&udphy->mutex); =20 - mutex_lock(&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); =20 -unlock: - mutex_unlock(&udphy->mutex); return ret; } =20 @@ -1322,15 +1319,14 @@ 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 @@ -1345,12 +1341,10 @@ static int rk_udphy_typec_mux_set(struct typec_mux_= dev *mux, { struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); =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