Commit 9672850b authored by Ezequiel Garcia's avatar Ezequiel Garcia Committed by David S. Miller

net: mvneta: Clean-up mvneta_init()

This commit cleans-up mvneta_init(), which initializes the hardware
and allocates the rx/qx queues. The queue allocation is simplified
by using devm_kcalloc instead of kzalloc. The unused phy_addr parameter
is removed. While here, the 'hal' references in the comments are removed.
This commit makes no functionality change.
Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a92dbd96
...@@ -2133,7 +2133,7 @@ static void mvneta_tx_reset(struct mvneta_port *pp) ...@@ -2133,7 +2133,7 @@ static void mvneta_tx_reset(struct mvneta_port *pp)
{ {
int queue; int queue;
/* free the skb's in the hal tx ring */ /* free the skb's in the tx ring */
for (queue = 0; queue < txq_number; queue++) for (queue = 0; queue < txq_number; queue++)
mvneta_txq_done_force(pp, &pp->txqs[queue]); mvneta_txq_done_force(pp, &pp->txqs[queue]);
...@@ -2788,7 +2788,7 @@ const struct ethtool_ops mvneta_eth_tool_ops = { ...@@ -2788,7 +2788,7 @@ const struct ethtool_ops mvneta_eth_tool_ops = {
}; };
/* Initialize hw */ /* Initialize hw */
static int mvneta_init(struct mvneta_port *pp, int phy_addr) static int mvneta_init(struct device *dev, struct mvneta_port *pp)
{ {
int queue; int queue;
...@@ -2798,8 +2798,8 @@ static int mvneta_init(struct mvneta_port *pp, int phy_addr) ...@@ -2798,8 +2798,8 @@ static int mvneta_init(struct mvneta_port *pp, int phy_addr)
/* Set port default values */ /* Set port default values */
mvneta_defaults_set(pp); mvneta_defaults_set(pp);
pp->txqs = kzalloc(txq_number * sizeof(struct mvneta_tx_queue), pp->txqs = devm_kcalloc(dev, txq_number, sizeof(struct mvneta_tx_queue),
GFP_KERNEL); GFP_KERNEL);
if (!pp->txqs) if (!pp->txqs)
return -ENOMEM; return -ENOMEM;
...@@ -2811,12 +2811,10 @@ static int mvneta_init(struct mvneta_port *pp, int phy_addr) ...@@ -2811,12 +2811,10 @@ static int mvneta_init(struct mvneta_port *pp, int phy_addr)
txq->done_pkts_coal = MVNETA_TXDONE_COAL_PKTS; txq->done_pkts_coal = MVNETA_TXDONE_COAL_PKTS;
} }
pp->rxqs = kzalloc(rxq_number * sizeof(struct mvneta_rx_queue), pp->rxqs = devm_kcalloc(dev, rxq_number, sizeof(struct mvneta_rx_queue),
GFP_KERNEL); GFP_KERNEL);
if (!pp->rxqs) { if (!pp->rxqs)
kfree(pp->txqs);
return -ENOMEM; return -ENOMEM;
}
/* Create Rx descriptor rings */ /* Create Rx descriptor rings */
for (queue = 0; queue < rxq_number; queue++) { for (queue = 0; queue < rxq_number; queue++) {
...@@ -2830,12 +2828,6 @@ static int mvneta_init(struct mvneta_port *pp, int phy_addr) ...@@ -2830,12 +2828,6 @@ static int mvneta_init(struct mvneta_port *pp, int phy_addr)
return 0; return 0;
} }
static void mvneta_deinit(struct mvneta_port *pp)
{
kfree(pp->txqs);
kfree(pp->rxqs);
}
/* platform glue : initialize decoding windows */ /* platform glue : initialize decoding windows */
static void mvneta_conf_mbus_windows(struct mvneta_port *pp, static void mvneta_conf_mbus_windows(struct mvneta_port *pp,
const struct mbus_dram_target_info *dram) const struct mbus_dram_target_info *dram)
...@@ -2918,7 +2910,6 @@ static int mvneta_probe(struct platform_device *pdev) ...@@ -2918,7 +2910,6 @@ static int mvneta_probe(struct platform_device *pdev)
struct resource *res; struct resource *res;
struct device_node *dn = pdev->dev.of_node; struct device_node *dn = pdev->dev.of_node;
struct device_node *phy_node; struct device_node *phy_node;
u32 phy_addr;
struct mvneta_port *pp; struct mvneta_port *pp;
struct net_device *dev; struct net_device *dev;
const char *dt_mac_addr; const char *dt_mac_addr;
...@@ -3027,16 +3018,14 @@ static int mvneta_probe(struct platform_device *pdev) ...@@ -3027,16 +3018,14 @@ static int mvneta_probe(struct platform_device *pdev)
pp->dev = dev; pp->dev = dev;
SET_NETDEV_DEV(dev, &pdev->dev); SET_NETDEV_DEV(dev, &pdev->dev);
err = mvneta_init(pp, phy_addr); err = mvneta_init(&pdev->dev, pp);
if (err < 0) { if (err < 0)
dev_err(&pdev->dev, "can't init eth hal\n");
goto err_free_stats; goto err_free_stats;
}
err = mvneta_port_power_up(pp, phy_mode); err = mvneta_port_power_up(pp, phy_mode);
if (err < 0) { if (err < 0) {
dev_err(&pdev->dev, "can't power up port\n"); dev_err(&pdev->dev, "can't power up port\n");
goto err_deinit; goto err_free_stats;
} }
dram_target_info = mv_mbus_dram_info(); dram_target_info = mv_mbus_dram_info();
...@@ -3053,7 +3042,7 @@ static int mvneta_probe(struct platform_device *pdev) ...@@ -3053,7 +3042,7 @@ static int mvneta_probe(struct platform_device *pdev)
err = register_netdev(dev); err = register_netdev(dev);
if (err < 0) { if (err < 0) {
dev_err(&pdev->dev, "failed to register\n"); dev_err(&pdev->dev, "failed to register\n");
goto err_deinit; goto err_free_stats;
} }
netdev_info(dev, "Using %s mac address %pM\n", mac_from, netdev_info(dev, "Using %s mac address %pM\n", mac_from,
...@@ -3063,8 +3052,6 @@ static int mvneta_probe(struct platform_device *pdev) ...@@ -3063,8 +3052,6 @@ static int mvneta_probe(struct platform_device *pdev)
return 0; return 0;
err_deinit:
mvneta_deinit(pp);
err_free_stats: err_free_stats:
free_percpu(pp->stats); free_percpu(pp->stats);
err_clk: err_clk:
...@@ -3083,7 +3070,6 @@ static int mvneta_remove(struct platform_device *pdev) ...@@ -3083,7 +3070,6 @@ static int mvneta_remove(struct platform_device *pdev)
struct mvneta_port *pp = netdev_priv(dev); struct mvneta_port *pp = netdev_priv(dev);
unregister_netdev(dev); unregister_netdev(dev);
mvneta_deinit(pp);
clk_disable_unprepare(pp->clk); clk_disable_unprepare(pp->clk);
free_percpu(pp->stats); free_percpu(pp->stats);
irq_dispose_mapping(dev->irq); irq_dispose_mapping(dev->irq);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment