From: Florian Fainelli <f.fainelli@gmail.com>
To: Ansuel Smith <ansuelsmth@gmail.com>, Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [RFC PATCH v7 09/16] net: dsa: qca8k: add tracking state of master port
Date: Tue, 25 Jan 2022 19:37:52 -0800 [thread overview]
Message-ID: <dcb0c749-8535-d7ef-5921-6af479f4a432@gmail.com> (raw)
In-Reply-To: <20220123013337.20945-10-ansuelsmth@gmail.com>
On 1/22/2022 5:33 PM, Ansuel Smith wrote:
> MDIO/MIB Ethernet require the master port and the tagger availabale to
> correctly work. Use the new api master_state_change to track when master
> is operational or not and set a bool in qca8k_priv.
> We cache the first cached master available and we check if other cpu
> port are operational when the cached one goes down.
> This cached master will later be used by mdio read/write and mib request to
> correctly use the working function.
>
> qca8k implementation for MDIO/MIB Ethernet is bad. CPU port0 is the only
> one that answers with the ack packet or sends MIB Ethernet packets. For
> this reason the master_state_change ignore CPU port6 and checkes only
> CPU port0 if it's operational and enables this mode.
s/checkes only/only checks/
>
> Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> ---
> drivers/net/dsa/qca8k.c | 18 ++++++++++++++++++
> drivers/net/dsa/qca8k.h | 1 +
> 2 files changed, 19 insertions(+)
>
> diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
> index 039694518788..4bc5064414b5 100644
> --- a/drivers/net/dsa/qca8k.c
> +++ b/drivers/net/dsa/qca8k.c
> @@ -2383,6 +2383,23 @@ qca8k_port_lag_leave(struct dsa_switch *ds, int port,
> return qca8k_lag_refresh_portmap(ds, port, lag, true);
> }
>
> +static void
> +qca8k_master_change(struct dsa_switch *ds, const struct net_device *master,
> + bool operational)
> +{
> + struct dsa_port *dp = master->dsa_ptr;
> + struct qca8k_priv *priv = ds->priv;
> +
> + /* Ethernet MIB/MDIO is only supported for CPU port 0 */
> + if (dp->index != 0)
We sort of have a define for this: QCA8K_CPU_PORT0 even though that enum
definition might be more accidental than on purpose.
> + return;
> +
> + if (operational)
> + priv->mgmt_master = master;
> + else
> + priv->mgmt_master = NULL;
priv->mgmt_master = operational ? master : NULL;
but this is really because the bike shed is blue. So in any case:
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
--
Florian
next prev parent reply other threads:[~2022-01-26 3:37 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-23 1:33 [RFC PATCH v7 00/16] Add support for qca8k mdio rw in Ethernet packet Ansuel Smith
2022-01-23 1:33 ` [RFC PATCH v7 01/16] net: dsa: provide switch operations for tracking the master state Ansuel Smith
2022-01-26 3:22 ` Florian Fainelli
2022-01-26 21:00 ` Vladimir Oltean
2022-01-23 1:33 ` [RFC PATCH v7 02/16] net: dsa: replay master state events in dsa_tree_{setup,teardown}_master Ansuel Smith
2022-01-26 3:27 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 03/16] net: dsa: tag_qca: convert to FIELD macro Ansuel Smith
2022-01-24 16:00 ` Vladimir Oltean
2022-01-26 3:28 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 04/16] net: dsa: tag_qca: move define to include linux/dsa Ansuel Smith
2022-01-24 15:59 ` Vladimir Oltean
2022-01-26 3:28 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 05/16] net: dsa: tag_qca: enable promisc_on_master flag Ansuel Smith
2022-01-26 3:28 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 06/16] net: dsa: tag_qca: add define for handling mgmt Ethernet packet Ansuel Smith
2022-01-24 16:05 ` Vladimir Oltean
2022-01-24 16:16 ` Ansuel Smith
2022-01-26 3:54 ` Florian Fainelli
2022-01-26 4:01 ` Ansuel Smith
2022-01-26 4:02 ` Florian Fainelli
2022-01-26 4:05 ` Ansuel Smith
2022-01-26 3:57 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 07/16] net: dsa: tag_qca: add define for handling MIB packet Ansuel Smith
2022-01-23 1:33 ` [RFC PATCH v7 08/16] net: dsa: tag_qca: add support for handling mgmt and MIB Ethernet packet Ansuel Smith
2022-01-24 16:08 ` Vladimir Oltean
2022-01-26 3:34 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 09/16] net: dsa: qca8k: add tracking state of master port Ansuel Smith
2022-01-26 3:37 ` Florian Fainelli [this message]
2022-01-23 1:33 ` [RFC PATCH v7 10/16] net: dsa: qca8k: add support for mgmt read/write in Ethernet packet Ansuel Smith
2022-01-24 16:32 ` Vladimir Oltean
2022-01-24 16:48 ` Ansuel Smith
2022-01-25 14:54 ` Vladimir Oltean
2022-01-23 1:33 ` [RFC PATCH v7 11/16] net: dsa: qca8k: add support for mib autocast " Ansuel Smith
2022-01-25 15:12 ` Vladimir Oltean
2022-01-23 1:33 ` [RFC PATCH v7 12/16] net: dsa: qca8k: add support for phy read/write with mgmt Ethernet Ansuel Smith
2022-01-25 15:03 ` Vladimir Oltean
2022-01-25 23:14 ` Ansuel Smith
2022-01-26 1:48 ` Vladimir Oltean
2022-01-26 1:57 ` Ansuel Smith
2022-01-26 22:05 ` Vladimir Oltean
2022-01-23 1:33 ` [RFC PATCH v7 13/16] net: dsa: qca8k: move page cache to driver priv Ansuel Smith
2022-01-26 3:50 ` Florian Fainelli
2022-02-01 21:39 ` Ansuel Smith
2022-01-23 1:33 ` [RFC PATCH v7 14/16] net: dsa: qca8k: cache lo and hi for mdio write Ansuel Smith
2022-01-26 3:42 ` Florian Fainelli
2022-01-23 1:33 ` [RFC PATCH v7 15/16] net: da: qca8k: add support for larger read/write size with mgmt Ethernet Ansuel Smith
2022-01-26 3:48 ` Florian Fainelli
2022-01-26 3:57 ` Ansuel Smith
2022-01-23 1:33 ` [RFC PATCH v7 16/16] net: dsa: qca8k: introduce qca8k_bulk_read/write function Ansuel Smith
2022-01-26 3:45 ` Florian Fainelli
2022-01-26 3:53 ` Ansuel Smith
2022-01-30 13:59 ` [RFC PATCH v7 00/16] Add support for qca8k mdio rw in Ethernet packet Ansuel Smith
2022-01-30 17:07 ` Florian Fainelli
2022-02-03 17:59 ` Ansuel Smith
2022-02-03 18:21 ` Vladimir Oltean
2022-02-03 20:10 ` Jakub Kicinski
2022-02-03 20:31 ` Ansuel Smith
2022-02-03 21:25 ` Vladimir Oltean
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=dcb0c749-8535-d7ef-5921-6af479f4a432@gmail.com \
--to=f.fainelli@gmail.com \
--cc=andrew@lunn.ch \
--cc=ansuelsmth@gmail.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=vivien.didelot@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).