From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF93936403B for ; Mon, 1 Jun 2026 08:49:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780303772; cv=none; b=aJd2rt8zlEl0Enosa6Tr/nXzsWQpSayT0Y+cfAXgflMXKlXfBuensnRUiTAHamHeNG4udHPrk/NJEnUXhqoNkatD3yYvDfHY4aWiPH28UVysFOyZLCcuisf2Q6EIH9qHRrDKJdBLmr68+MXM7WVm8Ewq5FTioewDZNO6StiV7nc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780303772; c=relaxed/simple; bh=1RlI5AhCmHo7BEj9zECMfeUbl8CC+sqg162hxB0Z3+M=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=uiHLnqqoLJFMzDR0JiF9N8NQ4MoJdAKLJ8XeyO39FU1IoZHsnsXkbCHMHPcm3OLyjMXcQU+i3qZCIzSbX0jfahCwHt1No+Y8KgzsyHO4HDJZqqp6QF3kHLAKtsfNTdC636O+Tkaiu4wRVgp/Pa7bVgS5+3AcfJ2koreGNYtH4ME= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=LnDnmfSn; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=OascCDqA; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="LnDnmfSn"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="OascCDqA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780303769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OVP9ss4Lb/3al8YG7gU0T5fKPpgIsgOFPUND3RQKGAw=; b=LnDnmfSnWZ0KPTUdsXwF67UHcPi358sSxT36yCXxl3efYxD7Y8UCPK9eKb08LR+oTvsf+f PFNdh/KrfLwDXnw5vKac/kdjQ/2oKiEe9lCQvx6zZ+rWoreZ5Og76mE6BldgnVkkZiq+a1 2A50L+RIsyfPmzTuIgrpWsWDwLa9M6E= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-98---S44CpJNfa5NjZ7NK9fTg-1; Mon, 01 Jun 2026 04:49:27 -0400 X-MC-Unique: --S44CpJNfa5NjZ7NK9fTg-1 X-Mimecast-MFC-AGG-ID: --S44CpJNfa5NjZ7NK9fTg_1780303767 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-45eee3f9f03so3256989f8f.1 for ; Mon, 01 Jun 2026 01:49:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1780303766; x=1780908566; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=OVP9ss4Lb/3al8YG7gU0T5fKPpgIsgOFPUND3RQKGAw=; b=OascCDqA7xTGCpEsFb38dqSol+0jAFN2aW1rCxLldEA8bOldlkDj3R0uPPNiIVqKHP 0tE7Y8PuNwMtDSiw1zwhbVQUp7SQbkyChzT3jfHgy5+yRoGOjOSLD1Bpl+6CWYvL8dwt C4ghnOYuLG/C55v1QAoV63HxItsC2ylpf9pBNwW9Z5ePAMAjHaJPxBUhAgI63F/vPZCS NbwBmkai+iCmr8peUs/PFVRvhSrfTzE9MfICK3Qg8qdS3w93CLXoAY/Vo2jbDFcBHun6 uWEn06bnTu8jZ17ZqkDL3ye8ixrddjJ4m8pXjDk0h8SWLI34d0fJ7VmOF3a6Az00KDUW bHaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780303766; x=1780908566; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OVP9ss4Lb/3al8YG7gU0T5fKPpgIsgOFPUND3RQKGAw=; b=m63/jsR1uNr0WvMu3Ej/rrXzI4JLhB8/W57pYELshehJV5RzZNOxcZQ6DeEtufcg/P MIh0xXjhhNnhdS+lBWfIoPfwFht5EjgHhUyGsWbOPbK4r39lJgyeX0T596gZ2NrAjPNY oRA0Dmj4iyFS1MNs28qnsxroO7N/u4RMAp5GHJqc9i5Z4E3F9rXWO5tcExO8fXxg1Kwa aqYWfnrXpJkfC17io0QQRKUDGRU2V3XOi24WeGIYS6gv02lMQZylftAqHHVUk5OfbjT3 Po34+E5LrlMmi23SW5UDzYUwC5fZ+tUfzPuLVWdWJJTtSaUCftcZBnlRovZ/cos+Ausy /IRQ== X-Forwarded-Encrypted: i=1; AFNElJ8dEu1PiHdDVJfUS5FB2T7LX9mJfxMQifGjpPg8RijD+jVFPdaSoEUrtGAQAmkHL1bEkEiF7am6EIVQZik=@vger.kernel.org X-Gm-Message-State: AOJu0YyEJz7IQfOh0654KhahChhROBGvGMPccH9K18YNd1CJ8qnhQMqL 31tXU2RYoRrqCVvx3lzktIDAMmMsSDeApZ/ZXFXT0egW4uHKoCeaoin/8Of6GAp3kRi37SqMxjF N747WBW4Lrb8Fb2fLg/kXatm+cq6efXgaLwroDpLQitpM+mG7oBBUtS4gvONqBLCLCw== X-Gm-Gg: Acq92OEwS55NCSthYhTWyWOzTZW/pUNT5pQO4CGRwITjX2p0G/agtR9ahLlzaKnvTXj g1nv/AzL5pvfuwi+V/HugH1XjQzNVNQ5R5wOQOfvYB9ej8XTkqiS1DU38YC3eFFPrvu8z0fozlC 1N4COIxGQ/zhfGugX8BrXp2E1wz3D63NLrFWEXBKfT2nE3oKqtsfONpL8FvW6CWID7LyQLx4qZa N8VMEg7lQrqGjjQOL3mGYCVavEJ2ZwOgSe5xb9GzMStn++EZQm9svFKUgLvUJghc2BYZxJrTD8b cetaM1Q3ygDR6B617SgEf9CVVmy0/pp6RfpVqhP/TwQHK6/QfYyEU5xyetLAc1sl0iQtNYi+6C7 t4oHKOolEqI+m9rGG6PQpxdnjZu93jbX7P5t1e5oimF/VIpz3oJ7YpBaYy69ShYrAAkWe X-Received: by 2002:a05:6000:2892:b0:43d:69ff:6898 with SMTP id ffacd0b85a97d-45ef6b00c96mr19452459f8f.9.1780303766479; Mon, 01 Jun 2026 01:49:26 -0700 (PDT) X-Received: by 2002:a05:6000:2892:b0:43d:69ff:6898 with SMTP id ffacd0b85a97d-45ef6b00c96mr19452387f8f.9.1780303765977; Mon, 01 Jun 2026 01:49:25 -0700 (PDT) Received: from [192.168.88.32] ([169.155.232.197]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef34a065esm24482157f8f.5.2026.06.01.01.49.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 01 Jun 2026 01:49:25 -0700 (PDT) Message-ID: <27937ce7-ec1c-4aab-9061-cedcf4f89d12@redhat.com> Date: Mon, 1 Jun 2026 10:49:23 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next 4/9] net: dsa: microchip: remove setup_rgmii_delay() KSZ operation To: "Bastien Curutchet (Schneider Electric)" , Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Russell King Cc: Pascal Eberhard , =?UTF-8?Q?Miqu=C3=A8l_Raynal?= , Thomas Petazzoni , Tristram Ha , netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260526-clean-ksz-3rd-v1-0-5b63e732149a@bootlin.com> <20260526-clean-ksz-3rd-v1-4-5b63e732149a@bootlin.com> From: Paolo Abeni Content-Language: en-US In-Reply-To: <20260526-clean-ksz-3rd-v1-4-5b63e732149a@bootlin.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 5/26/26 11:47 AM, Bastien Curutchet (Schneider Electric) wrote: > setup_rgmii_delay() operation is only used once during the common phylink > MAC configuration. Only the lan937x switch implements this > setup_rgmii_delay(). > > Remove the setup_rgmii_delay operation from ksz_dev_ops. > Implement a lan937x-specific phylink MAC configuration that does this > RGMII delay setup. > Export ksz_set_xmii since it's needed by the lan937x implementation. > > Signed-off-by: Bastien Curutchet (Schneider Electric) > --- > drivers/net/dsa/microchip/ksz_common.c | 6 +----- > drivers/net/dsa/microchip/ksz_common.h | 2 +- > drivers/net/dsa/microchip/lan937x_main.c | 29 +++++++++++++++++++++++++++-- > 3 files changed, 29 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c > index 5fb151fbf4f3..d6511fcebcf2 100644 > --- a/drivers/net/dsa/microchip/ksz_common.c > +++ b/drivers/net/dsa/microchip/ksz_common.c > @@ -3127,8 +3127,7 @@ int ksz_set_mac_eee(struct dsa_switch *ds, int port, > return 0; > } > > -static void ksz_set_xmii(struct ksz_device *dev, int port, > - phy_interface_t interface) > +void ksz_set_xmii(struct ksz_device *dev, int port, phy_interface_t interface) > { > const u8 *bitval = dev->info->xmii_ctrl1; > struct ksz_port *p = &dev->ports[port]; > @@ -3233,9 +3232,6 @@ void ksz_phylink_mac_config(struct phylink_config *config, > } > > ksz_set_xmii(dev, port, state->interface); > - > - if (dev->dev_ops->setup_rgmii_delay) > - dev->dev_ops->setup_rgmii_delay(dev, port); > } > > bool ksz_get_gbit(struct ksz_device *dev, int port) > diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h > index 804912fdd2db..ab08c98ed257 100644 > --- a/drivers/net/dsa/microchip/ksz_common.h > +++ b/drivers/net/dsa/microchip/ksz_common.h > @@ -410,7 +410,6 @@ struct ksz_dev_ops { > u8 data); > void (*freeze_mib)(struct ksz_device *dev, int port, bool freeze); > void (*port_init_cnt)(struct ksz_device *dev, int port); > - void (*setup_rgmii_delay)(struct ksz_device *dev, int port); > int (*tc_cbs_set_cinc)(struct ksz_device *dev, int port, u32 val); > int (*init)(struct ksz_device *dev); > }; > @@ -468,6 +467,7 @@ void ksz_phylink_get_caps(struct dsa_switch *ds, int port, > void ksz_phylink_mac_disable_tx_lpi(struct phylink_config *config); > int ksz_phylink_mac_enable_tx_lpi(struct phylink_config *config, > u32 timer, bool tx_clock_stop); > +void ksz_set_xmii(struct ksz_device *dev, int port, phy_interface_t interface); > void ksz_phylink_mac_config(struct phylink_config *config, > unsigned int mode, > const struct phylink_link_state *state); > diff --git a/drivers/net/dsa/microchip/lan937x_main.c b/drivers/net/dsa/microchip/lan937x_main.c > index 57e289637193..f8f220242f7a 100644 > --- a/drivers/net/dsa/microchip/lan937x_main.c > +++ b/drivers/net/dsa/microchip/lan937x_main.c > @@ -643,6 +643,32 @@ static void lan937x_setup_rgmii_delay(struct ksz_device *dev, int port) > } > } > > +static void lan937x_phylink_mac_config(struct phylink_config *config, > + unsigned int mode, > + const struct phylink_link_state *state) > +{ > + struct dsa_port *dp = dsa_phylink_to_port(config); > + struct ksz_device *dev = dp->ds->priv; > + int port = dp->index; > + > + /* Internal PHYs */ > + if (dev->info->internal_phy[port]) > + return; > + > + /* No need to configure XMII control register when using SGMII. */ > + if (ksz_is_sgmii_port(dev, port)) > + return; > + > + if (phylink_autoneg_inband(mode)) { > + dev_err(dev->dev, "In-band AN not supported!\n"); > + return; > + } > + > + ksz_set_xmii(dev, port, state->interface); > + > + lan937x_setup_rgmii_delay(dev, port); I think you can avoid some code duplication with something alike the following: - factor out of ksz_phylink_mac_config() a __ksz_phylink_mac_config(), helper, with the latter doing all the work and returning true when actually calling ksz_set_xmii() - implement lan937x_phylink_mac_config() on top of __ksz_phylink_mac_config(): if (__ksz_phylink_mac_config()) lan937x_setup_rgmii_delay(dev, port); /P