From nobody Tue Apr 7 01:01:16 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2769A21D599 for ; Tue, 17 Mar 2026 06:17:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773728234; cv=none; b=ujUeaaS17lyeLjEEHDA+54z0NqPCqhqqulMOc25gStPxVuSVdnKNHgs4vjN6KtoWnPTwFgMJ6rSLJBQnUafw/dvOB/m6wwr2R1+NX+Jc/UVo5ijgTSnnlZlnWKdeyzyI0Ic/VwhfiP1T5XbUASakjQhIA2sjjc+FFaPsE0YPX74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773728234; c=relaxed/simple; bh=KhEyLhwD3t/1DeNzsLf35QUe9prb/Rf9evk+SRQ3r5A=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=d9cNUyfDRT/vqA7yF3G3pw6YkZjujV3gLboGCX63a31w1COakpcU0CJMa6RXmEvPc3gWBbT8rfQk3NhP+nV1MwSwru0bGUe/+3ysx1NamFjI0KpEzHwo+FjLithGwV7iXTNumLlqAnb+bFSppufwFyDNP3n7xLPu0GbEg2P+aN4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mwvL1r/N; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mwvL1r/N" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2ad9a9be502so32329805ad.0 for ; Mon, 16 Mar 2026 23:17:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773728232; x=1774333032; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=JfBd9wzIm3z3/w3s3Qc6qftjWXvNIg0CtCWF9vzwZi4=; b=mwvL1r/Nia+qDop5xvnetxBHBqVMMnAJjn944wA8GhJiGcGKmjJh4kYHqmTld08jNp w/F7nA2j3J5/SZtWumuQIAzYs9uWEivaQ6vHn4z7hRGnONaxatTMbepsKMWSFcc/OpLF Bug9bT/EtWRFp4HEnf871Q40tR3q7wHQ1FgwK7orcZrWNrFAK5BLup6LM5kwmXI6AKtM BlYr2laQiABh4L68sR8IGW7Me7ODX+97ut8IjEogajSuuQTs+VCVI0LceEbW2qIQK5e/ xM/GmyhezInWJglTLWeWESdnXYYqKqLiYHzH/uFPQopGrKxY9EAENdg6WQG32ucVqtuh S0Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773728232; x=1774333032; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JfBd9wzIm3z3/w3s3Qc6qftjWXvNIg0CtCWF9vzwZi4=; b=l9P8VusT2UIsV0PgPyyGjC8tc7ipPxjik5C19XIzFVF6KK6fAD1HpCzM3FoXtOtiDw V9Dih+l92E8c/3Y3AscTNkbwf9VdXCb6DWicSqQoyzP8Cb3uyilqFgMdb4O+4YnhWVNi 7Es9vvAiSIbqL1+VRKH0cLT1NplZu0vxHb/TkmERCQYxIzfXTlXVhZCooUKRxk2ts7BD qhKAfKHnAN58vk6lZINWMNxckdVRxRE5FDpe0PbKt1k18rSbXEPEatF+uF/uvQC2fIqH ubV34+N/nxqMFl3hCG0SylF5P7TmILAcasfpL9ed/I4xlnZoY5TOhMbuSXE9uTeKr+LS Ww4g== X-Forwarded-Encrypted: i=1; AJvYcCWl4fYh+vhqMYdBAa92+3DfZypCe8X+zOOHpC1aczGkmOK1nmB8BzdwcIOyQWPwQ25AMxGXwlwNINXq7aI=@vger.kernel.org X-Gm-Message-State: AOJu0YySYQ20wgp6aeM+zdoOEYDxeSU0t5ceL41gguSJgQlH4Zdiinc6 H1UC7oKBYEyI8Y7HnmbTIZgeZL/uGFHcV6YJKq9B8H6Qk+zWEIf/1wex X-Gm-Gg: ATEYQzwV1Ou1FCODsm//VguHAqA077ymQLfL9BDHv7k82nUF4i1DDgJqmRJ1OlA6ZXu gQbCzyWZxJm//mD2ZvhPodZO14IrC/dN4FGX0zKcYUZFUao5zEB7Zn0tkQMKzS86f++uxmt4/Wk 9GDHpN6A5ZNTPG6FVvIZ7BS3JnXSG0Cgqpm1Gl8rdoSGwru5ToeCJs4EnLD6M+9sFnEdhhD7krm uzAKlgmpJEageZdF763Dk7p945+PUa3ZYdqFJte3ZlMoG5CdOKN3bGj+IDK7m0IR2J6kK+C3cWr OWpD+VkbiiFDpgUjqZYYVXHVOGUWBCvBR9kJDwSoz/7rwnWQ+2DIN4FXJsWUxQD5htlvfBZvQai NbHcYkTsOw66JalnFCi12Ly/tbP80/d1uiWC9gnAOKIT3Wo/0UOSOrYzKzhfnFObgRZPkA9Nc8Q utIW6d/jjvYGIZ/FvQW1D6MNBTTyMh6N4= X-Received: by 2002:a17:903:2308:b0:2b0:659e:97bb with SMTP id d9443c01a7336-2b0659e9ceemr16900895ad.46.1773728232301; Mon, 16 Mar 2026 23:17:12 -0700 (PDT) Received: from rockpi-5b ([45.112.0.200]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b05b4e6094sm44173875ad.77.2026.03.16.23.17.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2026 23:17:11 -0700 (PDT) From: Anand Moon To: Heiner Kallweit , nic_swsd@realtek.com (maintainer:8169 10/100/1000 GIGABIT ETHERNET DRIVER), Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Manivannan Sadhasivam , Shawn Lin , Hans Zhang <18255117159@163.com>, Niklas Cassel , netdev@vger.kernel.org (open list:8169 10/100/1000 GIGABIT ETHERNET DRIVER), linux-kernel@vger.kernel.org (open list) Cc: Anand Moon , Robin Murphy , Danilo Krummrich Subject: [PATCH next v1] r8169: Fix PHY lookup for mdiobus_get_phy() and improve error reporting during probe Date: Tue, 17 Mar 2026 11:46:58 +0530 Message-ID: <20260317061700.7734-1-linux.amoon@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The driver currently assumes the PHY is always at address 0. On some hardware or buggy BIOS implementations, the PHY may reside at a different address on the MDIO bus. Update r8169_mdio_register() to scan the bus for the first available PHY instead of hardcoding address 0. Additionally, switch to dev_err_probe() in the main probe path to provide standardized error handling and cleaner log output for registration failures. Link: https://lore.kernel.org/all/87bc37ee-234c-4568-b72e-955c130a6838@arm.= com/ Fixes: ec392abc9593 ("PCI: dw-rockchip: Enable async probe by default") Cc: Robin Murphy Cc: Danilo Krummrich Cc: Niklas Cassel Signed-off-by: Anand Moon --- drivers/net/ethernet/realtek/r8169_main.c | 34 ++++++++++++++++------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethern= et/realtek/r8169_main.c index 791277e750ba..0fd735beff92 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -5427,7 +5427,8 @@ static int r8169_mdio_register(struct rtl8169_private= *tp) { struct pci_dev *pdev =3D tp->pci_dev; struct mii_bus *new_bus; - int ret; + struct phy_device *phydev; + int ret, addr; =20 /* On some boards with this chip version the BIOS is buggy and misses * to reset the PHY page selector. This results in the PHY ID read @@ -5462,18 +5463,31 @@ static int r8169_mdio_register(struct rtl8169_priva= te *tp) if (ret) return ret; =20 - tp->phydev =3D mdiobus_get_phy(new_bus, 0); - if (!tp->phydev) { + /* find the first (lowest address) PHY on the current MAC's MII bus */ + for (addr =3D 0; addr < PHY_MAX_ADDR; addr++) { + struct phy_device *tmp =3D mdiobus_get_phy(new_bus, addr); + + if (tmp) { + phydev =3D tmp; + break; + } + } + + if (!phydev) { + dev_err(&pdev->dev, "no PHY found on bus\n"); return -ENODEV; - } else if (!tp->phydev->drv) { - /* Most chip versions fail with the genphy driver. - * Therefore ensure that the dedicated PHY driver is loaded. - */ + } + + /* Most chip versions fail with the genphy driver. + * Therefore ensure that the dedicated PHY driver is loaded. + */ + if (!phydev->drv) { dev_err(&pdev->dev, "no dedicated PHY driver found for PHY ID 0x%08x, ma= ybe realtek.ko needs to be added to initramfs?\n", - tp->phydev->phy_id); + phydev->phy_id); return -EUNATCH; } =20 + tp->phydev =3D phydev; tp->phydev->mac_managed_pm =3D true; if (rtl_supports_eee(tp)) phy_support_eee(tp->phydev); @@ -5790,11 +5804,11 @@ static int rtl_init_one(struct pci_dev *pdev, const= struct pci_device_id *ent) =20 rc =3D r8169_mdio_register(tp); if (rc) - return rc; + return dev_err_probe(&pdev->dev, rc, "mdio register failure\n"); =20 rc =3D register_netdev(dev); if (rc) - return rc; + return dev_err_probe(&pdev->dev, rc, "register newdev failure\n"); =20 if (IS_ENABLED(CONFIG_R8169_LEDS)) { if (rtl_is_8125(tp)) base-commit: 95c541ddfb0815a0ea8477af778bb13bb075079a --=20 2.50.1