From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 26C4E503BC4; Mon, 28 Sep 2026 22:25:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790634325; cv=none; b=Lx/cCWAbj5vPt3YFzkZmPEwcUvPhCHa8m8CLt0FeJyMny/zcTfrxwIQtG6sdswfC9kH3tCG2wFrcfVq3YVRFlaQi7+A0IxOCQdY/Mahv33GCtPnSaizKPe/Nh3tvE0tabAISvLODzcQz6fOPUMMktEoGddJ+EBP5Q8vBGLOW+vs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790634325; c=relaxed/simple; bh=5G70E4tT/Hmu7+Ch+kV+YbYVtsOpslpBCyaStvyRUg4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sXJOsVEcerfTCDTktJHLJWSQ1WpblBjoY6ODyNnslDPVab3y2phrKhVUPKR1jHMWwHklS1sjxvqwte/Jj77E0ANxao0C/WXgVwnfcIGkJgm3JX1Vkbx6cVRTLl4zQED73PzTTL9faYL4lpHE6tfFyRN1lQZpk9X+74YU35A0/6o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=N2IfxhbV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="N2IfxhbV" Received: by smtp.kernel.org (Postfix) with ESMTPS id AC23AC4AF18; Mon, 28 Sep 2026 22:25:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790634324; bh=5G70E4tT/Hmu7+Ch+kV+YbYVtsOpslpBCyaStvyRUg4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=N2IfxhbVnzIPvMT0POwtQKfHXm8BMsxEgmtVNlMQBpXqvtYpN64Ro8IM23XsWgAwf 9nJVkCpjRhYcA9pp+8OUEnf/rsCUp2jucAuPbb3CpIRA8u3ML7RFiVnM2aQ8n98fRz IeCiuv1rPJaRcqtD6x7X3askAfAXfNapFJnSDWe7f6YsW+2B0ksZ0S5hcGc+t9FlsW 3USma4tEHaKF7C+uabeMkzUBgLQve62bMIELY3CnlQWXXByrg2m6viJ/TJuGM7oje2 Y+whDYENgi1pVof2Vgn+21A7JIIZFWLfd62CErPECbLOkd1+mW/IwJ707ysPW4usst 32Nd/6jHB1y9g== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98B91CA5FAB; Mon, 28 Sep 2026 22:25:24 +0000 (UTC) From: Selvamani Rajagopal via B4 Relay Date: Mon, 28 Sep 2026 15:25:15 -0700 Subject: [PATCH net-next v8 08/11] net: phy: ncn26000: Enable enhanced noise immunity 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: 7bit Message-Id: <20260928-s2500-mac-phy-support-v8-8-7e011aacc309@onsemi.com> References: <20260928-s2500-mac-phy-support-v8-0-7e011aacc309@onsemi.com> In-Reply-To: <20260928-s2500-mac-phy-support-v8-0-7e011aacc309@onsemi.com> To: Selva Rajagopal , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Piergiorgio Beruto , Parthiban Veerasooran , Simon Horman , Jonathan Corbet , Shuah Khan , Randy Dunlap , Richard Cochran , Andrew Lunn , Heiner Kallweit , Russell King Cc: Selva Rajagopal , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Jerry Ray X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790634319; l=2644; i=Selvamani.Rajagopal@onsemi.com; s=20260531; h=from:subject:message-id; bh=KYiEyA6QMxECzQjlLG+6xvr+k8/nqddocr+hkqRmZWs=; b=VBk4A7jpy7HKGbYCZKmcsA0sEnYzxteVKUcS1NXGisbUJ6OXyVb1AqrhfdPnC/finBFYCoBYJ 9Hj053qUTBuCX4gp1TQg+GarB0FU6QtQ+wxXQYJsZDA0ix9NzLQ4aGk X-Developer-Key: i=Selvamani.Rajagopal@onsemi.com; a=ed25519; pk=5QRdM0HS/LGWWcUZZ9hVfZ+qbPQGZCumcTXOiN7Fyug= X-Endpoint-Received: by B4 Relay for Selvamani.Rajagopal@onsemi.com/20260531 with auth_id=803 X-Original-From: Selvamani Rajagopal Reply-To: Selvamani.Rajagopal@onsemi.com From: Selvamani Rajagopal By setting ENI bit, noise immunity is improved and it is specifically meant for PLCA enabled nodes. Reviewed-by: Andrew Lunn Signed-off-by: Selvamani Rajagopal --- changes in v8 - No change changes in v7 - No change changes in v6 - No change changes in v5 - No changes changes in v4 - No changes changes in v3 - Moved as a separate patch --- drivers/net/phy/ncn26000.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/ncn26000.c b/drivers/net/phy/ncn26000.c index 374684e11fac..b362e85c7911 100644 --- a/drivers/net/phy/ncn26000.c +++ b/drivers/net/phy/ncn26000.c @@ -36,6 +36,10 @@ #define TO_TMR_DEFAULT 32 +#define NCN26000_REG_PHYCFG1 0x8001 +#define NCN26000_PHYCFG1_ENI BIT(7) +#define NCN26000_PHYCFG1_ENI_MASK BIT(7) + static int ncn26000_config_init(struct phy_device *phydev) { int ret = 0; @@ -106,6 +110,24 @@ static int ncn26000_read_status(struct phy_device *phydev) return 0; } +/* Intercept PLCA enable/disable request to + * set the proprietary, ENI mode accordingly + */ +static int ncn26000_c45_plca_set_cfg(struct phy_device *phydev, + const struct phy_plca_cfg *plca_cfg) +{ + int ret = genphy_c45_plca_set_cfg(phydev, plca_cfg); + u16 eni_cfg = 0; + + if (ret || plca_cfg->enabled < 0) + return ret; + + eni_cfg = (plca_cfg->enabled) ? NCN26000_PHYCFG1_ENI : 0; + return phy_modify_mmd(phydev, MDIO_MMD_VEND2, + NCN26000_REG_PHYCFG1, + NCN26000_PHYCFG1_ENI_MASK, eni_cfg); +} + static irqreturn_t ncn26000_handle_interrupt(struct phy_device *phydev) { int ret; @@ -156,7 +178,7 @@ static struct phy_driver ncn26000_driver[] = { .config_aneg = ncn26000_config_aneg, .read_status = ncn26000_read_status, .handle_interrupt = ncn26000_handle_interrupt, - .set_plca_cfg = genphy_c45_plca_set_cfg, + .set_plca_cfg = ncn26000_c45_plca_set_cfg, .get_plca_cfg = genphy_c45_plca_get_cfg, .get_plca_status = genphy_c45_plca_get_status, .soft_reset = genphy_soft_reset, @@ -177,7 +199,7 @@ static struct phy_driver ncn26000_driver[] = { .read_status = ncn26000_read_status, .handle_interrupt = ncn26000_handle_interrupt, .get_plca_cfg = genphy_c45_plca_get_cfg, - .set_plca_cfg = genphy_c45_plca_set_cfg, + .set_plca_cfg = ncn26000_c45_plca_set_cfg, .get_plca_status = genphy_c45_plca_get_status, .soft_reset = genphy_soft_reset, }, -- 2.43.0