OSDN Git Service

net: dsa: mv88e6xxx: setup global upstream port
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>
Tue, 5 Dec 2017 20:34:11 +0000 (15:34 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Dec 2017 23:01:33 +0000 (18:01 -0500)
Move the setup of the global upstream port within the
mv88e6xxx_setup_upstream_port function.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/chip.c

index 77488b4..e1c0bb2 100644 (file)
@@ -1758,6 +1758,22 @@ static int mv88e6xxx_setup_upstream_port(struct mv88e6xxx_chip *chip, int port)
                        return err;
        }
 
+       if (port == upstream_port) {
+               if (chip->info->ops->set_cpu_port) {
+                       err = chip->info->ops->set_cpu_port(chip,
+                                                           upstream_port);
+                       if (err)
+                               return err;
+               }
+
+               if (chip->info->ops->set_egress_port) {
+                       err = chip->info->ops->set_egress_port(chip,
+                                                              upstream_port);
+                       if (err)
+                               return err;
+               }
+       }
+
        return 0;
 }
 
@@ -1959,21 +1975,8 @@ static int mv88e6xxx_set_ageing_time(struct dsa_switch *ds,
 static int mv88e6xxx_g1_setup(struct mv88e6xxx_chip *chip)
 {
        struct dsa_switch *ds = chip->ds;
-       u32 upstream_port = dsa_upstream_port(ds);
        int err;
 
-       if (chip->info->ops->set_cpu_port) {
-               err = chip->info->ops->set_cpu_port(chip, upstream_port);
-               if (err)
-                       return err;
-       }
-
-       if (chip->info->ops->set_egress_port) {
-               err = chip->info->ops->set_egress_port(chip, upstream_port);
-               if (err)
-                       return err;
-       }
-
        /* Disable remote management, and set the switch's DSA device number. */
        err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_CTL2,
                                 MV88E6XXX_G1_CTL2_MULTIPLE_CASCADE |