Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp420257iof; Mon, 6 Jun 2022 06:07:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyxuzTR6xyIeImD8/RmxlFj55tOJKzV6izRE131Et18eLDqSZ9bzHQSaCSHZAsM+s1wP0Jc X-Received: by 2002:a17:90b:4a8c:b0:1e2:f378:631d with SMTP id lp12-20020a17090b4a8c00b001e2f378631dmr26232458pjb.58.1654520834319; Mon, 06 Jun 2022 06:07:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654520834; cv=none; d=google.com; s=arc-20160816; b=N8q+YaeG1LAjhffvCsZUR8wJ+Vkhhg4Kw62biZ8vVziVZzLeBSqGNfQZJtxLnrKFch azfudEAp2t6nnybxFQVVevufSK7sCOncfqfOxYejfQf4X4YjQmfpu+aoOhqlFWXn3AnW jjejKPyKKQaD+LDxYwFC0VzPs8Iy/2LImXPhirABh3zb0mmmEM+nmrcgQzAvDzwcYbEv p1bCq+A4G3IjSOhfZoEM32KXEhHJjWUsBqyhevEUDrgmUG2nFKv+Yv/jn/BnRF3fLVCM mHiA2ig7ARlpvUIJa4gC8IOE5Yk5MhjMFQqcXGlx04MMbcp6VQQubA8RHOCJzNCYBwKH VCyw== 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:dkim-signature; bh=PHja6eQ6Mv2Fce3sGPE0UzxsdJMvKhiNmaMfYmc4ndA=; b=zgSS5UuwhMb5xMPIBus7lOnUvYLtp3sbBswu8pGcoCpUzetuS+oIJIxB64KJBns76s aQyxzn4PRXM5Gx8T4kFWYSW1SRD0Svqs9UuUUv3EIZvbA+tsF/9/OEHvLt6BGDfMZy1b SVKkWFBE+EQqageRdx1ydaloYDb3gqx55ZzMjtpc3eEZcBL4NUK/wbZKz9Dudj0NjVQC AqHJxfCFB9/aRW5+FrlX1Fq5pH59Hyx3QKkhh/GpiY3quqeMmAbjCxE53dL7bNap64Wy 1Xiq6RezLkOi5D59b4vzN+qk/YxbiEm2NdneX4CCGwi8ozdjDyf69otFoXNYe8drkigk m4Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@pqrs.dk header.s=google header.b=URrbnH33; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id 32-20020a630e60000000b003fc9203ee53si21304396pgo.574.2022.06.06.06.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jun 2022 06:07:14 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=temperror (no key for signature) header.i=@pqrs.dk header.s=google header.b=URrbnH33; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2AB602E4369; Mon, 6 Jun 2022 06:02:04 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238189AbiFFNBy (ORCPT + 99 others); Mon, 6 Jun 2022 09:01:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60730 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238171AbiFFNBw (ORCPT ); Mon, 6 Jun 2022 09:01:52 -0400 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2B372E21B8 for ; Mon, 6 Jun 2022 06:01:49 -0700 (PDT) Received: by mail-ed1-x530.google.com with SMTP id h19so18765410edj.0 for ; Mon, 06 Jun 2022 06:01:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pqrs.dk; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PHja6eQ6Mv2Fce3sGPE0UzxsdJMvKhiNmaMfYmc4ndA=; b=URrbnH33zLvDajx/0NU5kLo58AbZNjB8rEMPICV3OEKt/mAq2Nk9jrpxpVuUI74Pa8 Qg5PSBqML+Zi1e9grmdCRG9zwcGZkgLL5hqRWUMvMVsc1jaBdXscOjleVrsHY3+1L1CN DJieqIyP2shK2Fxwll9P/g0kXuAY9GT6ZYLzA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PHja6eQ6Mv2Fce3sGPE0UzxsdJMvKhiNmaMfYmc4ndA=; b=0KrH+gwGBWJVhrjcs1CWO6mYG1LNvakbJ4dsdvKy/NNM21saB0iNLwWKbl1j36wRnS xp5OO/ibDEILXlIWHM5HOl9zrLy6zXrlbvWBp9gCnMaosl5jVTbEvT/JZDJ0JlI//crz 0cFsW2zgJZ8mIEsn3rczM1Ka+irGJckNTiIrW24+K/DlDZNaFowZy/8HseyAxgb/gk1c BsZOmrZ0KwgUM9j5aVpOEAqwjVJVKYlI4HhvtBVCWkIjUEyHenTZJiVyz7T/QYKXkslr V3WOUV1Nq8a+4B2Y5nlD5dtbLD6IaGjJf4fgYKOw0QPQJuxe4wXm3Gy7N2RRK8jouqQH BDBQ== X-Gm-Message-State: AOAM533Lqh/47hjrWewRynmIOM2wtsxcFPNZvgv5Vv4Ouiv2pB9dQs2e dcvLGmBO+5mAYlL4/jtuoksKpg== X-Received: by 2002:a05:6402:32a6:b0:42d:ed8b:3d8 with SMTP id f38-20020a05640232a600b0042ded8b03d8mr26381739eda.225.1654520508129; Mon, 06 Jun 2022 06:01:48 -0700 (PDT) Received: from localhost.localdomain (80.71.142.18.ipv4.parknet.dk. [80.71.142.18]) by smtp.gmail.com with ESMTPSA id t26-20020a17090605da00b006fe7d269db8sm6275447ejt.104.2022.06.06.06.01.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jun 2022 06:01:47 -0700 (PDT) From: =?UTF-8?q?Alvin=20=C5=A0ipraga?= To: luizluca@gmail.com, Linus Walleij , =?UTF-8?q?Alvin=20=C5=A0ipraga?= , Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Russell King , "Russell King (Oracle)" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net] net: dsa: realtek: rtl8365mb: fix GMII caps for ports with internal PHY Date: Mon, 6 Jun 2022 15:01:30 +0200 Message-Id: <20220606130130.2894410-1-alvin@pqrs.dk> X-Mailer: git-send-email 2.36.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 From: Alvin Šipraga phylib defaults to GMII when no phy-mode or phy-connection-type property is specified in a DSA port node. Commit a5dba0f207e5 ("net: dsa: rtl8365mb: add GMII as user port mode") introduced implicit support for GMII mode on ports with internal PHY to allow a PHY connection for device trees where the phy-mode is not explicitly set to "internal". Commit 6ff6064605e9 ("net: dsa: realtek: convert to phylink_generic_validate()") then broke this behaviour by discarding the usage of rtl8365mb_phy_mode_supported() - where this GMII support was indicated - while switching to the new .phylink_get_caps API. With the new API, rtl8365mb_phy_mode_supported() is no longer needed. Remove it altogether and add back the GMII capability - this time to rtl8365mb_phylink_get_caps() - so that the above default behaviour works for ports with internal PHY again. Fixes: 6ff6064605e9 ("net: dsa: realtek: convert to phylink_generic_validate()") Signed-off-by: Alvin Šipraga --- Luiz, Russel: Commit a5dba0f207e5 ought to have had a Fixes: tag I think, because it claims to have been fixing a regression in the net-next tree - is that right? I seem to have missed both referenced commits when they were posted and never hit this issue personally. I only found things now during some other refactoring and the test for GMII looked weird to me so I went and investigated. Could you please help me identify that Fixes: tag? Just for my own understanding of what caused this added requirement for GMII on ports with internal PHY. --- drivers/net/dsa/realtek/rtl8365mb.c | 38 +++++++---------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/drivers/net/dsa/realtek/rtl8365mb.c b/drivers/net/dsa/realtek/rtl8365mb.c index 3bb42a9f236d..769f672e9128 100644 --- a/drivers/net/dsa/realtek/rtl8365mb.c +++ b/drivers/net/dsa/realtek/rtl8365mb.c @@ -955,35 +955,21 @@ static int rtl8365mb_ext_config_forcemode(struct realtek_priv *priv, int port, return 0; } -static bool rtl8365mb_phy_mode_supported(struct dsa_switch *ds, int port, - phy_interface_t interface) -{ - int ext_int; - - ext_int = rtl8365mb_extint_port_map[port]; - - if (ext_int < 0 && - (interface == PHY_INTERFACE_MODE_NA || - interface == PHY_INTERFACE_MODE_INTERNAL || - interface == PHY_INTERFACE_MODE_GMII)) - /* Internal PHY */ - return true; - else if ((ext_int >= 1) && - phy_interface_mode_is_rgmii(interface)) - /* Extension MAC */ - return true; - - return false; -} - static void rtl8365mb_phylink_get_caps(struct dsa_switch *ds, int port, struct phylink_config *config) { - if (dsa_is_user_port(ds, port)) + if (dsa_is_user_port(ds, port)) { __set_bit(PHY_INTERFACE_MODE_INTERNAL, config->supported_interfaces); - else if (dsa_is_cpu_port(ds, port)) + + /* GMII is the default interface mode for phylib, so + * we have to support it for ports with integrated PHY. + */ + __set_bit(PHY_INTERFACE_MODE_GMII, + config->supported_interfaces); + } else if (dsa_is_cpu_port(ds, port)) { phy_interface_set_rgmii(config->supported_interfaces); + } config->mac_capabilities = MAC_SYM_PAUSE | MAC_ASYM_PAUSE | MAC_10 | MAC_100 | MAC_1000FD; @@ -996,12 +982,6 @@ static void rtl8365mb_phylink_mac_config(struct dsa_switch *ds, int port, struct realtek_priv *priv = ds->priv; int ret; - if (!rtl8365mb_phy_mode_supported(ds, port, state->interface)) { - dev_err(priv->dev, "phy mode %s is unsupported on port %d\n", - phy_modes(state->interface), port); - return; - } - if (mode != MLO_AN_PHY && mode != MLO_AN_FIXED) { dev_err(priv->dev, "port %d supports only conventional PHY or fixed-link\n", -- 2.36.0