Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp380347pxb; Thu, 31 Mar 2022 07:31:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw1tsMS02W2snjGievb3zly5jUL3DS0TW2F3AprLL3tcxLNxjeVfgxjigtOym4AWlzJa9cV X-Received: by 2002:a17:906:300f:b0:6e0:b38d:777d with SMTP id 15-20020a170906300f00b006e0b38d777dmr5350827ejz.189.1648737106301; Thu, 31 Mar 2022 07:31:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648737106; cv=none; d=google.com; s=arc-20160816; b=p1u4kTddfbMAeYlPTFwKh+tpp0SOEik2iEly9opA5PVcE7rRdZUHPX4o9/+ZHh56zc n1e9EhUDnN4+4yh7z+R2XLfCbRl0immWeYHaOgOAIoGKWNhKBgofJ6l1poP/tavOfeyK Y4o0N7I6zmq4MsIbL0mGdLuwOEiF3YB/NMEuTs2cl/vI2UzUsQ8fmDs7sGmBcM9PzO2W XOZyR9auzVSsBGkM9gcnmVH/rnnHSEBkIn2/QgW2qB7pU3jfnw8eIOhHN6AF3NthVe/V hw5BNVMlyV9WAL4QQd17UZLKxkoQzHMQHOEqkg0XOxbsu3EH1B51x+9f/pfQqhQrwjCk 5pqQ== 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 :message-id:date:subject:cc:to:from; bh=QR5t05frZr82VOWXe0Z1WKyiAsqP+zwJGb4Kkp9TVT0=; b=LvEDLpAwSQ1DsiwMYnyhQtILF7C40tcImveP6mEeJ53/q/62biJS6SizvNzC3Shz9z 3fXVBtRnfR+8ASLIckNVlLWPGwdyCt9pI8PxQRzUhX56O7lzuFatWz8u1PhtCdCECNTQ hpPxU+Bl/MART3QMwa/+fIxzF/Btt02GMTEaGEP5rjg7gxYljM0pUoNNaESYMZBaOiB/ qe1qiMpsqzr5+cKEsTeOktatuBMiGd6sXRdFRkIakHI/HhtdaCUjFsWfZsOiSJfJrKA/ JiOxpLthUJonfzY6odfel5MYka403FNenREs9ANFCccZ3lIM2gd9c61k+PHm3MshPXb7 YZHQ== 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f21-20020a170906825500b006e08e694050si22240409ejx.633.2022.03.31.07.31.20; Thu, 31 Mar 2022 07:31:46 -0700 (PDT) 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235346AbiCaLzn (ORCPT + 99 others); Thu, 31 Mar 2022 07:55:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232730AbiCaLzm (ORCPT ); Thu, 31 Mar 2022 07:55:42 -0400 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 936814199E; Thu, 31 Mar 2022 04:53:54 -0700 (PDT) Received: from kwepemi500022.china.huawei.com (unknown [172.30.72.54]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4KThRv59lXzBrtJ; Thu, 31 Mar 2022 19:49:47 +0800 (CST) Received: from kwepemm600016.china.huawei.com (7.193.23.20) by kwepemi500022.china.huawei.com (7.221.188.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Thu, 31 Mar 2022 19:53:52 +0800 Received: from localhost.localdomain (10.67.165.24) by kwepemm600016.china.huawei.com (7.193.23.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Thu, 31 Mar 2022 19:53:51 +0800 From: Guangbin Huang To: , , , CC: , , , , Subject: [PATCH] net: phy: genphy_loopback: fix loopback failed when speed is unknown Date: Thu, 31 Mar 2022 19:48:19 +0800 Message-ID: <20220331114819.14929-1-huangguangbin2@huawei.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.165.24] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600016.china.huawei.com (7.193.23.20) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE 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 If phy link status is down because link partner goes down, the phy speed will be updated to SPEED_UNKNOWN when autoneg on with general phy driver. If test loopback in this case, the phy speed will be set to 10M. However, the speed of mac may not be 10M, it causes loopback test failed. To fix this problem, if speed is SPEED_UNKNOWN, don't configure link speed. Fixes: 014068dcb5b1 ("net: phy: genphy_loopback: add link speed configuration") Signed-off-by: Guangbin Huang --- drivers/net/phy/phy_device.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 8406ac739def..5001bb1a019c 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2618,6 +2618,9 @@ int genphy_loopback(struct phy_device *phydev, bool enable) ctl |= BMCR_SPEED1000; else if (phydev->speed == SPEED_100) ctl |= BMCR_SPEED100; + else if (phydev->speed == SPEED_UNKNOWN) + return phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, + BMCR_LOOPBACK); if (phydev->duplex == DUPLEX_FULL) ctl |= BMCR_FULLDPLX; -- 2.33.0