From patchwork Fri Feb 14 23:38:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1238431 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=PjX8FEhB; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48K8wV1BP3z9sPk for ; Sat, 15 Feb 2020 10:39:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728328AbgBNXjB (ORCPT ); Fri, 14 Feb 2020 18:39:01 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:38671 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727649AbgBNXjA (ORCPT ); Fri, 14 Feb 2020 18:39:00 -0500 Received: by mail-pl1-f195.google.com with SMTP id t6so4285568plj.5; Fri, 14 Feb 2020 15:38:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+N06HXrDY2QrfyGiKTgLMNY+oN0lEAf54vNFOw6UUXM=; b=PjX8FEhBrKtqmxBBA2VeduzK83Md0W9O+9Igw/oI4kjsiFcj7pCpru7bV7/cEot1n7 vJ1ZUcjy2tIIR7MQff+mH0W/GekH/1IDMOJePwAxNGX4nmeUdSTjt3fk7oFPHglTp2tT APkMW6k93mathXopopkYIcZxfhtThskCxy1Uh10Tn9Lpn2cS7wKKqx/BMIW7oRzfYmSK oQkxMWqebrODsgmTTbbDEwiJHJGNFGq6oBWkNPLY8T3PVuz3oPhQS7sqonnJ+i0rU//L V79a13rHi6EqNkjoL+733M7OzafBT9rv8PUxdPbQdOE1l5ooDNkI2JoC8UF1ZiimjroD cbow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+N06HXrDY2QrfyGiKTgLMNY+oN0lEAf54vNFOw6UUXM=; b=C0MOdvjosmPj3ZM6vNttwfIWK/YvG+LVOnTcRmcIv52uowXbKUZwmMLGyztpVwjTpX xVe1thsdYSey+pk9i6d5mqTyRSQ+Uipcbxm56vSspryY79gBQvFBEUZS9p3jeu9dbh94 bbhTMQVlrVQpVaKRVrfuFL9+JuMLoBxyAm7PaKaXy/T6caasdEzppTBWZjeGSCvZlu+f bTGe07jGbS9w6PkBpD9VQ45ZCwRrqOS6nen0fE8zV3MmjK3BjP0JW9I57YWTOPfHjHwg cWNhleVspDmz4KEKukzLC8lhmaSWy6vTeOGk5pOf8XUGuNJPDdYhifHrRk6BKWYY16RJ EKWQ== X-Gm-Message-State: APjAAAVpuoFCtXf2d85DpdfswiDy9KgJQs5aHph+IWBE1ppFBhNd3J0C s7wi+Bs5Gad+RxFgbnp7dMBh+dWh X-Google-Smtp-Source: APXvYqz6hV/py6h7BU4b09+y/9EueGEU6SIrVkathBINmwRIxVPbvC9zs3Z4F7TxIXwHG6IVH6n9Nw== X-Received: by 2002:a17:90a:b106:: with SMTP id z6mr6503869pjq.91.1581723539070; Fri, 14 Feb 2020 15:38:59 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p17sm7797397pfn.31.2020.02.14.15.38.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2020 15:38:58 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net-next 1/3] net: phy: broadcom: Allow BCM54810 to use bcm54xx_adjust_rxrefclk() Date: Fri, 14 Feb 2020 15:38:51 -0800 Message-Id: <20200214233853.27217-2-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200214233853.27217-1-f.fainelli@gmail.com> References: <20200214233853.27217-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The function bcm54xx_adjust_rxrefclk() works correctly on the BCM54810 PHY, allow this device ID to proceed through. Signed-off-by: Florian Fainelli Reviewed-by: Andrew Lunn --- drivers/net/phy/broadcom.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index 7d68b28bb893..4ad2128cc454 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -194,7 +194,8 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) /* Abort if we are using an untested phy. */ if (BRCM_PHY_MODEL(phydev) != PHY_ID_BCM57780 && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610 && - BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M) + BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M && + BRCM_PHY_MODEL(phydev) != PHY_ID_BCM54810) return; val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3); From patchwork Fri Feb 14 23:38:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1238433 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=lCJ3w7UH; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48K8xM5Zbrz9sRL for ; Sat, 15 Feb 2020 10:39:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728410AbgBNXjN (ORCPT ); Fri, 14 Feb 2020 18:39:13 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:43336 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728306AbgBNXjB (ORCPT ); Fri, 14 Feb 2020 18:39:01 -0500 Received: by mail-pg1-f194.google.com with SMTP id u12so5341892pgb.10; Fri, 14 Feb 2020 15:39:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=J51rZFtUWejHx0NVomPgc8yJ23PytH7hLfoorhmh/K0=; b=lCJ3w7UHoQ+ChhzMM3NbHgUIwqxBd+YsbCR68eN+XR5msMJLYhIrNKBBqWDw7YC+iZ xIW0QB0kb55smSO76X1AFQSBh6JTY4s+jQTzOsIQv4yUtMlS5nZHqyC+Zx0PJcxfggJM HvoJ/Ps7u8nDdDDKEux5oQ2Hvk3JkRyGmJHI4wm58KH/EwZhr/6wbe7KS/DZ3Uz2OF5Z LlyuNQz95jxU/ULjfI11wTaHWyLxt9bqGlWb5jCT0gsjbX/87Kq9NGJM0ae87gsXN35e az+45xuJTfAZoUedi8HzrdNY2NNhUfnTq38cfVMGKoSRoa0lEz5gqLNhtPElaDRLFsZj RiKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=J51rZFtUWejHx0NVomPgc8yJ23PytH7hLfoorhmh/K0=; b=ZNPP71ixlj4ZzAS5kpA6/gmkKznpl6+Bc8xAugm0EXM8DIAt12rBAHUt323XRSOLBD K90QSKKvni76Rq2X+qsZ0TavdNq/B1WrOUjrZQ0D4kaFNtaRb/mnYwYkWd0jSDn1Ghrq IObL8KQxUCbZMw2BLADhnjahdnpuo7zLnMDmWiB9jl9aQbAVwyIbP9mxwoIskD1bwsGv 4pB3O2RaBDz135DerK90n4IHDeyeTSArfLLOyuiV+h+oioro/WnPErBwotIGbDdc+ohD xx5qKdlJOi0kJHZeGuUuFy3DoTW4MXGkXWisFVMbtlVw7g602rlo3fy8IHUOXAG4UXSD p88w== X-Gm-Message-State: APjAAAUTs/k/qhyxhSlDZpKCbIP3EQQBSOIC5Z3uirU6urgYrNw5CEy/ iK2gGDnYItPWD2CEY9LAIIBfGET1 X-Google-Smtp-Source: APXvYqxy1Rl9we7WRyYQPBg7gJ1lQj3o0JKSowHRWRcHJPuszIMFRPOKj/YQoGOY0P9QyPvcHsESWQ== X-Received: by 2002:a63:615:: with SMTP id 21mr6020303pgg.440.1581723540191; Fri, 14 Feb 2020 15:39:00 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p17sm7797397pfn.31.2020.02.14.15.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2020 15:38:59 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net-next 2/3] net: phy: broadcom: Have bcm54xx_adjust_rxrefclk() check for flags Date: Fri, 14 Feb 2020 15:38:52 -0800 Message-Id: <20200214233853.27217-3-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200214233853.27217-1-f.fainelli@gmail.com> References: <20200214233853.27217-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org bcm54xx_adjust_rxrefclk() already checks for the flags and will correctly reacting to the 3 different flags it check, allow it to be unconditionally called. Signed-off-by: Florian Fainelli --- drivers/net/phy/broadcom.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index 4ad2128cc454..b4eae84a9195 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -273,10 +273,7 @@ static int bcm54xx_config_init(struct phy_device *phydev) (phydev->dev_flags & PHY_BRCM_CLEAR_RGMII_MODE)) bcm_phy_write_shadow(phydev, BCM54XX_SHD_RGMII_MODE, 0); - if ((phydev->dev_flags & PHY_BRCM_RX_REFCLK_UNUSED) || - (phydev->dev_flags & PHY_BRCM_DIS_TXCRXC_NOENRGY) || - (phydev->dev_flags & PHY_BRCM_AUTO_PWRDWN_ENABLE)) - bcm54xx_adjust_rxrefclk(phydev); + bcm54xx_adjust_rxrefclk(phydev); if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { err = bcm54210e_config_init(phydev); From patchwork Fri Feb 14 23:38:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1238432 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=leCAS4Un; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48K8wZ04lvz9sPK for ; Sat, 15 Feb 2020 10:39:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728373AbgBNXjG (ORCPT ); Fri, 14 Feb 2020 18:39:06 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:34659 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727649AbgBNXjD (ORCPT ); Fri, 14 Feb 2020 18:39:03 -0500 Received: by mail-pg1-f195.google.com with SMTP id j4so5714239pgi.1; Fri, 14 Feb 2020 15:39:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=r/daHq14j7KlCEleoh0AsLVk0GU+/IpGzIdkWOGu9j8=; b=leCAS4Unb6+jGXWE0rvBqK9AwU54E8dbuT0heucRvFgcJhOl9Nnyab6zIU55jawRwQ aLYcfghOpARj2JfpIJujnZx4GB4cp8KswWBdWanJ7j/amtHoqW5zjXXNgaDQWhexzu8P 3TCSICMvcYwRSLEFvqtRK0aFW06N1aD4WcTKj4mqpQa/6YNBJRNYMHeZLRpv8r4iq4MD 7Ns2gPGVYsiPkVTlTF5QMGr5auYaD3qIlWBugWD9OKzpxkVqxF3lHXeqQh6AcjklvQsH r0dtEdcvQQFl3E+koOmMY2DH9xbFDU/SGd9ThW8IzXL2/LPPOR5Z7lrB3a3JOHYIRtWQ MeXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=r/daHq14j7KlCEleoh0AsLVk0GU+/IpGzIdkWOGu9j8=; b=Vkkh62PrUnfgFEgO2coJg7B9Xv9qaqmobeAuHfL6t8wMRA2AwQOABhLIlvK1IYy1Mg n26DUN4TjtVUIgAziyDiUPEa6sfWR96BIA5n3JM1m1j/1/XOB/yGmONiYcLioTF4DzXu PZt02jsdjkYKLcGFBfNZtWGQoeC2D4hULFqohwWzGEi4TQ7WomQu/TUiWFwqdEdnzi4Q 6qyHirzH7PaMX0h6EIlFpYzktS9ZKz1EKv3r5BPVQxd9r5EDFacD4CZ9aCG127F1OXlB oaossL1SRRdZGfdRpQ+d1DHBlSUL1UYFKmoquWtRdpaoZJrdhDKJ0xLLNdsj7u4x4s01 7+lw== X-Gm-Message-State: APjAAAVSLjET7q4TFCDqEsv0itVVp+eolt82jRrzg0FDKlaaiXQQrZ3y s+S+bv3CB5mzkcHaz0ACOqRN7tWZ X-Google-Smtp-Source: APXvYqyR7VvXUTgn8ShzEg8QgrIaIAsIHsVUqJojROs4F12qWanN9/ER6J0swzxRiqGU2nzZwR0OZA== X-Received: by 2002:a63:2bc3:: with SMTP id r186mr6010885pgr.294.1581723541252; Fri, 14 Feb 2020 15:39:01 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p17sm7797397pfn.31.2020.02.14.15.39.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2020 15:39:00 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net-next 3/3] net: phy: broadcom: Wire suspend/resume for BCM54810 Date: Fri, 14 Feb 2020 15:38:53 -0800 Message-Id: <20200214233853.27217-4-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200214233853.27217-1-f.fainelli@gmail.com> References: <20200214233853.27217-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The BCM54810 PHY can use the standard BMCR Power down suspend, but needs a custom resume routine which first clear the Power down bit, and then re-initializes the PHY. While in low-power mode, the PHY only accepts writes to the BMCR register. The datasheet clearly says it: Reads or writes to any MII register other than MII Control register (address 00h) while the device is in the standby power-down mode may cause unpredictable results. Signed-off-by: Florian Fainelli Reviewed-by: Andrew Lunn --- drivers/net/phy/broadcom.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index b4eae84a9195..ab24692a92c6 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -313,6 +313,20 @@ static int bcm54xx_config_init(struct phy_device *phydev) return 0; } +static int bcm54xx_resume(struct phy_device *phydev) +{ + int ret; + + /* Writes to register other than BMCR would be ignored + * unless we clear the PDOWN bit first + */ + ret = genphy_resume(phydev); + if (ret < 0) + return ret; + + return bcm54xx_config_init(phydev); +} + static int bcm5482_config_init(struct phy_device *phydev) { int err, reg; @@ -706,6 +720,8 @@ static struct phy_driver broadcom_drivers[] = { .config_aneg = bcm5481_config_aneg, .ack_interrupt = bcm_phy_ack_intr, .config_intr = bcm_phy_config_intr, + .suspend = genphy_suspend, + .resume = bcm54xx_resume, }, { .phy_id = PHY_ID_BCM5482, .phy_id_mask = 0xfffffff0,