From: Ansuel Smith <ansuelsmth@gmail.com> Date: 2021-11-02 17:56:53
Some device set MAC06 exchange in the bootloader. This cause some
problem as we don't support this strange mode and we just set the port6
as the primary CPU port. With MAC06 exchange, PAD0 reg configure port6
instead of port0. Add an extra check and explicitly disable MAC06 exchange
to correctly configure the port PAD config.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
drivers/net/dsa/qca8k.c | 8 ++++++++
drivers/net/dsa/qca8k.h | 1 +
2 files changed, 9 insertions(+)
Some comments here:
Resetting the switch using the sw reg doesn't reset the port PAD
configuration. I was thinking if it would be better to clear all the
pad configuration but considering that the entire reg is set by phylink
mac config, I think it's not necessary as the PAD related to the port will
be reset anyway with the new values. Have a dirty configuration on PAD6
doesn't cause any problem as we have that port disabled and it would be
reset and configured anyway if defined.
@@ -1109,6 +1109,14 @@ qca8k_setup(struct dsa_switch *ds)if(ret)returnret;+/* Make sure MAC06 is disabled */+ret=qca8k_reg_clear(priv,QCA8K_REG_PORT0_PAD_CTRL,+QCA8K_PORT0_PAD_MAC06_EXCHANGE_EN);+if(ret){+dev_err(priv->dev,"failed disabling MAC06 exchange");+returnret;+}+/* Enable CPU Port */ret=qca8k_reg_set(priv,QCA8K_REG_GLOBAL_FW_CTRL0,QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN);
From: Vladimir Oltean <olteanv@gmail.com> Date: 2021-11-02 18:27:02
On Tue, Nov 02, 2021 at 06:56:29PM +0100, Ansuel Smith wrote:
Some device set MAC06 exchange in the bootloader. This cause some
problem as we don't support this strange mode and we just set the port6
as the primary CPU port. With MAC06 exchange, PAD0 reg configure port6
instead of port0. Add an extra check and explicitly disable MAC06 exchange
to correctly configure the port PAD config.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Since net-next has closed, please add
Fixes: 3fcf734aa482 ("net: dsa: qca8k: add support for cpu port 6")
and resend to the "net" tree.
quoted hunk
drivers/net/dsa/qca8k.c | 8 ++++++++
drivers/net/dsa/qca8k.h | 1 +
2 files changed, 9 insertions(+)
Some comments here:
Resetting the switch using the sw reg doesn't reset the port PAD
configuration. I was thinking if it would be better to clear all the
pad configuration but considering that the entire reg is set by phylink
mac config, I think it's not necessary as the PAD related to the port will
be reset anyway with the new values. Have a dirty configuration on PAD6
doesn't cause any problem as we have that port disabled and it would be
reset and configured anyway if defined.
@@ -1109,6 +1109,14 @@ qca8k_setup(struct dsa_switch *ds)if(ret)returnret;+/* Make sure MAC06 is disabled */+ret=qca8k_reg_clear(priv,QCA8K_REG_PORT0_PAD_CTRL,+QCA8K_PORT0_PAD_MAC06_EXCHANGE_EN);+if(ret){+dev_err(priv->dev,"failed disabling MAC06 exchange");+returnret;+}+/* Enable CPU Port */ret=qca8k_reg_set(priv,QCA8K_REG_GLOBAL_FW_CTRL0,QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN);
From: Ansuel Smith <ansuelsmth@gmail.com> Date: 2021-11-02 18:28:57
On Tue, Nov 02, 2021 at 08:26:55PM +0200, Vladimir Oltean wrote:
On Tue, Nov 02, 2021 at 06:56:29PM +0100, Ansuel Smith wrote:
quoted
Some device set MAC06 exchange in the bootloader. This cause some
problem as we don't support this strange mode and we just set the port6
as the primary CPU port. With MAC06 exchange, PAD0 reg configure port6
instead of port0. Add an extra check and explicitly disable MAC06 exchange
to correctly configure the port PAD config.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Since net-next has closed, please add
Fixes: 3fcf734aa482 ("net: dsa: qca8k: add support for cpu port 6")
and resend to the "net" tree.
drivers/net/dsa/qca8k.c | 8 ++++++++
drivers/net/dsa/qca8k.h | 1 +
2 files changed, 9 insertions(+)
Some comments here:
Resetting the switch using the sw reg doesn't reset the port PAD
configuration. I was thinking if it would be better to clear all the
pad configuration but considering that the entire reg is set by phylink
mac config, I think it's not necessary as the PAD related to the port will
be reset anyway with the new values. Have a dirty configuration on PAD6
doesn't cause any problem as we have that port disabled and it would be
reset and configured anyway if defined.
@@ -1109,6 +1109,14 @@ qca8k_setup(struct dsa_switch *ds)if(ret)returnret;+/* Make sure MAC06 is disabled */+ret=qca8k_reg_clear(priv,QCA8K_REG_PORT0_PAD_CTRL,+QCA8K_PORT0_PAD_MAC06_EXCHANGE_EN);+if(ret){+dev_err(priv->dev,"failed disabling MAC06 exchange");+returnret;+}+/* Enable CPU Port */ret=qca8k_reg_set(priv,QCA8K_REG_GLOBAL_FW_CTRL0,QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN);
From: Vladimir Oltean <olteanv@gmail.com> Date: 2021-11-02 18:38:50
On Tue, Nov 02, 2021 at 07:28:50PM +0100, Ansuel Smith wrote:
On Tue, Nov 02, 2021 at 08:26:55PM +0200, Vladimir Oltean wrote:
quoted
On Tue, Nov 02, 2021 at 06:56:29PM +0100, Ansuel Smith wrote:
quoted
Some device set MAC06 exchange in the bootloader. This cause some
problem as we don't support this strange mode and we just set the port6
as the primary CPU port. With MAC06 exchange, PAD0 reg configure port6
instead of port0. Add an extra check and explicitly disable MAC06 exchange
to correctly configure the port PAD config.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Since net-next has closed, please add
Fixes: 3fcf734aa482 ("net: dsa: qca8k: add support for cpu port 6")
and resend to the "net" tree.