Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp2401471rwb; Fri, 20 Jan 2023 02:24:34 -0800 (PST) X-Google-Smtp-Source: AMrXdXuIXmX8uqg0dloTHFARn+ItKBJt0ECvLSej8I1V1ANHqDW+DSotAjKicfGoisG+ki3WO11f X-Received: by 2002:a17:902:bd01:b0:192:820d:d1 with SMTP id p1-20020a170902bd0100b00192820d00d1mr12409020pls.25.1674210274549; Fri, 20 Jan 2023 02:24:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674210274; cv=none; d=google.com; s=arc-20160816; b=PYm1axbEJaa6prEQiek4FhqmhS8+wJy9/nYA8PxBIKa2QSXPxujplOs72O+h+JCLNs cSMWIl1TDLu4j39f1MntGYyPYtoSE0M0p/Pc2OIHpXvsVCzrQg9jBPKANOTGLgNa/KV9 +4WnIHWNAAlU7hTbKwcd812VNBmrkOVCAfrUr8jTNRSGuAP5x5MrqwaJrVtfTLnfH3yb /S5Ub2dfWeHU56qPJ+9p1jiBHHU8ujoVRVDusNsK+o5n5WybYoPzcFEzYsiWjjTFScWO djkZlqZsQuzGJDFQpabaEZzYn89CFk/UhOc8EbTBF/tfS8cpX4Wllkg8S9vW1T62x6l2 vhHg== 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=wvcPm/U48fVhJ0G2hTkkBsis72lkoxoq9Q0tTK8jLow=; b=OQg//cWi8BC/SjSfGD4n+SBlNdgsUM1Sya/RCbblluO9rVsSMxxg6hHNhYCUDUQu9M RadrQsAvx3b8c4AV0y+jMZenLEdVv7+EKBIwzK0QM2MpqXql0aGqmT3SSNTRhWbQuiJ3 2omWf4uw5vcAvMPA0x5SnjrmLuaoGxkPYeRxEscnPy5GXym1YUmqKkBsB8nqh6/0aRCe wUQiGO07tblMwCTIEaa5hLowe1gDNY0kgRnwB6DkfBQjNR8HLouPdxt2VdC12ITsDVZm pvX+vjJCmiyc4eiQde0DxOLlnrtzRSY+eIFfgls5d/GSg2q9AKdxvvNwDrhCvRFJQpIX /pJA== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l3-20020a170903244300b001890f5957c4si21097100pls.353.2023.01.20.02.24.28; Fri, 20 Jan 2023 02:24:34 -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 S230304AbjATJVq (ORCPT + 48 others); Fri, 20 Jan 2023 04:21:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230284AbjATJVe (ORCPT ); Fri, 20 Jan 2023 04:21:34 -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 902C79D2A3 for ; Fri, 20 Jan 2023 01:21:11 -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 1pIna3-0002yO-EE; Fri, 20 Jan 2023 10:21:03 +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 1pIna2-007L99-GB; Fri, 20 Jan 2023 10:21:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1pIna0-001SU0-Vr; Fri, 20 Jan 2023 10:21:00 +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 v2 3/4] net: phy: micrel: disable 1000Mbit EEE support if 1000Mbit is not supported Date: Fri, 20 Jan 2023 10:20:58 +0100 Message-Id: <20230120092059.347734-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230120092059.347734-1-o.rempel@pengutronix.de> References: <20230120092059.347734-1-o.rempel@pengutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 KSZ8563 is announcing by default 1000Mbit EEE support, but at same time do not supporting 1000Mbit speed. This patch will disable 1000Mbit EEE advertisement if the PHY is not 1000Mbit capable. Signed-off-by: Oleksij Rempel --- drivers/net/phy/micrel.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index dca61a73c144..30fed309250e 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -1449,6 +1449,25 @@ static int ksz9477_set_eee(struct phy_device *phydev, struct ethtool_eee *data) return 0; } +static int ksz9477_config_init(struct phy_device *phydev) +{ + int ret; + + /* KSZ8563 is able to advertise not supported MDIO_EEE_1000T. + * We need to test if the PHY is 1Gbit capable and + * clear MDIO_EEE_1000T if needed. + */ + if (!linkmode_test_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, + phydev->supported)) { + ret = phy_clear_bits_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, + MDIO_EEE_1000T); + if (ret) + return ret; + } + + return kszphy_config_init(phydev); +} + #define KSZ8873MLL_GLOBAL_CONTROL_4 0x06 #define KSZ8873MLL_GLOBAL_CONTROL_4_DUPLEX BIT(6) #define KSZ8873MLL_GLOBAL_CONTROL_4_SPEED BIT(4) @@ -3496,7 +3515,7 @@ static struct phy_driver ksphy_driver[] = { .phy_id_mask = MICREL_PHY_ID_MASK, .name = "Microchip KSZ9477", /* PHY_GBIT_FEATURES */ - .config_init = kszphy_config_init, + .config_init = ksz9477_config_init, .config_intr = kszphy_config_intr, .handle_interrupt = kszphy_handle_interrupt, .suspend = genphy_suspend, -- 2.30.2