net: dsa: qca8k: Use up to 7 ports for all operations
The QCA8K family supports up to 7 ports. So use the existing QCA8K_NUM_PORTS define to allocate the switch structure and limit all operations with the switch ports. This was not an issue until commit0394a63acf
("net: dsa: enable and disable all ports") disabled all unused ports. Since the unused ports 7-11 are outside of the correct register range on this switch some registers were rewritten with invalid content. Fixes:6b93fb4648
("net-next: dsa: add new driver for qca8xxx family") Fixes:a0c02161ec
("net: dsa: variable number of ports") Fixes:0394a63acf
("net: dsa: enable and disable all ports") Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
02dc96ef6c
commit
7ae6d93c8f
|
@ -705,7 +705,7 @@ qca8k_setup(struct dsa_switch *ds)
|
|||
BIT(0) << QCA8K_GLOBAL_FW_CTRL1_UC_DP_S);
|
||||
|
||||
/* Setup connection between CPU port & user ports */
|
||||
for (i = 0; i < DSA_MAX_PORTS; i++) {
|
||||
for (i = 0; i < QCA8K_NUM_PORTS; i++) {
|
||||
/* CPU port gets connected to all user ports of the switch */
|
||||
if (dsa_is_cpu_port(ds, i)) {
|
||||
qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(QCA8K_CPU_PORT),
|
||||
|
@ -1077,7 +1077,7 @@ qca8k_sw_probe(struct mdio_device *mdiodev)
|
|||
if (id != QCA8K_ID_QCA8337)
|
||||
return -ENODEV;
|
||||
|
||||
priv->ds = dsa_switch_alloc(&mdiodev->dev, DSA_MAX_PORTS);
|
||||
priv->ds = dsa_switch_alloc(&mdiodev->dev, QCA8K_NUM_PORTS);
|
||||
if (!priv->ds)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
Loading…
Reference in New Issue