From patchwork Mon Jan 30 08:07:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 50169 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2061707wrn; Mon, 30 Jan 2023 00:08:11 -0800 (PST) X-Google-Smtp-Source: AK7set9Ddinoj5AQibAPfdFqvybe8pDZ1m06BLKmXnJosp1GSmpKf636RnVguRKF2R6Q44jp/2e+ X-Received: by 2002:a05:6402:35d3:b0:4a0:b72d:d4 with SMTP id z19-20020a05640235d300b004a0b72d00d4mr24125722edc.31.1675066091079; Mon, 30 Jan 2023 00:08:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675066091; cv=none; d=google.com; s=arc-20160816; b=uq/yQF7DADw+ZPip4WrSA0iS8jZhULWZk0DC3hY7kZ1+6w02Al4lQmiD9RKaTHnlRO zOUuXm2TMuQz7EPIqX37pTtcVP4VylQvJKKgdwuIfgbqsngS4y5DFhgYPrS6vztVe2XP ETu+7Z59/rkiCbH5FCpyI5UYbxfPQ5HpMyamr+v4edzvwmptsMJN+1RR0SkRC7lBGOc4 t2a+RehN0wWNFASQEYjMjYtTjlzZNQRV5E5ynITu5qgV38K0pM89hdic143xsTEWIVac C2FZ4uCLpK2iuGIjH4YHxbnSbGpNq3+qciqVber1FUG0QovlvexG3HkUqSDHqFtwDRvB mJtA== 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=hiIlFxPqPxUghSr7zPonvguYUMEBDi4p5u+MTyAOai7cgEF/9KXtPQhOKQ1kUMhHro quitF5lLbaR+tKIMUvQ3C4YeEaLKZmIPZiLsgCI6GSPNuhT6SvV6BixWQKj5Diw6/4X4 QPNKm3KeKzuxoG0tRjlZ8dbiRR6mPazedoq9K4bZeq6BMoBThL40y+FcRHxkhzvmN2rx 1geHLo/Zvd8GxK/oCTRNENyNc+ag6ni3P3FIuI/R2XQ4mN+yyUfv8k9fdRou/mTKzRjs ZfRWwx9gLGKvWR3wAExJFil34UZATSxRYRS+FOdFzSiaeLi/DbZrKWfPlEcggNT1aDA+ tspQ== 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 y12-20020a056402270c00b00493969bd008si17589032edd.121.2023.01.30.00.07.47; Mon, 30 Jan 2023 00:08:11 -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 S235670AbjA3IHg (ORCPT + 99 others); Mon, 30 Jan 2023 03:07:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235533AbjA3IHb (ORCPT ); Mon, 30 Jan 2023 03:07:31 -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 B002D2942E for ; Mon, 30 Jan 2023 00:07:29 -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 1pMPCB-0003f5-2i; Mon, 30 Jan 2023 09:07:19 +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 1pMPC9-001Pvv-TJ; Mon, 30 Jan 2023 09:07:17 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1pMPC7-000aJR-Iv; Mon, 30 Jan 2023 09:07: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 Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH net-next v3 03/15] net: phy: micrel: add ksz9477_get_features() Date: Mon, 30 Jan 2023 09:07:02 +0100 Message-Id: <20230130080714.139492-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230130080714.139492-1-o.rempel@pengutronix.de> References: <20230130080714.139492-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?1756434101792827041?= X-GMAIL-MSGID: =?utf-8?q?1756434101792827041?= 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);