Commit bd1266d3 authored by David S. Miller's avatar David S. Miller

Merge branch 'net-bcmgenet-Clean-up-after-ACPI-enablement'

Andy Shevchenko says:

====================
net: bcmgenet: Clean up after ACPI enablement

ACPI enablement series had missed some clean ups that would have been done
at the same time. Here are these bits.

In v2:
- return dev_dbg() calls to avoid spamming logs when probe is deferred (Florian)
- added Ack (Florian)
- combined two, earlier sent, series together
- added couple more patches
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 80ad41f2 7d3cca75
...@@ -23,11 +23,6 @@ ...@@ -23,11 +23,6 @@
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/pm.h> #include <linux/pm.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/of_net.h>
#include <linux/of_platform.h>
#include <net/arp.h> #include <net/arp.h>
#include <linux/mii.h> #include <linux/mii.h>
...@@ -2707,9 +2702,8 @@ static void bcmgenet_umac_reset(struct bcmgenet_priv *priv) ...@@ -2707,9 +2702,8 @@ static void bcmgenet_umac_reset(struct bcmgenet_priv *priv)
static void bcmgenet_set_hw_addr(struct bcmgenet_priv *priv, static void bcmgenet_set_hw_addr(struct bcmgenet_priv *priv,
unsigned char *addr) unsigned char *addr)
{ {
bcmgenet_umac_writel(priv, (addr[0] << 24) | (addr[1] << 16) | bcmgenet_umac_writel(priv, get_unaligned_be32(&addr[0]), UMAC_MAC0);
(addr[2] << 8) | addr[3], UMAC_MAC0); bcmgenet_umac_writel(priv, get_unaligned_be16(&addr[4]), UMAC_MAC1);
bcmgenet_umac_writel(priv, (addr[4] << 8) | addr[5], UMAC_MAC1);
} }
static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv,
...@@ -2718,13 +2712,9 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, ...@@ -2718,13 +2712,9 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv,
u32 addr_tmp; u32 addr_tmp;
addr_tmp = bcmgenet_umac_readl(priv, UMAC_MAC0); addr_tmp = bcmgenet_umac_readl(priv, UMAC_MAC0);
addr[0] = addr_tmp >> 24; put_unaligned_be32(addr_tmp, &addr[0]);
addr[1] = (addr_tmp >> 16) & 0xff;
addr[2] = (addr_tmp >> 8) & 0xff;
addr[3] = addr_tmp & 0xff;
addr_tmp = bcmgenet_umac_readl(priv, UMAC_MAC1); addr_tmp = bcmgenet_umac_readl(priv, UMAC_MAC1);
addr[4] = (addr_tmp >> 8) & 0xff; put_unaligned_be16(addr_tmp, &addr[4]);
addr[5] = addr_tmp & 0xff;
} }
/* Returns a reusable dma control register value */ /* Returns a reusable dma control register value */
...@@ -3417,8 +3407,6 @@ MODULE_DEVICE_TABLE(of, bcmgenet_match); ...@@ -3417,8 +3407,6 @@ MODULE_DEVICE_TABLE(of, bcmgenet_match);
static int bcmgenet_probe(struct platform_device *pdev) static int bcmgenet_probe(struct platform_device *pdev)
{ {
struct bcmgenet_platform_data *pd = pdev->dev.platform_data; struct bcmgenet_platform_data *pd = pdev->dev.platform_data;
struct device_node *dn = pdev->dev.of_node;
const struct of_device_id *of_id = NULL;
const struct bcmgenet_plat_data *pdata; const struct bcmgenet_plat_data *pdata;
struct bcmgenet_priv *priv; struct bcmgenet_priv *priv;
struct net_device *dev; struct net_device *dev;
...@@ -3433,12 +3421,6 @@ static int bcmgenet_probe(struct platform_device *pdev) ...@@ -3433,12 +3421,6 @@ static int bcmgenet_probe(struct platform_device *pdev)
return -ENOMEM; return -ENOMEM;
} }
if (dn) {
of_id = of_match_node(bcmgenet_match, dn);
if (!of_id)
return -EINVAL;
}
priv = netdev_priv(dev); priv = netdev_priv(dev);
priv->irq0 = platform_get_irq(pdev, 0); priv->irq0 = platform_get_irq(pdev, 0);
if (priv->irq0 < 0) { if (priv->irq0 < 0) {
...@@ -3500,13 +3482,16 @@ static int bcmgenet_probe(struct platform_device *pdev) ...@@ -3500,13 +3482,16 @@ static int bcmgenet_probe(struct platform_device *pdev)
priv->dma_max_burst_length = DMA_MAX_BURST_LENGTH; priv->dma_max_burst_length = DMA_MAX_BURST_LENGTH;
} }
priv->clk = devm_clk_get(&priv->pdev->dev, "enet"); priv->clk = devm_clk_get_optional(&priv->pdev->dev, "enet");
if (IS_ERR(priv->clk)) { if (IS_ERR(priv->clk)) {
dev_dbg(&priv->pdev->dev, "failed to get enet clock\n"); dev_dbg(&priv->pdev->dev, "failed to get enet clock\n");
priv->clk = NULL; err = PTR_ERR(priv->clk);
goto err;
} }
clk_prepare_enable(priv->clk); err = clk_prepare_enable(priv->clk);
if (err)
goto err;
bcmgenet_set_hw_params(priv); bcmgenet_set_hw_params(priv);
...@@ -3524,16 +3509,18 @@ static int bcmgenet_probe(struct platform_device *pdev) ...@@ -3524,16 +3509,18 @@ static int bcmgenet_probe(struct platform_device *pdev)
priv->rx_buf_len = RX_BUF_LENGTH; priv->rx_buf_len = RX_BUF_LENGTH;
INIT_WORK(&priv->bcmgenet_irq_work, bcmgenet_irq_task); INIT_WORK(&priv->bcmgenet_irq_work, bcmgenet_irq_task);
priv->clk_wol = devm_clk_get(&priv->pdev->dev, "enet-wol"); priv->clk_wol = devm_clk_get_optional(&priv->pdev->dev, "enet-wol");
if (IS_ERR(priv->clk_wol)) { if (IS_ERR(priv->clk_wol)) {
dev_dbg(&priv->pdev->dev, "failed to get enet-wol clock\n"); dev_dbg(&priv->pdev->dev, "failed to get enet-wol clock\n");
priv->clk_wol = NULL; err = PTR_ERR(priv->clk_wol);
goto err;
} }
priv->clk_eee = devm_clk_get(&priv->pdev->dev, "enet-eee"); priv->clk_eee = devm_clk_get_optional(&priv->pdev->dev, "enet-eee");
if (IS_ERR(priv->clk_eee)) { if (IS_ERR(priv->clk_eee)) {
dev_dbg(&priv->pdev->dev, "failed to get enet-eee clock\n"); dev_dbg(&priv->pdev->dev, "failed to get enet-eee clock\n");
priv->clk_eee = NULL; err = PTR_ERR(priv->clk_eee);
goto err;
} }
/* If this is an internal GPHY, power it on now, before UniMAC is /* If this is an internal GPHY, power it on now, before UniMAC is
...@@ -3542,7 +3529,7 @@ static int bcmgenet_probe(struct platform_device *pdev) ...@@ -3542,7 +3529,7 @@ static int bcmgenet_probe(struct platform_device *pdev)
if (device_get_phy_mode(&pdev->dev) == PHY_INTERFACE_MODE_INTERNAL) if (device_get_phy_mode(&pdev->dev) == PHY_INTERFACE_MODE_INTERNAL)
bcmgenet_power_up(priv, GENET_POWER_PASSIVE); bcmgenet_power_up(priv, GENET_POWER_PASSIVE);
if ((pd) && (!IS_ERR_OR_NULL(pd->mac_address))) if (pd && !IS_ERR_OR_NULL(pd->mac_address))
ether_addr_copy(dev->dev_addr, pd->mac_address); ether_addr_copy(dev->dev_addr, pd->mac_address);
else else
if (!device_get_mac_address(&pdev->dev, dev->dev_addr, ETH_ALEN)) if (!device_get_mac_address(&pdev->dev, dev->dev_addr, ETH_ALEN))
...@@ -3740,7 +3727,7 @@ static struct platform_driver bcmgenet_driver = { ...@@ -3740,7 +3727,7 @@ static struct platform_driver bcmgenet_driver = {
.name = "bcmgenet", .name = "bcmgenet",
.of_match_table = bcmgenet_match, .of_match_table = bcmgenet_match,
.pm = &bcmgenet_pm_ops, .pm = &bcmgenet_pm_ops,
.acpi_match_table = ACPI_PTR(genet_acpi_match), .acpi_match_table = genet_acpi_match,
}, },
}; };
module_platform_driver(bcmgenet_driver); module_platform_driver(bcmgenet_driver);
......
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