ramips: switch to 6.1 kernel
[openwrt/staging/stintel.git] / target / linux / ramips / files / drivers / net / ethernet / ralink / mtk_eth_soc.c
index c741c85f4a5599c8624a15009a2af37e19b59d6d..3748264dadf7719574b784c30de85ea76cc93448 100644 (file)
@@ -152,7 +152,7 @@ static inline void fe_int_enable(u32 mask)
        fe_reg_r32(FE_REG_FE_INT_ENABLE);
 }
 
-static inline void fe_hw_set_macaddr(struct fe_priv *priv, unsigned char *mac)
+static inline void fe_hw_set_macaddr(struct fe_priv *priv, const unsigned char *mac)
 {
        unsigned long flags;
 
@@ -1365,10 +1365,8 @@ static int __init fe_init(struct net_device *dev)
 
        fe_reset_phy(priv);
 
-       of_get_mac_address(priv->dev->of_node, dev->dev_addr);
-
-       /* If the mac address is invalid, use random mac address  */
-       if (!is_valid_ether_addr(dev->dev_addr)) {
+       /* Set the MAC address if it is correct, if not use a random MAC address  */
+       if (of_get_ethdev_address(priv->dev->of_node, dev)) {
                eth_hw_addr_random(dev);
                dev_err(priv->dev, "generated random MAC address %pM\n",
                        dev->dev_addr);
@@ -1603,6 +1601,7 @@ static int fe_probe(struct platform_device *pdev)
                        goto err_free_dev;
                }
                spin_lock_init(&priv->hw_stats->stats_lock);
+               u64_stats_init(&priv->hw_stats->syncp);
        }
 
        sysclk = devm_clk_get(&pdev->dev, NULL);
@@ -1630,7 +1629,6 @@ static int fe_probe(struct platform_device *pdev)
        priv->tx_ring.tx_ring_size = NUM_DMA_DESC;
        priv->rx_ring.rx_ring_size = NUM_DMA_DESC;
        INIT_WORK(&priv->pending_work, fe_pending_work);
-       u64_stats_init(&priv->hw_stats->syncp);
 
        napi_weight = 16;
        if (priv->flags & FE_FLAG_NAPI_WEIGHT) {
@@ -1638,7 +1636,7 @@ static int fe_probe(struct platform_device *pdev)
                priv->tx_ring.tx_ring_size *= 4;
                priv->rx_ring.rx_ring_size *= 4;
        }
-       netif_napi_add(netdev, &priv->rx_napi, fe_poll, napi_weight);
+       netif_napi_add_weight(netdev, &priv->rx_napi, fe_poll, napi_weight);
        fe_set_ethtool_ops(netdev);
 
        err = register_netdev(netdev);