return ksz_irq_common_setup(dev, pirq);
 }
 
+static int ksz_parse_drive_strength(struct ksz_device *dev);
+
 static int ksz_setup(struct dsa_switch *ds)
 {
        struct ksz_device *dev = ds->priv;
                return ret;
        }
 
+       ret = ksz_parse_drive_strength(dev);
+       if (ret)
+               return ret;
+
        /* set broadcast storm protection 10% rate */
        regmap_update_bits(ksz_regmap_16(dev), regs[S_BROADCAST_CTRL],
                           BROADCAST_STORM_RATE,
        for (port_num = 0; port_num < dev->info->port_cnt; ++port_num)
                dev->ports[port_num].interface = PHY_INTERFACE_MODE_NA;
        if (dev->dev->of_node) {
-               ret = ksz_parse_drive_strength(dev);
-               if (ret)
-                       return ret;
-
                ret = of_get_phy_mode(dev->dev->of_node, &interface);
                if (ret == 0)
                        dev->compat_interface = interface;