From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 D393B346FAB for ; Tue, 17 Mar 2026 06:51:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773730281; cv=none; b=Z9ep/wEaHSDCKwyZ7Wq2BO3U9TUjZC82e5eblrmwsHso6dW9YmIPliEZGd5bRDbClPixXb2DJ3Kl1C2NXkX3fLX28cZ+xf3i5L4YuSVpsve1lOs6laOna4bAuRV23HlYTrnuWRz1PoPXlZw86ODytsHUmW3aXmUb45EAL+fihUM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773730281; c=relaxed/simple; bh=P6QOj79uGqUUTmFWWCgwizDSXV2Y8VLx9ZssNjQzs/A=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=h/6XPQdW54UO/nw/I2RDCkqzwemP1x4qfrVws5ZbJ35juonH0wzLAChY6JXfe8c6quX51NulQRqfl1lhXa7irS+9Wan7Xe+Qnm5qg+20DCjNkIdvOO2dXebh58BcTvrc8HWalkdyPQTlhGtXGBq0MMgM8nTxHUKx0KEod5iqi4Q= 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=bRBZ5bTi; arc=none smtp.client-ip=209.85.128.53 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="bRBZ5bTi" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-486b96760easo625615e9.2 for ; Mon, 16 Mar 2026 23:51:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773730278; x=1774335078; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=kRFgjjgGVyYNyHCeB8CPE6JtG10vzKcx3Yh72acI/E8=; b=bRBZ5bTinHZsmVbc8rWAL2V6q6cxKX+NwI5I6nSXGTtnA0jN/hb3sBRwO3cLakRdP2 OP0CqW82q9Of+dhxsqPL3J/H6WC57mXGf1WvfTSqgXyacoAKFuL7KHRBEeqJGi84M2FI PeAGQFPVOQUnUtF7YpzYN46S+GxmvjtffC7FGDw/3b15Id9cWSihd//BoNV+GIYrnlqN e1oXRA9cf5ufiyzVKgyEQTV51+9nIrJX8QC2HfBr1sXQzpN7Fydb0FXx09VjbRXACgLM TEUAv6BziXtqMNRM7Vv0A2cg8eNc3t8Yi9Y2gUswn7kGXdJV8lEXdZUKk/UafPFSrO/f NHvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773730278; x=1774335078; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kRFgjjgGVyYNyHCeB8CPE6JtG10vzKcx3Yh72acI/E8=; b=Qa5ZTHsuM13QrE0qohWaoXkVZZ9a9f9+tgyHp6r5Z7feLp9CdYfV/tXDJ849rueWeH 7qzp5Y/jDHVsB+l3Tfo6L2S0DI6+ETGd5SpDeU6bgWTf5L25gW2srnonw/HArfuuBSlL w2SoXYJ7IWkVr+KqCQWYeBuG2odv/s1rvkf9C4EVkbPErB7to5wwAVp0bccpwpf6ZyfM HvvATurV/USPryRLE3ukXblSggHpcXHxOsEYimz7gg3Xyh6BHRfgd3xax6+BqhIjjYJo PhvNAdWnlpqRj6QcCtrytINNp5j+UYtk3uRcEn0pB3JeBy6a1OcI0h7HGSU6IniVlZiw bbDw== X-Forwarded-Encrypted: i=1; AJvYcCVwBRpxhNubZ085aPFpoJnmyppClaoGKmlVjR1fi187ZxpB0GBdn49yQ2uKXvHi5RZr+WxysekHw+oXe5E=@vger.kernel.org X-Gm-Message-State: AOJu0YwDyI+bTE0Y7wPIlsaHXD1N00pE+uhXXpWujkFzPJQ/T14lOVXA Mc1rbc9DmXRfpu5Xh8SbbxTwm5jwpA8rAFRW7vnmAmacw1B9DK10Fod5 X-Gm-Gg: ATEYQzxy1cvqh3rTWUBUo72cPf4V0EF7i0FSmgrVXeo6tEdrop3la37OEA3ZsbBL2N8 ntQamK84xskDiEOa0JxDcUKylmlmb/IoBkejXAUisiF87k+zbbVvexOMCNENFKHL6uvpJ/qE9l5 3/qQFNdw4DKpnNBDYsOCggnEZvnrD19ncd6KvSvLGVBjElXP45hN7pFAZ/tbWNOHBlcUc3dNXCQ 2SzRoZ4fSCB5SBsHs637VnKbG+J/IIKtzxL1IYemYDw0Kq6HzYw/vPkpAmd1h2+EkgN8cFc/hW1 Di/uQ9M5fFjbyunD9BQdRhpjiCjJuvEYDhmPlYmllydl1A92BJJjWxVDhBOQ0R8hOkjIWzCivZ4 wAiDHE7nIv31Y4I0eXOwT7HmzpVlsZ152LGfg1d72uCtnxmNFCUiSRg84JYp81qUMnQuUQQpt+h 2bdZTrm1bNCf60AEmJvgS2gFjhHJ+CIdcrgoZ5HMKhubxq27u2eiIkkO/d1OwV+7LpmWwy0U/+e yRVIDJhq8SOk+JEorjRWvYAi10/4Sgr7ubjALsNj1l1rsjOtFLNWSYrLuTZH5cBpQ== X-Received: by 2002:a05:600c:8b28:b0:485:a4de:f4f9 with SMTP id 5b1f17b1804b1-485a4def6dbmr14764955e9.27.1773730278003; Mon, 16 Mar 2026 23:51:18 -0700 (PDT) Received: from ?IPV6:2003:ea:8f31:8700:fc4e:d1e5:d744:5c14? (p200300ea8f318700fc4ed1e5d7445c14.dip0.t-ipconnect.de. [2003:ea:8f31:8700:fc4e:d1e5:d744:5c14]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4856eae3396sm46175465e9.9.2026.03.16.23.51.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Mar 2026 23:51:17 -0700 (PDT) Message-ID: Date: Tue, 17 Mar 2026 07:51:14 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH next v1] r8169: Fix PHY lookup for mdiobus_get_phy() and improve error reporting during probe To: Anand Moon , "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 , "open list:8169 10/100/1000 GIGABIT ETHERNET DRIVER" , open list Cc: Robin Murphy , Danilo Krummrich References: <20260317061700.7734-1-linux.amoon@gmail.com> Content-Language: en-US From: Heiner Kallweit In-Reply-To: <20260317061700.7734-1-linux.amoon@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 17.03.2026 07:16, Anand Moon wrote: > 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. No. The PHY always shows up at (virtual) address 0, due to the MAC register based way of accessing the internal PHY. Do you have any concrete example of such a "hardware or buggy bios"? > > 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/ethernet/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 = tp->pci_dev; > struct mii_bus *new_bus; > - int ret; > + struct phy_device *phydev; > + int ret, addr; > > /* 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_private *tp) > if (ret) > return ret; > > - tp->phydev = mdiobus_get_phy(new_bus, 0); > - if (!tp->phydev) { > + /* find the first (lowest address) PHY on the current MAC's MII bus */ > + for (addr = 0; addr < PHY_MAX_ADDR; addr++) { > + struct phy_device *tmp = mdiobus_get_phy(new_bus, addr); > + > + if (tmp) { > + phydev = 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. > - */ This check is needed. It's seems your actual intention is something completely different from what you state in the commit message. You try to find a workaround for the issues with request_module() from async contect, caused by the referenced change to Rockchip PCI. > + } > + > + /* 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, maybe realtek.ko needs to be added to initramfs?\n", > - tp->phydev->phy_id); > + phydev->phy_id); > return -EUNATCH; > } > > + tp->phydev = phydev; > tp->phydev->mac_managed_pm = 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) > > rc = r8169_mdio_register(tp); > if (rc) > - return rc; > + return dev_err_probe(&pdev->dev, rc, "mdio register failure\n"); > > rc = register_netdev(dev); > if (rc) > - return rc; > + return dev_err_probe(&pdev->dev, rc, "register newdev failure\n"); > > if (IS_ENABLED(CONFIG_R8169_LEDS)) { > if (rtl_is_8125(tp)) > > base-commit: 95c541ddfb0815a0ea8477af778bb13bb075079a