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 X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C653DC43381 for ; Fri, 22 Feb 2019 21:59:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 931AD2075C for ; Fri, 22 Feb 2019 21:59:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L9I6/ppZ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726476AbfBVV7s (ORCPT ); Fri, 22 Feb 2019 16:59:48 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:36236 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725878AbfBVV7r (ORCPT ); Fri, 22 Feb 2019 16:59:47 -0500 Received: by mail-wr1-f65.google.com with SMTP id o17so3928060wrw.3 for ; Fri, 22 Feb 2019 13:59:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=Joc4goOfcZlXEdI4BR8LlAKfULX5tKssqOnXpQvbDes=; b=L9I6/ppZIXH53YXgNKwitCS9H4gSLGC2K2DLMWotGUXj7xo75IDnWYdDsvUOGoB98m rUYAK2RH2ov1Y0fF58/tWcXZhME61lLwAS7EvRbu3sEX76gnTdJ33PwfCF1kBwQlLdBz dcLPqr0CQi3QVTucY3EVzaIMTwaF0PTBqzXkliAslDd/gHn45NbehqfhiVpGzthicX9R HsEHJoWlPUgvqit/FxR6ifrGnWZDcoxPPSNNuvxy3Ba9n55JClY1law1/jj+C22QxPFh EGld/jbys7ETyCN2VXfq63uWXb7Yzjh3uWX9dawNwUc6cUbTAZ0CZWy6Od4gXlKCwmlf JuOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=Joc4goOfcZlXEdI4BR8LlAKfULX5tKssqOnXpQvbDes=; b=In3rDx/ogrRCG5Ds8DLB6uHvQEiYH/bYrM1Udq5VKjpNhqL7mt+82WXpqt4VGsNUQ1 9NsszuBQDGyLM7UOwwY8W0zM+51ivOaEfoCpUfqHf6ZrHRZUfyZYMCq2NycVn8+R7Qk0 bUOlLV8xmjL2F4n7xrBy4pXQ3oUcqWHrQbYNIXEETKBxSZrEwSQBxnqNDpp/7SyltsYw +u9e3sNq7r1RUCRPXWZt0olIFrvGHSOx2SliP59Xz5+6FjrfSeCKtPPi4e2AatXb920p /ctE+wDbN0httlun9Wxy6FPG43m7jWKRi8lmVaN1FPs6tPdPZa0XUadjlH2ojLlIWR8D ttAg== X-Gm-Message-State: AHQUAubT1BsFAk30Mb28vsXxeSq1Vrsgtgi4IhP+tvTCqPvF2R6r19PE ktzff6jkCfUDXripKQpfFw+er0ve X-Google-Smtp-Source: AHgI3Ia4zY0cLIwEyWKLNdgJ1lml5D7XVnJAu2OuLiz5crJrVNyrKar/Ud1miLiD0VVq7azkHPdXTw== X-Received: by 2002:adf:9123:: with SMTP id j32mr4703585wrj.122.1550872785720; Fri, 22 Feb 2019 13:59:45 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:881a:e62a:a902:5b57? (p200300EA8BF1E200881AE62AA9025B57.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:881a:e62a:a902:5b57]) by smtp.googlemail.com with ESMTPSA id t2sm2499319wmi.37.2019.02.22.13.59.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 13:59:45 -0800 (PST) To: Andrew Lunn , Florian Fainelli , David Miller Cc: "netdev@vger.kernel.org" From: Heiner Kallweit Subject: [PATCH net-next] net: phy: check PMAPMD link status only in genphy_c45_read_link Message-ID: <9c7b68ea-ac30-a7ec-1c88-ae819dbbb7b4@gmail.com> Date: Fri, 22 Feb 2019 22:59:38 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The current code reports a link as up if all devices (except a few blacklisted ones) report the link as up. This breaks Aquantia AQCS109 for lower speeds because on this PHY the PCS link status reflects a 10G link only. For Marvell there's a similar issue, therefore PHYXS device isn't checked. There may be more PHYs where depending on the mode the link status of only selected devices is relevant. For now it seems to be sufficient to check the link status of the PMAPMD device only. Leave the loop in the code to be prepared in case we have to add functionality to check more than one device, depending on the mode. Successfully tested on a board with an AQCS109. Signed-off-by: Heiner Kallweit --- drivers/net/phy/phy-c45.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c index d80797e8d..ce5fa5346 100644 --- a/drivers/net/phy/phy-c45.c +++ b/drivers/net/phy/phy-c45.c @@ -215,17 +215,10 @@ EXPORT_SYMBOL_GPL(genphy_c45_aneg_done); */ int genphy_c45_read_link(struct phy_device *phydev) { - u32 mmd_mask = phydev->c45_ids.devices_in_package; + u32 mmd_mask = MDIO_DEVS_PMAPMD; int val, devad; bool link = true; - /* The vendor devads and C22EXT do not report link status. Avoid the - * PHYXS instance as its status may depend on the MAC being - * appropriately configured for the negotiated speed. - */ - mmd_mask &= ~(MDIO_DEVS_VEND1 | MDIO_DEVS_VEND2 | MDIO_DEVS_C22EXT | - MDIO_DEVS_PHYXS); - while (mmd_mask && link) { devad = __ffs(mmd_mask); mmd_mask &= ~BIT(devad); -- 2.20.1