return phy_mii_ioctl(dev->phydev, ifr, cmd);
 }
 
+static int ocelot_change_mtu(struct net_device *dev, int new_mtu)
+{
+       struct ocelot_port_private *priv = netdev_priv(dev);
+       struct ocelot_port *ocelot_port = &priv->port;
+       struct ocelot *ocelot = ocelot_port->ocelot;
+
+       ocelot_port_set_maxlen(ocelot, priv->chip_port, new_mtu);
+       WRITE_ONCE(dev->mtu, new_mtu);
+
+       return 0;
+}
+
 static const struct net_device_ops ocelot_port_netdev_ops = {
        .ndo_open                       = ocelot_port_open,
        .ndo_stop                       = ocelot_port_stop,
        .ndo_start_xmit                 = ocelot_port_xmit,
+       .ndo_change_mtu                 = ocelot_change_mtu,
        .ndo_set_rx_mode                = ocelot_set_rx_mode,
        .ndo_set_mac_address            = ocelot_port_set_mac_address,
        .ndo_get_stats64                = ocelot_get_stats64,
 
        dev->netdev_ops = &ocelot_port_netdev_ops;
        dev->ethtool_ops = &ocelot_ethtool_ops;
+       dev->max_mtu = OCELOT_JUMBO_MTU;
 
        dev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXFCS |
                NETIF_F_HW_TC;