From patchwork Sat Feb 11 07:41:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 55735 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1382181wrn; Fri, 10 Feb 2023 23:44:41 -0800 (PST) X-Google-Smtp-Source: AK7set9I1F7sxWxA41+PN4CxOa8P4FHaY6yNMqEpsSejc4FzyFo1akHtS85l6drI7P/BrJU5R3P+ X-Received: by 2002:a17:906:3a89:b0:861:4671:a834 with SMTP id y9-20020a1709063a8900b008614671a834mr19005787ejd.71.1676101481531; Fri, 10 Feb 2023 23:44:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676101481; cv=none; d=google.com; s=arc-20160816; b=h0GlZ3r+wT1hzLwNpGfJ2n1YFM9RrmXL279OCfs4LjOj1/EhHkCT/4nIik8QZD2DX3 rpuvt8KLCt34G9rTwPdwKGGpO2mnOVLobTea17F5O40IijK9uiXvPtGOCz+ZoOZYXwPT UcCdbeRyamesr5xagtxiqZgmpfXYuTI0SaJumhOnNF+W9FFixFsIcJPlZrC3+RKvBr5M 5aaZcn4L+o+se8Ugh5pvYi+dYH/Rm1qpCePc6bc+XIU1xhWqMYJF4hZe2GZ8nodmz8jD b1opRP+xpBGiurVcDTuUdH5Elnmy3So3430Cb7rX13RQNiltEQtGVw7kvO12gVibPD84 cqug== 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; bh=zWnlGrY2yYiEAhYyyWB24tp+VoHWY4MdlRhDIehZXik=; b=C61MNn8rzYDTYVc9CjTgaQe0du90taOVF9OpxmaURfAI+2u6vFwjEFrBppg69lVnn2 LbYDY/0jVh9Ukz76OPiL4RmmENliFUi1BxIfVTYrgvLN2mqgcuB8zvex3p8aQXWsBEGa +6pOe2P6isA05Di1l5qqfG6VHyJrM/Ci3kCpYscfScKCPzm82rWlnL/QcJPOIAsbZZF+ JNSmm5Sp5IvowIYAU+TOjdm5v0pPBWY3kQ5nlEIPFQwGSUgy7V1mHHvrIxl0nxsjs2gI 6rdkdJ7Dp/S8jyb+1gAC/cEG7FmF73nrrnBqmH6lYTaq3GYHZI//EuryGctTzWIYLfci t8Kg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s12-20020a170906220c00b00889c115cf70si8198254ejs.190.2023.02.10.23.44.19; Fri, 10 Feb 2023 23:44:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229848AbjBKHlz (ORCPT + 99 others); Sat, 11 Feb 2023 02:41:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229769AbjBKHlg (ORCPT ); Sat, 11 Feb 2023 02:41:36 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE8B46E9BB for ; Fri, 10 Feb 2023 23:41:32 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pQkVc-0003zY-Rs; Sat, 11 Feb 2023 08:41:21 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1pQkVX-004ALg-BS; Sat, 11 Feb 2023 08:41:16 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1pQkVX-00Bfsd-2N; Sat, 11 Feb 2023 08:41:15 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Wei Fang , Heiner Kallweit Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com, intel-wired-lan@lists.osuosl.org Subject: [PATCH net-next v8 3/9] net: phy: micrel: add ksz9477_get_features() Date: Sat, 11 Feb 2023 08:41:07 +0100 Message-Id: <20230211074113.2782508-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230211074113.2782508-1-o.rempel@pengutronix.de> References: <20230211074113.2782508-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757519787218840689?= X-GMAIL-MSGID: =?utf-8?q?1757519787218840689?= KSZ8563R, which has same PHYID as KSZ9477 family, will change "EEE control and capability 1" (Register 3.20) content depending on configuration of "EEE advertisement 1" (Register 7.60). Changes on the 7.60 will affect 3.20 register. So, instead of depending on register 3.20, driver should set supported_eee. Proper supported_eee configuration is needed to make use of generic PHY c45 set/get_eee functions provided by next patches. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/phy/micrel.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index 727de4f4a14d..20738314635e 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -1387,6 +1387,26 @@ static int ksz9131_config_aneg(struct phy_device *phydev) return genphy_config_aneg(phydev); } +static int ksz9477_get_features(struct phy_device *phydev) +{ + int ret; + + ret = genphy_read_abilities(phydev); + if (ret) + return ret; + + /* The "EEE control and capability 1" (Register 3.20) seems to be + * influenced by the "EEE advertisement 1" (Register 7.60). Changes + * on the 7.60 will affect 3.20. So, we need to construct our own list + * of caps. + * KSZ8563R should have 100BaseTX/Full only. + */ + linkmode_and(phydev->supported_eee, phydev->supported, + PHY_EEE_CAP1_FEATURES); + + return 0; +} + #define KSZ8873MLL_GLOBAL_CONTROL_4 0x06 #define KSZ8873MLL_GLOBAL_CONTROL_4_DUPLEX BIT(6) #define KSZ8873MLL_GLOBAL_CONTROL_4_SPEED BIT(4) @@ -3597,6 +3617,7 @@ static struct phy_driver ksphy_driver[] = { .handle_interrupt = kszphy_handle_interrupt, .suspend = genphy_suspend, .resume = genphy_resume, + .get_features = ksz9477_get_features, } }; module_phy_driver(ksphy_driver);