From patchwork Wed Feb 1 14:58:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 51391 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp327220wrn; Wed, 1 Feb 2023 07:03:51 -0800 (PST) X-Google-Smtp-Source: AK7set+5W+S0VMcuHHElboNEZIdqfeqEWPP9rm67Q6Y4SiiM8Gsl9Q7sV9q3NGlqHessj/81DGmu X-Received: by 2002:a17:90b:4b91:b0:22c:b70d:45fb with SMTP id lr17-20020a17090b4b9100b0022cb70d45fbmr2669767pjb.23.1675263830881; Wed, 01 Feb 2023 07:03:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675263830; cv=none; d=google.com; s=arc-20160816; b=JDNflWlvvpy+hOge4I5gKZeqqkydBCSrMzcGtPgb/lG2o/xQAkwpJKQVUDhliGr5eN ykwpv0/sP79e8quPS2FIj0wMxpsijPkQuoMl97MFVa42Rr5tsbFfambjWadMHR85K1zL BujZzMtUmW5NAHO4dADEdR6cthsJ0oeIVc//01vLBwMXJqhfqECijSGHsFNolKayT370 qfcYXD7JYpDL8Ujf4ySQ/+JqvHXcNJ9l/y/lTDErHFESjSc/xOV6TB4KgjuY8RY3V0FE 6JSZ0BhuN6NWhjqhuPqNbcSYncy6jaRAikehRD+Uk5mldV7xDh8Mjbpobwkym9MerLkK l6rA== 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=ONbKyVG12Ym74wZevUXtQLSq63uIod12uEkaw4IFet8=; b=EJ46KFRslopurUG3m+bmXIVCwfGoPNSTMrBm5neCjZY7hpwosEQel0Ji+5tQd8g/j9 3g5mnRl+9itZNb01+qr70ZXgBEDgbS2UBZiYQ/PczKcNCHYJxiTkk0lzxsyJJhRfmStq sSmqc2UccivGY0AS9ztU7TAdxio5rBO0VPPUEl90ZVRxIINaFYQQAjDIUqsMj0pNlw0n vqG9VqGsreDO4A/72iJGzxBn1WAg/wjyWbfzAIzKJGW84izOe6u4Tgiy89Oy7tWVAycI 4hnZLFMRh4hJxyjccfAISebLm542WglgjigNyaX7kO4RWKJSn0XLlsarRJvmdAlkkRA1 6TPg== 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 h6-20020a17090a580600b00218f5df5ce8si1787570pji.64.2023.02.01.07.03.37; Wed, 01 Feb 2023 07:03:50 -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 S232390AbjBAPAf (ORCPT + 99 others); Wed, 1 Feb 2023 10:00:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232760AbjBAO7Q (ORCPT ); Wed, 1 Feb 2023 09:59:16 -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 BB44F6B9AB for ; Wed, 1 Feb 2023 06:59:07 -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 1pNEZc-0002rm-Vc; Wed, 01 Feb 2023 15:58:57 +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 1pNEZY-001w1r-5c; Wed, 01 Feb 2023 15:58:51 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1pNEZT-009hUz-9u; Wed, 01 Feb 2023 15:58:47 +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 v4 03/23] net: phy: micrel: add ksz9477_get_features() Date: Wed, 1 Feb 2023 15:58:25 +0100 Message-Id: <20230201145845.2312060-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230201145845.2312060-1-o.rempel@pengutronix.de> References: <20230201145845.2312060-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=ham 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?1756641446413832892?= X-GMAIL-MSGID: =?utf-8?q?1756641446413832892?= 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 --- 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 d5b80c31ab91..767c4111cb18 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -1370,6 +1370,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_100_10000_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) @@ -3422,6 +3442,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);