From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADF09C433FE for ; Thu, 7 Apr 2022 14:45:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344222AbiDGOrR (ORCPT ); Thu, 7 Apr 2022 10:47:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229758AbiDGOrP (ORCPT ); Thu, 7 Apr 2022 10:47:15 -0400 Received: from vps0.lunn.ch (vps0.lunn.ch [185.16.172.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD0684C40B; Thu, 7 Apr 2022 07:45:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=In-Reply-To:Content-Disposition:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:From:Sender:Reply-To:Subject: Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Content-Disposition:In-Reply-To:References; bh=dYlUZ7HEM9Q8UXLO+RramSh0ZaxW+tJRr+1uBmDx/CA=; b=0piKrbmhFW7hUKXrkZkNchk2tg eEuOXgL43A35J6T4dB1XfIg5vVxVAYDF8nwD9oSOioIPA1XtTPyzcwSNR8dfXZv/CJT8Sgs9iZ7cf UbvI1VufV7xLk3WfTgFqcPuF6WLIJkY0zQckaBtEGiuKaIumSR4CBYTg+/a2BISfxi5Q=; Received: from andrew by vps0.lunn.ch with local (Exim 4.94.2) (envelope-from ) id 1ncTNf-00Ef6h-NE; Thu, 07 Apr 2022 16:45:03 +0200 Date: Thu, 7 Apr 2022 16:45:03 +0200 From: Andrew Lunn To: "huangguangbin (A)" Cc: Oleksij Rempel , davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, lipeng321@huawei.com, chenhao288@hisilicon.com Subject: Re: [PATCH] net: phy: genphy_loopback: fix loopback failed when speed is unknown Message-ID: References: <20220331114819.14929-1-huangguangbin2@huawei.com> <130bb780-0dc1-3819-8f6d-f2daf4d9ece9@huawei.com> <20220401064006.GB4449@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > Hi Andrew, > The PHY we test is RTL8211F, it supports 10 half. This problem actually is, > our board has MAC connected with PHY, when loopback test, packet flow is > MAC->PHY->MAC, it needs speed of MAC and PHY should be same when they work. > > If PHY speed is unknown when PHY goes down, we will not set MAC speed in > adjust_link interface. In this case, we hope that PHY speed should not be > changed, as the old code of function genphy_loopback() before patch > "net: phy: genphy_loopback: add link speed configuration". > > If PHY has never link, MAC speed has never be set in adjust_link interface, > yeah, in this case, MAC and PHY may has different speed, and they can not work. > I think we can accept this situation. > > I think it is general problem if there is MAC connected with PHY. Thanks for investigating. Looks like we are getting close the real solution. And it is a generic problem, that the MAC and PHY might not be using the same configuration. So it looks like if the link is down, or speed is UNKNOWN, we need to set phydev->link true, speed 10, duplex half, the PHY into 10/Half and call the adjust_link callback. That should get the MAC and PHY to talk to each other. The open question is what to do when we disable loopback. Maybe we need to always set link false, speed unknown and call phy_start_aneg() to restart the link? Andrew