#include "ksz8795_reg.h"
 #include "ksz8.h"
 
-static bool ksz_is_ksz88x3(struct ksz_device *dev)
-{
-       return dev->chip_id == 0x8830;
-}
-
 static void ksz_cfg(struct ksz_device *dev, u32 addr, u8 bits, bool set)
 {
        regmap_update_bits(dev->regmap[0], addr, bits, set ? bits : 0);
                         port);
                p->interface = dev->compat_interface;
        }
-
-       ksz_set_xmii(dev, port, p->interface);
 }
 
 void ksz8_port_setup(struct ksz_device *dev, int port, bool cpu_port)
 
 
 void ksz9477_port_setup(struct ksz_device *dev, int port, bool cpu_port)
 {
-       struct ksz_port *p = &dev->ports[port];
        struct dsa_switch *ds = dev->ds;
        u16 data16;
        u8 member;
                ksz_port_cfg(dev, port, REG_PORT_CTRL_0,
                             PORT_FORCE_TX_FLOW_CTRL | PORT_FORCE_RX_FLOW_CTRL,
                             true);
-
-               /* configure MAC to 1G & RGMII mode */
-               ksz_set_xmii(dev, port, p->interface);
        }
 
        if (cpu_port)
 
        .mirror_add = ksz9477_port_mirror_add,
        .mirror_del = ksz9477_port_mirror_del,
        .get_caps = lan937x_phylink_get_caps,
-       .phylink_mac_config = lan937x_phylink_mac_config,
        .setup_rgmii_delay = lan937x_setup_rgmii_delay,
        .fdb_dump = ksz9477_fdb_dump,
        .fdb_add = ksz9477_fdb_add,
        return dev->dev_ops->max_mtu(dev, port);
 }
 
-void ksz_set_xmii(struct ksz_device *dev, int port, phy_interface_t interface)
+static void ksz_set_xmii(struct ksz_device *dev, int port,
+                        phy_interface_t interface)
 {
        const u8 *bitval = dev->info->xmii_ctrl1;
        struct ksz_port *p = &dev->ports[port];
 {
        struct ksz_device *dev = ds->priv;
 
+       if (ksz_is_ksz88x3(dev))
+               return;
+
+       /* Internal PHYs */
+       if (dev->info->internal_phy[port])
+               return;
+
+       if (phylink_autoneg_inband(mode)) {
+               dev_err(dev->dev, "In-band AN not supported!\n");
+               return;
+       }
+
+       ksz_set_xmii(dev, port, state->interface);
+
        if (dev->dev_ops->phylink_mac_config)
                dev->dev_ops->phylink_mac_config(dev, port, mode, state);
 
 
 void ksz_r_mib_stats64(struct ksz_device *dev, int port);
 void ksz_port_stp_state_set(struct dsa_switch *ds, int port, u8 state);
 bool ksz_get_gbit(struct ksz_device *dev, int port);
-void ksz_set_xmii(struct ksz_device *dev, int port, phy_interface_t interface);
 phy_interface_t ksz_get_xmii(struct ksz_device *dev, int port, bool gbit);
 extern const struct ksz_chip_data ksz_switch_chips[];
 
        mutex_unlock(mtx);
 }
 
+static inline bool ksz_is_ksz88x3(struct ksz_device *dev)
+{
+       return dev->chip_id == KSZ8830_CHIP_ID;
+}
+
 static inline int is_lan937x(struct ksz_device *dev)
 {
        return dev->chip_id == LAN9370_CHIP_ID ||
 
 int lan937x_change_mtu(struct ksz_device *dev, int port, int new_mtu);
 void lan937x_phylink_get_caps(struct ksz_device *dev, int port,
                              struct phylink_config *config);
-void lan937x_phylink_mac_config(struct ksz_device *dev, int port,
-                               unsigned int mode,
-                               const struct phylink_link_state *state);
 void lan937x_setup_rgmii_delay(struct ksz_device *dev, int port);
 #endif
 
        }
 }
 
-void lan937x_phylink_mac_config(struct ksz_device *dev, int port,
-                               unsigned int mode,
-                               const struct phylink_link_state *state)
-{
-       /* Internal PHYs */
-       if (dev->info->internal_phy[port])
-               return;
-
-       if (phylink_autoneg_inband(mode)) {
-               dev_err(dev->dev, "In-band AN not supported!\n");
-               return;
-       }
-
-       ksz_set_xmii(dev, port, state->interface);
-}
-
 int lan937x_setup(struct dsa_switch *ds)
 {
        struct ksz_device *dev = ds->priv;