From nobody Sun Dec 28 02:51:17 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A42AC4332F for ; Thu, 14 Dec 2023 00:45:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234143AbjLNApj (ORCPT ); Wed, 13 Dec 2023 19:45:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33356 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1442888AbjLNApf (ORCPT ); Wed, 13 Dec 2023 19:45:35 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFFF4AC; Wed, 13 Dec 2023 16:45:41 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-40c46d6784eso36729795e9.3; Wed, 13 Dec 2023 16:45:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702514740; x=1703119540; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U+moSObm6SmTF7EP235eqi6TuZLbs8gEL+3plRa6dpk=; b=WlkbeTlJIMWtZEKGaBcWDxLg+nrPn+nzalrow44Z+b0maQwznOEoB0Fk3NnrqJ83b4 4Y7TmEXLbRhLpSKbzSaYjFNpzl2lhJHPDGcRS6oIdtaIEGpXviJz7vlnyydaT2gM1/VN f3mfcZhMDFB5XpYiUVQQrUTtYJmM5QKtF0fB9S74sk7ai3TofdfxYiL5y2WEnjEoESjm YgJpsQSLQMHIA6yftYa4a0PDcZV8GYbidrzve87L2bhhQRE3Ike5b2IpmOYbjMUDlGaK dbGs0r4ioGqRMwr0oaoyDYPZREAGLBPkVadCwPWT326rNGZATYXuPJMwxoZtlJe32J46 S4/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702514740; x=1703119540; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U+moSObm6SmTF7EP235eqi6TuZLbs8gEL+3plRa6dpk=; b=LDqaGbCWucJ8vcrKtJEd9zRIrs84P2uX9JcZBiVyTkIowbGfpirxOZpr4aYdYJRq0S zNAW31XaxgQf+1Ic/8SHHTLxJrwnodsFCRvM78A8zR0+xBi/qMa1VZ4DHY1mvMxtpy4r HfamL5dwe7UY75WYlh3F3ddpVKBGK89R+t9R/xKKGstUl5zOY+7IXRuXG7H0KKoL2Yw9 pBGVk/71Wl71cNC2jAD39b7sTbBXuNzSgQbC+AAjKIpU7HBHosUQ7/puLvWX7Z5f37Qx Hzmrx+ZQtUiAKLtwnfERgRNRCU4gatpzBRq07niMn7bJULgD6YlmCc+uuZUAdIa8KKrf J/cw== X-Gm-Message-State: AOJu0Yzz+AmcMF5MDU2xKPpQ+BVqmPxoHVxz/2OZlpqZFBFjIojRe0Rc nQZvWdBQpgjvC7Nc41ls5uY= X-Google-Smtp-Source: AGHT+IHCfqv42/t3E60QOzcjVoDubipoKSyK+S59ve4IC1N6MT2Ls69yCI4jV9mdh/7UUPHUCT0WbA== X-Received: by 2002:a7b:c3d7:0:b0:40c:610e:3c7c with SMTP id t23-20020a7bc3d7000000b0040c610e3c7cmr169512wmj.23.1702514739940; Wed, 13 Dec 2023 16:45:39 -0800 (PST) Received: from localhost.localdomain (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.googlemail.com with ESMTPSA id g15-20020adfe40f000000b003364470f30bsm959013wrm.52.2023.12.13.16.45.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 16:45:39 -0800 (PST) From: Christian Marangi To: Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Christian Marangi Subject: [net-next PATCH 1/2] net: phy: at803x: move specific qca808x config_aneg to dedicated function Date: Thu, 14 Dec 2023 01:44:31 +0100 Message-Id: <20231214004432.16702-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20231214004432.16702-1-ansuelsmth@gmail.com> References: <20231214004432.16702-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Move specific qca808x config_aneg to dedicated function to permit easier split of qca808x portion from at803x driver. Signed-off-by: Christian Marangi --- drivers/net/phy/at803x.c | 66 ++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c index b9d3a26cf6dc..03f945cc7626 100644 --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c @@ -1045,9 +1045,8 @@ static int at803x_config_mdix(struct phy_device *phyd= ev, u8 ctrl) FIELD_PREP(AT803X_SFC_MDI_CROSSOVER_MODE_M, val)); } =20 -static int at803x_config_aneg(struct phy_device *phydev) +static int at803x_prepare_config_aneg(struct phy_device *phydev) { - struct at803x_priv *priv =3D phydev->priv; int ret; =20 ret =3D at803x_config_mdix(phydev, phydev->mdix_ctrl); @@ -1064,33 +1063,22 @@ static int at803x_config_aneg(struct phy_device *ph= ydev) return ret; } =20 - if (priv->is_1000basex) - return genphy_c37_config_aneg(phydev); - - /* Do not restart auto-negotiation by setting ret to 0 defautly, - * when calling __genphy_config_aneg later. - */ - ret =3D 0; - - if (phydev->drv->phy_id =3D=3D QCA8081_PHY_ID) { - int phy_ctrl =3D 0; + return 0; +} =20 - /* The reg MII_BMCR also needs to be configured for force mode, the - * genphy_config_aneg is also needed. - */ - if (phydev->autoneg =3D=3D AUTONEG_DISABLE) - genphy_c45_pma_setup_forced(phydev); +static int at803x_config_aneg(struct phy_device *phydev) +{ + struct at803x_priv *priv =3D phydev->priv; + int ret; =20 - if (linkmode_test_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT, phydev->adve= rtising)) - phy_ctrl =3D MDIO_AN_10GBT_CTRL_ADV2_5G; + ret =3D at803x_prepare_config_aneg(phydev); + if (ret) + return ret; =20 - ret =3D phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_10GBT_CTRL, - MDIO_AN_10GBT_CTRL_ADV2_5G, phy_ctrl); - if (ret < 0) - return ret; - } + if (priv->is_1000basex) + return genphy_c37_config_aneg(phydev); =20 - return __genphy_config_aneg(phydev, ret); + return genphy_config_aneg(phydev); } =20 static int at803x_get_downshift(struct phy_device *phydev, u8 *d) @@ -2118,6 +2106,32 @@ static int qca808x_get_features(struct phy_device *p= hydev) return 0; } =20 +static int qca808x_config_aneg(struct phy_device *phydev) +{ + int phy_ctrl =3D 0; + int ret; + + ret =3D at803x_prepare_config_aneg(phydev); + if (ret) + return ret; + + /* The reg MII_BMCR also needs to be configured for force mode, the + * genphy_config_aneg is also needed. + */ + if (phydev->autoneg =3D=3D AUTONEG_DISABLE) + genphy_c45_pma_setup_forced(phydev); + + if (linkmode_test_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT, phydev->adver= tising)) + phy_ctrl =3D MDIO_AN_10GBT_CTRL_ADV2_5G; + + ret =3D phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_10GBT_CTRL, + MDIO_AN_10GBT_CTRL_ADV2_5G, phy_ctrl); + if (ret < 0) + return ret; + + return __genphy_config_aneg(phydev, ret); +} + static void qca808x_link_change_notify(struct phy_device *phydev) { /* Assert interface sgmii fifo on link down, deassert it on link up, @@ -2295,7 +2309,7 @@ static struct phy_driver at803x_driver[] =3D { .set_wol =3D at803x_set_wol, .get_wol =3D at803x_get_wol, .get_features =3D qca808x_get_features, - .config_aneg =3D at803x_config_aneg, + .config_aneg =3D qca808x_config_aneg, .suspend =3D genphy_suspend, .resume =3D genphy_resume, .read_status =3D qca808x_read_status, --=20 2.40.1