From patchwork Fri Dec 8 14:51:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 175842 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp5512342vqy; Fri, 8 Dec 2023 07:03:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IGkhTpcRnBREdZkYjIUYxyiBF7YCVZZVzTsAe/sAaukMfnATCLsIBkng8HJxeOddlzy9ebQ X-Received: by 2002:a17:90a:ea14:b0:286:a734:be46 with SMTP id w20-20020a17090aea1400b00286a734be46mr204448pjy.7.1702047819730; Fri, 08 Dec 2023 07:03:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702047819; cv=none; d=google.com; s=arc-20160816; b=pBn4fnaTK4NcdlO+VHVttDR/L1wrIJj8vt7HYfIFqTdsjcyiCdgStd94KyznK7q9ly Ic7zreTDLVEv+zJVry+xzctiE5X0oAAOhvhOdWTQR+Pmxowl+h81dYu+REh/WS1Amyw6 Ni5KxlNO/AG76AQwwLn/OducU1cdciLIn3RnaqhiXcjbr3fg6J5tap7dlQ/aFpAR6DWO murwdnmWEzBBScgtseDI7SCXxO1rr4fdWnBHLHilLiW2SL6nukU33x0xffDvba4cTB8N 6zKlZeIEEbmx/4s+CbHF9iK7A1G+vIloKwXmCCVwIvk0sepFNJl+ClgpjxD2WDmCQ1qz AREA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jUWRj8SMGfke2llijADB8r/5G0kPfaXc58R9QB7gQMQ=; fh=utmrxdkgikAlLxVfQI1kldUG+rNjhrLN+3fAlOYj01s=; b=MWHLwFQvTNO2qeKfvy2GreKi9F7ixUku42nrhxz9QJ8Kn10TYUiTqSuSuE1AXTnI8U K5cmfPWh93QNz/u+FCpsVqIqPTLgBbZJ1peGQ57fs9I0n8dlx99tz7th8rL23h2G4Zh5 zbL+MN7RzP6CCPQ1wx40+K2AMrLvrEPN2Mx9ws+qYJezF9i8ltZx3I5Me5p+aHRFoD64 RVh4owFbaVjusHOCybTkpUXwrJfi9baLSkcjevhICw6oajtsWd2LgkIWYPvd1JCE4His D6ArprnAtWiTY2omxc0ju19rmoWr9rqhe5xIhqCtlQNej1dwpQQO2RX26EPOKK9o+jFe MFXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="jnT/hZqf"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id u10-20020a170903124a00b001cfa8f0e365si1713039plh.305.2023.12.08.07.03.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:03:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="jnT/hZqf"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 618D180E9EAB; Fri, 8 Dec 2023 07:03:34 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1574178AbjLHPDZ (ORCPT + 99 others); Fri, 8 Dec 2023 10:03:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1574051AbjLHPDP (ORCPT ); Fri, 8 Dec 2023 10:03:15 -0500 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E6FF3853; Fri, 8 Dec 2023 06:52:17 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-40c2718a768so22048665e9.0; Fri, 08 Dec 2023 06:52:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702047136; x=1702651936; 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=jUWRj8SMGfke2llijADB8r/5G0kPfaXc58R9QB7gQMQ=; b=jnT/hZqfNztMEu/jSWkZpVQ97zYhtCSDzbi8qMIFt/CLCZ/T48CgWGud9qnG6btfZ4 BTZGRtBRbpFfpaNGdGr4+OoG8q/az0hUlq3Vuj7SU1Uxblg647JqLougto2ul7FwO0j1 88RXDOva5/9fHFWx6Savykqh8ahOZbu0HMLZNHU0O3RJ+zjZRg3y/WDzLp1etdl9urVf GJSVvDaWzBBDWwUTxXze7H5AOfTYDqEIxeJRl8cG74tX8NSbJvTjfZJ5OJz903PnZqmp wFk1+BzgefH2o6NnpkskBlxTrDoUxzLax58p5JuIt8RVwP3gD3r8rHEv+WtH6UnHo5mj 3/hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702047136; x=1702651936; 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=jUWRj8SMGfke2llijADB8r/5G0kPfaXc58R9QB7gQMQ=; b=p6/qSnmwQNWTx4w86Bt3PZg+O744ZdMxjexGF61s7cVTseNcAxjemKsnsNZ8iAkj8l +DK+QixFXv6XCZlmCUiVJZcpTgsotjH/ScQWxEo/pyo0/xN3aoeOpvyOzrpKGm7bOhTN RXkk0r+q/WCc4WadhA/l3n6Syayi0bSXAUyvyOV4/dwDFOfAvH0i2Ol6elSWbnBr3YXP RjrjbrbRPiAVqaVw3ftz9HrTazgruAgNTWoKtjmuEpYwApb3I0pTbhQtZcVaODFQYGBQ lF2u795vH/CvQdPwdsL0QdRECtoMmLTFGUc1/oB1lhQTyTcQqcPL2NA+qNZfrAVj2Pq6 YheQ== X-Gm-Message-State: AOJu0Yx8/R4I3Vwtoy/j7VcWVTNevS/nlRChWMthCh9yFz31Z3EbHHvu VeTxbmasJ9jMT6Y4ybpWLxcuEN6FRPY= X-Received: by 2002:a05:600c:32af:b0:40c:2c2f:a5f0 with SMTP id t47-20020a05600c32af00b0040c2c2fa5f0mr41351wmp.92.1702047135709; Fri, 08 Dec 2023 06:52:15 -0800 (PST) Received: from localhost.localdomain (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.googlemail.com with ESMTPSA id r9-20020a05600c458900b0040b3e79bad3sm3088264wmo.40.2023.12.08.06.52.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 06:52:15 -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 v4 08/13] net: phy: at803x: move specific at8031 WOL bits to dedicated function Date: Fri, 8 Dec 2023 15:51:55 +0100 Message-Id: <20231208145200.25162-9-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20231208145200.25162-1-ansuelsmth@gmail.com> References: <20231208145200.25162-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Fri, 08 Dec 2023 07:03:34 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784726494315375445 X-GMAIL-MSGID: 1784726494315375445 Move specific at8031 WOL enable/disable to dedicated function to make at803x_set_wol more generic. This is needed in preparation for PHY driver split as qca8081 share the same function to toggle WOL settings. In this new implementation WOL module in at8031 is enabled after the generic interrupt is setup. This should not cause any problem as the WOL_INT has a separate implementation and only relay on MAC bits. Signed-off-by: Christian Marangi --- drivers/net/phy/at803x.c | 42 ++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c index e2bf5a16ba3c..862ec08ad86b 100644 --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c @@ -466,27 +466,11 @@ static int at803x_set_wol(struct phy_device *phydev, phy_write_mmd(phydev, MDIO_MMD_PCS, offsets[i], mac[(i * 2) + 1] | (mac[(i * 2)] << 8)); - /* Enable WOL function for 1588 */ - if (phydev->drv->phy_id == ATH8031_PHY_ID) { - ret = phy_modify_mmd(phydev, MDIO_MMD_PCS, - AT803X_PHY_MMD3_WOL_CTRL, - 0, AT803X_WOL_EN); - if (ret) - return ret; - } /* Enable WOL interrupt */ ret = phy_modify(phydev, AT803X_INTR_ENABLE, 0, AT803X_INTR_ENABLE_WOL); if (ret) return ret; } else { - /* Disable WoL function for 1588 */ - if (phydev->drv->phy_id == ATH8031_PHY_ID) { - ret = phy_modify_mmd(phydev, MDIO_MMD_PCS, - AT803X_PHY_MMD3_WOL_CTRL, - AT803X_WOL_EN, 0); - if (ret) - return ret; - } /* Disable WOL interrupt */ ret = phy_modify(phydev, AT803X_INTR_ENABLE, AT803X_INTR_ENABLE_WOL, 0); if (ret) @@ -1609,6 +1593,30 @@ static int at8031_config_init(struct phy_device *phydev) return at803x_config_init(phydev); } +static int at8031_set_wol(struct phy_device *phydev, + struct ethtool_wolinfo *wol) +{ + int ret; + + /* First setup MAC address and enable WOL interrupt */ + ret = at803x_set_wol(phydev, wol); + if (ret) + return ret; + + if (wol->wolopts & WAKE_MAGIC) + /* Enable WOL function for 1588 */ + ret = phy_modify_mmd(phydev, MDIO_MMD_PCS, + AT803X_PHY_MMD3_WOL_CTRL, + 0, AT803X_WOL_EN); + else + /* Disable WoL function for 1588 */ + ret = phy_modify_mmd(phydev, MDIO_MMD_PCS, + AT803X_PHY_MMD3_WOL_CTRL, + AT803X_WOL_EN, 0); + + return ret; +} + static int qca83xx_config_init(struct phy_device *phydev) { u8 switch_revision; @@ -2121,7 +2129,7 @@ static struct phy_driver at803x_driver[] = { .config_init = at8031_config_init, .config_aneg = at803x_config_aneg, .soft_reset = genphy_soft_reset, - .set_wol = at803x_set_wol, + .set_wol = at8031_set_wol, .get_wol = at803x_get_wol, .suspend = at803x_suspend, .resume = at803x_resume,