#define NEXT_TX_DESP_IDX(X) (((X) + 1) & (ring->tx_ring_size - 1))
#define NEXT_RX_DESP_IDX(X) (((X) + 1) & (ring->rx_ring_size - 1))
-#define SYSC_REG_RSTCTRL 0x34
-
static int fe_msg_level = -1;
module_param_named(msg_level, fe_msg_level, int, 0);
MODULE_PARM_DESC(msg_level, "Message level (-1=defaults,0=none,...,16=all)");
spin_unlock(ð->page_lock);
}
-void fe_reset(u32 reset_bits)
-{
- u32 t;
-
- t = rt_sysc_r32(SYSC_REG_RSTCTRL);
- t |= reset_bits;
- rt_sysc_w32(t, SYSC_REG_RSTCTRL);
- usleep_range(10, 20);
-
- t &= ~reset_bits;
- rt_sysc_w32(t, SYSC_REG_RSTCTRL);
- usleep_range(10, 20);
-}
-
static void fe_reset_fe(struct fe_priv *priv)
{
if (!priv->resets)
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;
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);
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);
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) {
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);