From nobody Wed Jun 17 02:53:18 2026 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 01C8441B351 for ; Tue, 28 Apr 2026 13:41:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777383718; cv=none; b=d8ZDzY26hH5/3nvz763RPsU0fBFdx7md6r0I8KFh6fzhyHZznoLLgru27pSi7LwY+U/nkHHwSyP5B14G+H8qdwMbwTfWsWsjfsHc6AiaT9XkfT7spQUWocFQpkIcqhIuIA5XTY/TtTDsV+wjnaXjFyc7EhTUeoaUk0IpHS4Z81M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777383718; c=relaxed/simple; bh=jqBLOubZ4mXa84mx2wvU/yh4dktQrLifIrEBEEYBwaI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=lqLLwyQZ3tBVXIfDo/nzmdfVVpTPJpHeK+Y4+8RIzA1cLfiDaD3Bt61meJ0acUxhMD7b1TpioQMlb/5pksfA12QLDXT7kR6F0ip6QW8ZUrvl5sR/RuPA3Ba47fcu/mYPocRt5Ixx8xNBURrcwKWHrEAwvaXXJhQoYddhhSCcTdM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sartura.hr; spf=pass smtp.mailfrom=sartura.hr; dkim=pass (2048-bit key) header.d=sartura.hr header.i=@sartura.hr header.b=PeUAuQm9; arc=none smtp.client-ip=209.85.219.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sartura.hr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sartura.hr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sartura.hr header.i=@sartura.hr header.b="PeUAuQm9" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-8a016799d2cso125065886d6.1 for ; Tue, 28 Apr 2026 06:41:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sartura.hr; s=sartura; t=1777383712; x=1777988512; 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=TqQCQriovYDSHEdS4S+0Ixb7G/LoMFE2Kp0rbzZf96A=; b=PeUAuQm9wN4GtTfHdKXy5iax09XbMHVUpSG2IzKJuMDaq+z0+s4q+h7CPexUcow/SH 2HVJVxhxlTST5oSh0KhXw0FXsPdBxIR2AZ/u+JojOK5KR8eh7ZlmfJrjSWi23AJj1AAm ZUAm81p+A5HRQjEpFnKzFo+iCDfBmPHEX91KV2jM9/2l8AxlLLoFGkztlEHgloPOlBu9 GgOfHlMTQVJ/IJk1m47Qr1TrtXiIg8CDV0UTJIWmv3a8W4U7lGYwQSU0xW0FlNB52Tbf YNC79Gdswyha6kurkepNpTUUbggzhgpg/YVI1NibeIBPVTopk8U1/vobYhuOE/nGLFoh zogA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777383712; x=1777988512; 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=TqQCQriovYDSHEdS4S+0Ixb7G/LoMFE2Kp0rbzZf96A=; b=fjLjjSlnbuxUV9tELfrmk68mUlO8351ko/OgJEabI7ck9qsOl9xOXo5hcAj2GGIc0h xeAok+J99Ke96EH96IawSs5NvbThr6y6gXkzc6VO27q+L/aZyCSwlf/RWien6u05Bhpe SMuD6AQ8KGRIhxGlVUIQOQo9eBUxZAKctgM58be+Fc4EosbYN4yAgQJ1mUL9HxOd782H T4BhqddAePX8NyCaJD5AI6mj5tZidj+z/hCYsVdYPzsdHm7Nq8xQj7WzDlBHrkTcdjeT 8FgN2buMgdNyPW/LLw2XbrSX9Okv2J0UIHfbaUi9z3SaHYiYRJxQ9Ovh10VIEiW+XlAB eaXg== X-Forwarded-Encrypted: i=1; AFNElJ+VOSxLAzd0gocw7VZQ22iTjr4R9nf5HEhxtqkqge1Vr7DsA+htDZGfhrl/aK8270NLIiVK2IP9cmePogU=@vger.kernel.org X-Gm-Message-State: AOJu0YyrJ/EwbWqxxI70q7EH0D9hGO4NHEo1tcUDZSQW5M5FFdAF9BhX jwXq44cIV//B1JJTBwxas0RsNaOfxK/15E/FjU66CFJ4N0EXDCFQxukyGUabk9ormok= X-Gm-Gg: AeBDieu6PpjjTNSbfjdJjnEOHAH984IVf4c6kj4ZmdNySI2v8i77xv+y/gbhOhftnK8 LprtDkyJ4P8Jpp5aw5WW/j7Ft1UdfwXPd4d2WjTW968c0L6s+fOusruKV7tH0e1YowF+aacZZPV PawYZmGI+44kh5ZeNQHiSKh9K+5Q0quSlbl4oWQsaVp9gwsLcjrkL928JqNIgKGNr+JSvLyzN0C 1oAF9K+Yo2ZxTbSDhLYNcFBIoqlSa2V4WwRpU1y1JboPZS3av/Bl+/WoJMjoUtB1tmDdOxKDi+a wSw1BdRpheaoJac/34y49F6Eig+DLmSBfjUyPOaP3kpqvPePOwSr8kHxep60BykyN/Y0wYYQRMw vEMvYffhIjhlVSGXlY/9cRcYusjNLrc8I88dGJeFTX06AubimZZzcLy7Q5MFw8GJhmPPweOR9ZU 2nkZZwWeg0drA1GFS7io2zRSwukVNofEE7YDSHoQeSk6emBH9aI4OYWwcnmPq9NrtFfplbRr5VV JAhOUUCDimeILeoLNRRQmVKXm+arle0+d/Kpw== X-Received: by 2002:a05:6214:29c9:b0:89c:e38f:6b6c with SMTP id 6a1803df08f44-8b3e301a9f9mr45799576d6.3.1777383712343; Tue, 28 Apr 2026 06:41:52 -0700 (PDT) Received: from fedora (d-zg1-128.globalnet.hr. [213.149.36.142]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8b3e28623dasm20732486d6.19.2026.04.28.06.41.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2026 06:41:51 -0700 (PDT) From: Robert Marko To: andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, Divya.Koppera@microchip.com, horatiu.vultur@microchip.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Robert Marko Subject: [PATCH net] net: phy: micrel: fix LAN8814 QSGMII soft reset Date: Tue, 28 Apr 2026 15:41:01 +0200 Message-ID: <20260428134138.1741253-1-robert.marko@sartura.hr> X-Mailer: git-send-email 2.54.0 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" LAN8814 QSGMII soft reset was moved into the probe function to avoid triggering it for each of 4 PHY-s in the package. However, that broke QSGMII link between the MAC and PHY on most LAN8814 PHY-s, specificaly for us on the Microchip LAN969x switch. Reading the QSGMII status registers it was visible that lanes were only partially synced. It looks like the reset timing is crucial, so lets move the reset back into the .config_init function but guard it with phy_package_init_once() to avoid it being triggered on each of 4 PHY-s in the package. Change the probe function to use phy_package_probe_once() for coma and PtP setup. Fixes: 96a9178a29a6 ("net: phy: micrel: lan8814 fix reset of the QSGMII int= erface") Signed-off-by: Robert Marko --- drivers/net/phy/micrel.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index 2aa1dedd21b8..e211a523c258 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -4548,6 +4548,13 @@ static int lan8814_config_init(struct phy_device *ph= ydev) struct kszphy_priv *lan8814 =3D phydev->priv; int ret; =20 + if (phy_package_init_once(phydev)) + /* Reset the PHY */ + lanphy_modify_page_reg(phydev, LAN8814_PAGE_COMMON_REGS, + LAN8814_QSGMII_SOFT_RESET, + LAN8814_QSGMII_SOFT_RESET_BIT, + LAN8814_QSGMII_SOFT_RESET_BIT); + /* Based on the interface type select how the advertise ability is * encoded, to set as SGMII or as USGMII. */ @@ -4655,13 +4662,7 @@ static int lan8814_probe(struct phy_device *phydev) priv->is_ptp_available =3D err =3D=3D LAN8814_REV_LAN8814 || err =3D=3D LAN8814_REV_LAN8818; =20 - if (phy_package_init_once(phydev)) { - /* Reset the PHY */ - lanphy_modify_page_reg(phydev, LAN8814_PAGE_COMMON_REGS, - LAN8814_QSGMII_SOFT_RESET, - LAN8814_QSGMII_SOFT_RESET_BIT, - LAN8814_QSGMII_SOFT_RESET_BIT); - + if (phy_package_probe_once(phydev)) { err =3D lan8814_release_coma_mode(phydev); if (err) return err; --=20 2.54.0