From: Florian Fainelli <f.fainelli@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>, David Miller <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH net-next 4/9] net: dsa: Allow configuration of CPU & DSA port speeds/duplex
Date: Sun, 23 Aug 2015 11:38:56 -0700 [thread overview]
Message-ID: <55DA1340.9080604@gmail.com> (raw)
In-Reply-To: <1440323220-20438-5-git-send-email-andrew@lunn.ch>
Le 08/23/15 02:46, Andrew Lunn a écrit :
> By default, DSA and CPU ports are configured to the maximum speed the
> switch supports. However there can be use cases where the peer devices
> port is slower. Allow a fixed-link property to be used with the DSA
> and CPU port in the device tree, and use this information to configure
> the port.
>
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> ---
> net/dsa/dsa.c | 37 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
>
> diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
> index 053eb2b8e682..afff17341b73 100644
> --- a/net/dsa/dsa.c
> +++ b/net/dsa/dsa.c
> @@ -176,6 +176,35 @@ __ATTRIBUTE_GROUPS(dsa_hwmon);
> #endif /* CONFIG_NET_DSA_HWMON */
>
> /* basic switch operations **************************************************/
> +static int dsa_cpu_dsa_setup(struct dsa_switch *ds, struct net_device *master)
> +{
> + struct dsa_chip_data *cd = ds->pd;
> + struct device_node *port_dn;
> + struct phy_device *phydev;
> + int ret, port;
> +
> + for (port = 0; port < DSA_MAX_PORTS; port++) {
> + if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)))
> + continue;
> +
> + port_dn = cd->port_dn[port];
> + if (of_phy_is_fixed_link(port_dn)) {
> + ret = of_phy_register_fixed_link(port_dn);
> + if (ret) {
> + netdev_err(master,
> + "failed to register fixed PHY\n");
> + return ret;
> + }
> + phydev = of_phy_find_device(port_dn);
> + genphy_config_init(phydev);
> + genphy_read_status(phydev);
> + if (ds->drv->adjust_link)
> + ds->drv->adjust_link(ds, port, phydev);
This kind of hack here because what you really need is just the link
parameters, but you cannot obtain such information without first
configuring the PHY up to a certain point in genphy_config_init(), and
then have genphy_read_status() copy these values in your phydev structure.
Maybe we should really consider something like this after all:
https://lkml.org/lkml/2015/8/5/490
Or maybe, we should really introduce this "cpu" network device after all
with a dropping xmit function, such that we get ethtool counters to work
on it, and we can also attach it to a PHY device to configure link
parameters?
--
Florian
next prev parent reply other threads:[~2015-08-23 18:38 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-23 9:46 [PATCH net-next 0/9] DSA port configuration and status Andrew Lunn
2015-08-23 9:46 ` [PATCH net-next 1/9] net: phy: Allow PHY devices to identify themselves as Ethernet switches, etc Andrew Lunn
2015-08-23 9:46 ` [PATCH net-next 2/9] dsa: mv88e6xxx: Allow speed/duplex of port to be configured Andrew Lunn
2015-08-23 18:52 ` Florian Fainelli
2015-08-23 9:46 ` [PATCH net-next 3/9] phy: fixed_phy: Set supported speed in phydev Andrew Lunn
2015-08-23 18:54 ` Florian Fainelli
2015-08-23 9:46 ` [PATCH net-next 4/9] net: dsa: Allow configuration of CPU & DSA port speeds/duplex Andrew Lunn
2015-08-23 18:38 ` Florian Fainelli [this message]
2015-08-23 21:24 ` Andrew Lunn
2015-08-24 17:41 ` Florian Fainelli
2015-08-26 1:45 ` Florian Fainelli
2015-08-23 9:46 ` [PATCH net-next 5/9] net: dsa: Allow DSA and CPU ports to have a phy-mode property Andrew Lunn
2015-08-23 18:44 ` Florian Fainelli
2015-08-23 9:46 ` [PATCH net-next 6/9] dsa: mv88e6xxx: Set the RGMII delay based on phy interface Andrew Lunn
2015-08-23 18:44 ` Florian Fainelli
2015-08-23 21:10 ` Andrew Lunn
2015-08-24 17:01 ` Florian Fainelli
2015-08-23 9:46 ` [PATCH net-next 7/9] dsa: mv88e6xxx: Don't poll forced interfaces for state changes Andrew Lunn
2015-08-23 18:41 ` Florian Fainelli
2015-08-23 9:46 ` [PATCH net-next 8/9] phy: fixed_phy: Add gpio to determine link up/down Andrew Lunn
2015-08-23 18:50 ` Florian Fainelli
2015-08-23 9:47 ` [PATCH net-next 9/9] phy: fixed_phy: Set phy capabilities even when link is down Andrew Lunn
2015-08-23 18:40 ` Florian Fainelli
2015-08-23 21:02 ` Andrew Lunn
2015-08-24 16:32 ` Andrew Lunn
2015-08-23 18:58 ` [PATCH net-next 0/9] DSA port configuration and status Florian Fainelli
2015-08-25 20:43 ` David Miller
2015-08-26 5:39 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55DA1340.9080604@gmail.com \
--to=f.fainelli@gmail.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.