| Message ID | 20260923-qcom-sa8255p-emac-v15-5-e82f33720737@oss.qualcomm.com (mailing list archive) |
|---|---|
| State | New |
| Headers |
Return-Path: <linux-sunxi+bounces-26200-sunxi=pue.re@lists.linux.dev>
X-Original-To: noreply@patchwork.local
Delivered-To: noreply@patchwork.local
Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])
by mxe881.netcup.net (Postfix) with ESMTPS id 476641C03CB
for <noreply@patchwork.local>; Wed, 23 Sep 2026 18:39:21 +0200 (CEST)
Authentication-Results: mxe881;
dkim=pass header.d=qualcomm.com;
dkim=pass header.d=oss.qualcomm.com;
spf=pass (sender IP is 172.234.253.10)
smtp.mailfrom=linux-sunxi+bounces-26200-noreply=patchwork.local@lists.linux.dev
smtp.helo=sea.lore.kernel.org
Received-SPF: pass (mxe881: domain of lists.linux.dev designates
172.234.253.10 as permitted sender) client-ip=172.234.253.10;
envelope-from=linux-sunxi+bounces-26200-noreply=patchwork.local@lists.linux.dev;
helo=sea.lore.kernel.org;
Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org
[100.90.174.1])
by sea.lore.kernel.org (Postfix) with ESMTP id 2D6841220D0
for <noreply@patchwork.local>; Wed, 23 Sep 2026 15:16:24 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by smtp.subspace.kernel.org (Postfix) with ESMTP id 7EA0F549376;
Wed, 23 Sep 2026 15:15:21 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com
header.b="oaYnBI4F";
dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com
header.b="EBVfDOnN"
X-Original-To: linux-sunxi@lists.linux.dev
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
[205.220.168.131])
(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 76146542ECF
for <linux-sunxi@lists.linux.dev>; Wed, 23 Sep 2026 15:15:17 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
arc=none smtp.client-ip=205.220.168.131
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
t=1790176520; cv=none;
b=keks8VnpGd28sbgqEwn8GNzkKmGtbh2Hxc7AAurI/o41Sy+ueDte5CGKpWCiS/7F68bg5I73SaS1ZBXFK4P+xGYVzsi2zD/xgRsQyze+2gF5xvOIN7389wsJZPA/IzUX5r+FbhGS3ZPMYAP8R7tZRs5BtpUb6XQVWHcO5fu00Yk=
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
s=arc-20240116; t=1790176520; c=relaxed/simple;
bh=Rq+TDPdqhF6BqR973VgYSIdLvxRoWPIkY3OnfX0xzLQ=;
h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:
In-Reply-To:To:Cc;
b=e6DxEZelQUl0OylNFUG2AcbZNlFU7hg06uik1MR7xZ7+1p81y2/g/yygrXpEbpBZHnT1B0saiNg86VbS4WB8Bn3ispjprII81qwdEHMGrx8sNbFxQdY8yMPQiPC01ITCgfOlu6cqAsC3JL8SNw4c0DzchssgE/0+lVM8wVyQ14E=
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;
spf=pass smtp.mailfrom=oss.qualcomm.com;
dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com
header.b=oaYnBI4F;
dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com
header.b=EBVfDOnN; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org;
dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
spf=pass smtp.mailfrom=oss.qualcomm.com
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
68NDLDV02057216
for <linux-sunxi@lists.linux.dev>; Wed, 23 Sep 2026 15:15:15 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
cc:content-transfer-encoding:content-type:date:from:in-reply-to
:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
RyU4Ifafpyh/FLtyPoayXjzPbwMU/X5o2UFaqrYzldE=; b=oaYnBI4FY86JFFj3
NUUpWuY4PVq1DwIYGrcirTaLqvcQk/tmiNCY6/X9tXRqfDyhxo2AxQmecmdOPRo+
6XoTmN005WvzxmivYvjDXyhSSOLn7TZEm05ri3XmUUtOpRhIQ4DRmS+q5BjFm1GY
EaVVKxuos1j8XiiBf0t3znXt9blhwYVawv9yR1Qq0y2VD6pxmqEVd+9oIwpiNwlQ
dcrF0fIILFrB0X+oABM5Qc/qSuZjk4kTc/ElbGTRrjhVpnzhRxMK4o5MyHvVbcu8
x1zwYIk7NDQnfqHz851x0gX00BMUOi2nxJ63Frq30NfAsKsXZuOPyXSEyshW9Tps
aIbaTA==
Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com
[209.85.221.197])
by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gvfjv0hf3-1
(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
for <linux-sunxi@lists.linux.dev>; Wed, 23 Sep 2026 15:15:15 +0000 (GMT)
Received: by mail-vk1-f197.google.com with SMTP id
71dfb90a1353d-5c8337b12d0so447058e0c.0
for <linux-sunxi@lists.linux.dev>;
Wed, 23 Sep 2026 08:15:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=oss.qualcomm.com; s=google; t=1790176514; x=1790781314;
darn=lists.linux.dev;
h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
:content-type:mime-version:subject:date:from:from:to:cc:subject:date
:message-id:reply-to:content-type;
bh=RyU4Ifafpyh/FLtyPoayXjzPbwMU/X5o2UFaqrYzldE=;
b=EBVfDOnNqJkveqqomdIwwf79ZCHrlSeXzP0Yd94tXIQxpuSx0nJEKVBKbHvNUiQWe6
usjrt6+D4Ft7eR7cy2DR3mz1XR0qhxEG0p8JBwO6iQvRvvJnjytJO8BSaxrO6GRxOsO1
nl+Jc52Hf0oxrYBThLvDaic676hTK4MoivgRT5Djeb3IkPy4OCWN9ZGaMn5b+WrrsbtX
HGgDyC7oWdDbDfzDXXZeE6xJTAbPEL/KXApgEI800D5B4JJ2ptObuZL9a18EN83yOiKJ
zBqrXPksGrahQavPle7vXRmO762MQDPpQTYGEtnUJ99DVwOyeq4LowFpQdFCykaSKDsV
ylzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20260707; t=1790176514; x=1790781314;
h=cc:to:in-reply-to:references:message-id:content-transfer-encoding
:content-type:mime-version:subject:date:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
:content-type;
bh=RyU4Ifafpyh/FLtyPoayXjzPbwMU/X5o2UFaqrYzldE=;
b=ixwH4JjN0A46eM7nZyb9B0N6sWwEYADNNskLZKGFjl2dlALcaAdCa8hgROHkFvLTL7
fxgJ/viqs2u1ys3gpV9NFT/YFFRprAPiftU9pwsRqyJXHrtHxJHhQPXGUB71+0yDtbO/
C0gMX2UBouQa9/DFuLHkfpNtBosaVUSeKiHb4cpoD3zMHKRmgyRxPuPIj8y+Pl3T6NRT
0QIzfu9BCZfpQssIGKFCq8tx9CLqPtwiPzEbMbvym7sxlfeNBneI7pQMZH636aUmgPNP
rzLeydrAJi0GTA9n5WSxmp7+5CJiI7QcsqV+7A0XfLMCu05KEgutBHFwEmAvyIyWQ2Vf
CUGQ==
X-Forwarded-Encrypted: i=1;
AKwUvBynUmzPWkZ+c20r50WMBdXuYUeHmddg1IYMp5UDVPaWoj/yyYrdhIFcYoW3xZY4pff+J9ng4zgmDUwa6A==@lists.linux.dev
X-Gm-Message-State: AFuF++lNmP7RP5pFYUn3fr5Y7Fqr2iLkRKRZfflkMoy42cdivA46MRr2
Q4nkfV6u8R3nZU2UiaxDYsR9NTA8KPu4o2/HyESkTEjD1tWoG8XBFgx5/Us2oe8BxPJnDhBXfqi
Gkocf+91pcWOPmU4tBD4NhnSFbWnMD+IubZ98QWl1sq3+tUC4TNULh6HdTWNHQgDp5syzIuVlZg
==
X-Gm-Gg: AYBFou3AC9GgQJ59g1uZlSAhhZjFtXqg6md1uJsBYpoJ/j3BqRHZP5fsVh2gZ54P+v3
CgRaYKw6NzDn48kGdtugNePjqgFyAmAcCI1lq0OzI4ffROYvkXgUeB+ge9sIB94EXuBW4oSZHKh
0dDxCn4yN9wTIrz+HE5Z1Ee91aPj7NmW9YJusAjQuL0D+ZvphRDhTPyKKa4Y8eVIrfmOjjK/gSZ
GqPSIqjH3oD0orV6L4UyfyUcQw5JzAwTss+p6a5qDB4UQFH3wmKwP8HcTfK+GXrNmAEeYK8r2Y5
S2abCiGNWz1wXi/O2ZcMq+msUNhjcn/utk3KnCrsRhGndRxsNnnXJNGxdx2snvCsY0+5UBlGTiD
sk/x68sAIzRVIvbsAYXpfdAU3HmUS
X-Received: by 2002:a05:6122:e442:b0:573:a779:62cf with SMTP id
71dfb90a1353d-5c9f15a8529mr3242485e0c.7.1790176514357;
Wed, 23 Sep 2026 08:15:14 -0700 (PDT)
X-Received: by 2002:a05:6122:e442:b0:573:a779:62cf with SMTP id
71dfb90a1353d-5c9f15a8529mr3242398e0c.7.1790176513783;
Wed, 23 Sep 2026 08:15:13 -0700 (PDT)
Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:34c6:dbd6:5b58:a3fe])
by smtp.gmail.com with ESMTPSA id
5b1f17b1804b1-49fe0c4054fsm55126325e9.3.2026.09.23.08.15.10
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Wed, 23 Sep 2026 08:15:13 -0700 (PDT)
From: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Date: Wed, 23 Sep 2026 17:14:39 +0200
Subject: [PATCH net-next v15 5/9] net: stmmac: qcom-ethqos: set serdes mode
before powerup
Precedence: bulk
X-Mailing-List: linux-sunxi@lists.linux.dev
List-Id: <linux-sunxi.lists.linux.dev>
List-Subscribe: <mailto:linux-sunxi+subscribe@lists.linux.dev>
List-Unsubscribe: <mailto:linux-sunxi+unsubscribe@lists.linux.dev>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260923-qcom-sa8255p-emac-v15-5-e82f33720737@oss.qualcomm.com>
References: <20260923-qcom-sa8255p-emac-v15-0-e82f33720737@oss.qualcomm.com>
In-Reply-To: <20260923-qcom-sa8255p-emac-v15-0-e82f33720737@oss.qualcomm.com>
To: Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Vinod Koul <vkoul@kernel.org>,
Giuseppe Cavallaro <peppe.cavallaro@st.com>,
Chen-Yu Tsai <wens@kernel.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Kevin Hilman <khilman@baylibre.com>,
Jerome Brunet <jbrunet@baylibre.com>, Shawn Guo <shawnguo@kernel.org>,
Fabio Estevam <festevam@gmail.com>,
Jan Petrous <jan.petrous@oss.nxp.com>, s32@nxp.com,
Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>,
Romain Gantois <romain.gantois@bootlin.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Magnus Damm <magnus.damm@gmail.com>,
Maxime Ripard <mripard@kernel.org>,
Christophe Roullier <christophe.roullier@foss.st.com>,
Bartosz Golaszewski <brgl@kernel.org>, Radu Rendec <radu@rendec.net>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org,
Drew Fustini <dfustini@tenstorrent.com>, linux-sunxi@lists.linux.dev,
linux-amlogic@lists.infradead.org, linux-mips@vger.kernel.org,
imx@lists.linux.dev, linux-renesas-soc@vger.kernel.org,
linux-rockchip@lists.infradead.org, sophgo@lists.linux.dev,
linux-riscv@lists.infradead.org, brgl@kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=1365;
i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id;
bh=Rq+TDPdqhF6BqR973VgYSIdLvxRoWPIkY3OnfX0xzLQ=;
b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqs+znmxfJ65EaHdReTe9c8RxTkoxpSJy+BciHI
ooUHTBSphqJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCarPs5wAKCRAFnS7L/zaE
w7eGD/9me0usFPzjz9Ap74v8M7uevU7NNQu8WYdLzpmJBCHqK46zb9X3Qs31qUKCdGnsbihLbjr
i7C+wf7iDiXNppsWiIlCGYG4rcfZr4DVYR31Lynd5rZ9PcdXo0M7xf2aFf4DsojYNa9fye3g3do
TSI32h1enIQKeNqFocyf8COvMtqtaAdDYXnQOFzIfulM1+e5AWjLLse+e+ppmzj3tu3PJUlkjEw
s/RVWFLLFDAhl+1Qb13GOnrTJjMPrr+0gb8aAX0ApIh21VxiWlk/lkP/UMboIQjsDMyr/0E5Tk7
1M+nCLSLRLuJPVpgimvvWmeQWrc8t6tE+avihxWVQjF1yPTWqG6YnG5PPmhJK4visB5CI5gE+Qr
3eI0RmGvllLQifmGqzMC6ivwn3DI5Fljv5hug3bePkXBkjR4eF91PptFTM+rRu4LU1RdWwKYpCU
uTYPakyKgugnnE3+ga/iY/SfTfJUJaBscMdUW6G4VE3rDiM+0hg3onBrwKkxQ6iWwFqM81uTgJ6
UdOBGv9yzdFuevJdpJe7T2JDJ32Zp+zGmbdn6jr6OAiyxz8uUgq+bYrYSCeB/jXsDjUtvQ+1Mbz
PHjDsbKrjzuRXy32lDmtrXX0dukM9pTbcJN2PXKbKJJjF5Y3FtYhPaHU4ryuGcX9Lr9HyNGtWWX
PHxpgsRslwWmWhA==
X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp;
fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIzMDA2MCBTYWx0ZWRfX+vUYraj7y/H8
6cGNUATq4ngAy+RAYW2+4UHbGqznAnfOhKDHmBRq2MyDKP673b7RYYYq/rm+qL9KeYFAJNMLmxz
KBLHGz1AKkVP4LzHuWyGZTXqUybHWzfVP+4ODb9GnUW2N2jIl9+xGzrnbrOQLdyTlhDR1CSQqTw
QVytq0ie05k/JXRjW4FTMipPzY//pmX7Oas2jqBXlEG/1ELhJxEClC5JyQxQYNIm/gumP+GPEEh
I1n8yNhVhbbW+kg15vjrOIktGSrrHbyR+smxU6KC2Ezqsl8kidsmcy2BeQlb5GzmiwJGS2DHkQW
S1wlDwRtY+2c53faMAMyaB9u3gVfJGqpdO9GaLllKcGkQ/NMnHHeQGBjVMN+vqvhYsIWYStW2HE
XU8FAi9o9BYj1Tc3YVSF0hoo+4FluGMw01K1U1spheFJeDQ9kAVVodDRzeZpn3afrNnX+WN7Zo+
D+3RL65XJShkBS+1gzw==
X-Authority-Analysis: v=2.4 cv=aIxlOr9m c=1 sm=1 tr=0 ts=6ab3ed03 cx=c_pps
a=JIY1xp/sjQ9K5JH4t62bdg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10
a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8
a=lIIuVyqIMTwqdMfQNTsA:9 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22
X-Proofpoint-GUID: FU6t0jioQvztzwfaTEVj-gVlO6xUqXg_
X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIzMDA2MCBTYWx0ZWRfX7LFqa0qxZC5f
HEXS914FGyO39QJjWnPiSAaywyKFecF+y6qUIohvO9ljTLsQB/SqUu71KUVMbD47v2Fmy/KC9G0
SE6CMrXPpdAEnODyef1LwspY9oiQZpo=
X-Proofpoint-ORIG-GUID: FU6t0jioQvztzwfaTEVj-gVlO6xUqXg_
X-Proofpoint-Virus-Version: vendor=baseguard
engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49
definitions=2026-09-23_04,2026-09-21_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
impostorscore=0 suspectscore=0 priorityscore=1501 spamscore=0 phishscore=0
malwarescore=0 lowpriorityscore=0 adultscore=0 bulkscore=0 clxscore=1015
classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609230060
X-MORS-Enabled: yes
X-MORS-DOMAIN: patchwork.local
X-MORS-HOSTING: hosting172546
X-MORS-USER: hosting172546
X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?=
|
| Series |
net: stmmac: qcom-ethqos: add support for SCMI power domains
|
|
Commit Message
Bartosz Golaszewski
Sept. 23, 2026, 3:14 p.m. UTC
Call phy_set_mode_ext() before phy_power_on() in
qcom_ethqos_serdes_powerup(). This is harmless for existing users but on
SCMI systems this is required for the PHY driver to select the right
performance level - which translates to the link speed. This is done
ahead of adding support for the firmware-managed EMAC on Qualcomm sa8255p.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
Comments
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider. Critical: 0 · High: 0 · Medium: 1 · Low: 0 If you believe none of the issues are legitimate, please reply to each issue of Medium severity or higher and explain why the AI is wrong. If any of them are legitimate and you plan to respin, please let patchwork know by including "pw-bot: cr" as a separate line at the end of your reply (one such reply per series is enough). - [Medium] In qcom_ethqos_serdes_powerup() (drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c), the patch… -- net: stmmac: qcom-ethqos: set serdes mode before powerup This patch adds a call to phy_set_mode_ext() before phy_power_on() in qcom_ethqos_serdes_powerup(). On SCMI systems the PHY driver needs it to pick the right performance level, which sets the link speed. It prepares for adding support for the firmware-managed EMAC on Qualcomm sa8255p. > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > index ac7d6d3e205a1..47b70b5e706f2 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > @@ -601,10 +601,19 @@ static int qcom_ethqos_serdes_powerup(struct net_device *ndev, void *priv) > if (ret) > return ret; > > + ret = phy_set_mode_ext(ethqos->serdes_phy, PHY_MODE_ETHERNET, > + ethqos->phy_mode); > + if (ret) > + goto err_out; [Severity: Medium] What happens here if ethqos->phy_mode is one of the RGMII variants? qcom_ethqos_probe() accepts RGMII, RGMII_ID, RGMII_RXID and RGMII_TXID. It installs serdes_powerup whenever a "serdes" PHY is found, whatever the phy_mode is: qcom_ethqos_probe() { ... if (ethqos->serdes_phy) { plat_dat->serdes_powerup = qcom_ethqos_serdes_powerup; plat_dat->serdes_powerdown = qcom_ethqos_serdes_powerdown; } ... } The qcom,ethqos binding allows this combination too. It has "phys: true" and "phy-names: const: serdes", with no condition on phy-mode. Both SerDes PHY drivers reject any submode other than SGMII, 1000BASEX and 2500BASEX. In phy-qcom-sgmii-eth.c, qcom_dwmac_sgmii_phy_validate() is called from qcom_dwmac_sgmii_phy_set_mode(): if (submode == PHY_INTERFACE_MODE_SGMII || submode == PHY_INTERFACE_MODE_1000BASEX || submode == PHY_INTERFACE_MODE_2500BASEX) return 0; return -EINVAL; The new qcom_dwmac_sgmii_phy_scmi_validate() in phy-qcom-sgmii-eth-scmi.c does the same. Take a DT that sets phy-mode = "rgmii*" and also references an enabled serdes PHY. With this patch, powerup would fail like this: stmmac_open() stmmac_legacy_serdes_power_up() qcom_ethqos_serdes_powerup() phy_set_mode_ext() qcom_dwmac_sgmii_phy_set_mode() qcom_dwmac_sgmii_phy_validate() returns -EINVAL goto err_out -> phy_exit() "SerDes powerup failed" is logged, and both stmmac_open() and stmmac_resume() fail. Before this patch the same DT powered the SerDes on without an error. The other caller of this API in the same file already limits the call to SerDes modes: ethqos_mac_finish_serdes() { ... if (interface == PHY_INTERFACE_MODE_SGMII || interface == PHY_INTERFACE_MODE_2500BASEX) ret = phy_set_mode_ext(ethqos->serdes_phy, PHY_MODE_ETHERNET, interface); ... } Later patches in the series don't change serdes_powerup. The patch that updates phy_mode to the resolved interface in mac_finish() only touches phy_mode inside mac_finish. mac_finish is only installed for SGMII and 2500BASEX, so an RGMII phy_mode would still reach this call at the end of the series. I checked the in-tree DTs. The boards that reference a serdes PHY (lemans.dtsi and monaco.dtsi based) all use sgmii or 2500base-x. The RGMII boards have no serdes PHY. So "harmless for existing users" holds for in-tree users, and this only affects DTs the binding allows but that aren't in the tree. Should the call be guarded the same way as in ethqos_mac_finish_serdes() (SGMII, 1000BASEX and 2500BASEX only)? Another option would be to install serdes_powerup only for SerDes phy-modes in qcom_ethqos_probe(), or to restrict the binding. > + > ret = phy_power_on(ethqos->serdes_phy); > if (ret) > - phy_exit(ethqos->serdes_phy); > + goto err_out; > > + return 0; > + > +err_out: > + phy_exit(ethqos->serdes_phy); > return ret; > }
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c index ac7d6d3e205a1ab5b391def879d6f1033a0961b6..47b70b5e706f221c01f1c0ae3b1acafae6641165 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c @@ -601,10 +601,19 @@ static int qcom_ethqos_serdes_powerup(struct net_device *ndev, void *priv) if (ret) return ret; + ret = phy_set_mode_ext(ethqos->serdes_phy, PHY_MODE_ETHERNET, + ethqos->phy_mode); + if (ret) + goto err_out; + ret = phy_power_on(ethqos->serdes_phy); if (ret) - phy_exit(ethqos->serdes_phy); + goto err_out; + return 0; + +err_out: + phy_exit(ethqos->serdes_phy); return ret; }