|
@@ -3089,6 +3089,31 @@ static int cpsw_probe(struct platform_device *pdev)
|
|
|
cpsw->quirk_irq = true;
|
|
|
}
|
|
|
|
|
|
+ ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
|
|
|
+
|
|
|
+ ndev->netdev_ops = &cpsw_netdev_ops;
|
|
|
+ ndev->ethtool_ops = &cpsw_ethtool_ops;
|
|
|
+ netif_napi_add(ndev, &cpsw->napi_rx, cpsw_rx_poll, CPSW_POLL_WEIGHT);
|
|
|
+ netif_tx_napi_add(ndev, &cpsw->napi_tx, cpsw_tx_poll, CPSW_POLL_WEIGHT);
|
|
|
+ cpsw_split_res(ndev);
|
|
|
+
|
|
|
+ /* register the network device */
|
|
|
+ SET_NETDEV_DEV(ndev, &pdev->dev);
|
|
|
+ ret = register_netdev(ndev);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(priv->dev, "error registering net device\n");
|
|
|
+ ret = -ENODEV;
|
|
|
+ goto clean_ale_ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cpsw->data.dual_emac) {
|
|
|
+ ret = cpsw_probe_dual_emac(priv);
|
|
|
+ if (ret) {
|
|
|
+ cpsw_err(priv, probe, "error probe slave 2 emac interface\n");
|
|
|
+ goto clean_unregister_netdev_ret;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/* Grab RX and TX IRQs. Note that we also have RX_THRESHOLD and
|
|
|
* MISC IRQs which are always kept disabled with this driver so
|
|
|
* we will not request them.
|
|
@@ -3127,33 +3152,9 @@ static int cpsw_probe(struct platform_device *pdev)
|
|
|
goto clean_ale_ret;
|
|
|
}
|
|
|
|
|
|
- ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
|
|
|
-
|
|
|
- ndev->netdev_ops = &cpsw_netdev_ops;
|
|
|
- ndev->ethtool_ops = &cpsw_ethtool_ops;
|
|
|
- netif_napi_add(ndev, &cpsw->napi_rx, cpsw_rx_poll, CPSW_POLL_WEIGHT);
|
|
|
- netif_tx_napi_add(ndev, &cpsw->napi_tx, cpsw_tx_poll, CPSW_POLL_WEIGHT);
|
|
|
- cpsw_split_res(ndev);
|
|
|
-
|
|
|
- /* register the network device */
|
|
|
- SET_NETDEV_DEV(ndev, &pdev->dev);
|
|
|
- ret = register_netdev(ndev);
|
|
|
- if (ret) {
|
|
|
- dev_err(priv->dev, "error registering net device\n");
|
|
|
- ret = -ENODEV;
|
|
|
- goto clean_ale_ret;
|
|
|
- }
|
|
|
-
|
|
|
cpsw_notice(priv, probe,
|
|
|
"initialized device (regs %pa, irq %d, pool size %d)\n",
|
|
|
&ss_res->start, ndev->irq, dma_params.descs_pool_size);
|
|
|
- if (cpsw->data.dual_emac) {
|
|
|
- ret = cpsw_probe_dual_emac(priv);
|
|
|
- if (ret) {
|
|
|
- cpsw_err(priv, probe, "error probe slave 2 emac interface\n");
|
|
|
- goto clean_unregister_netdev_ret;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
pm_runtime_put(&pdev->dev);
|
|
|
|