All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement
@ 2020-04-20 21:51 Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 1/5] net: bcmgenet: Drop ACPI_PTR() to avoid compiler warning Andy Shevchenko
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-04-20 21:51 UTC (permalink / raw)
  To: Doug Berger, Florian Fainelli, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton
  Cc: Andy Shevchenko

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

Andy Shevchenko (5):
  net: bcmgenet: Drop ACPI_PTR() to avoid compiler warning
  net: bcmgenet: Drop useless OF code
  net: bcmgenet: Use devm_clk_get_optional() to get the clocks
  net: bcmgenet: Use get_unligned_beXX() and put_unaligned_beXX()
  net: bcmgenet: Drop too many parentheses in bcmgenet_probe()

 .../net/ethernet/broadcom/genet/bcmgenet.c    | 49 +++++++------------
 1 file changed, 18 insertions(+), 31 deletions(-)

-- 
2.26.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/5] net: bcmgenet: Drop ACPI_PTR() to avoid compiler warning
  2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
@ 2020-04-20 21:51 ` Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 2/5] net: bcmgenet: Drop useless OF code Andy Shevchenko
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-04-20 21:51 UTC (permalink / raw)
  To: Doug Berger, Florian Fainelli, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton
  Cc: Andy Shevchenko

When compiled with CONFIG_ACPI=n, ACPI_PTR() will be no-op, and thus
genet_acpi_match table defined, but not used. Compiler is not happy about
such data. Drop ACPI_PTR() for good.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index d975338bf78d..9f2f0e681656 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3740,7 +3740,7 @@ static struct platform_driver bcmgenet_driver = {
 		.name	= "bcmgenet",
 		.of_match_table = bcmgenet_match,
 		.pm	= &bcmgenet_pm_ops,
-		.acpi_match_table = ACPI_PTR(genet_acpi_match),
+		.acpi_match_table = genet_acpi_match,
 	},
 };
 module_platform_driver(bcmgenet_driver);
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/5] net: bcmgenet: Drop useless OF code
  2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 1/5] net: bcmgenet: Drop ACPI_PTR() to avoid compiler warning Andy Shevchenko
@ 2020-04-20 21:51 ` Andy Shevchenko
  2020-04-20 22:09   ` Florian Fainelli
  2020-04-20 21:51 ` [PATCH v2 3/5] net: bcmgenet: Use devm_clk_get_optional() to get the clocks Andy Shevchenko
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2020-04-20 21:51 UTC (permalink / raw)
  To: Doug Berger, Florian Fainelli, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton
  Cc: Andy Shevchenko

There is nothing which needs a set of OF headers, followed by redundant
OF node ID check. Drop them for good.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 9f2f0e681656..ef275db018f7 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -23,11 +23,6 @@
 #include <linux/dma-mapping.h>
 #include <linux/pm.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 <linux/mii.h>
@@ -3417,8 +3412,6 @@ MODULE_DEVICE_TABLE(of, bcmgenet_match);
 static int bcmgenet_probe(struct platform_device *pdev)
 {
 	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;
 	struct bcmgenet_priv *priv;
 	struct net_device *dev;
@@ -3433,12 +3426,6 @@ static int bcmgenet_probe(struct platform_device *pdev)
 		return -ENOMEM;
 	}
 
-	if (dn) {
-		of_id = of_match_node(bcmgenet_match, dn);
-		if (!of_id)
-			return -EINVAL;
-	}
-
 	priv = netdev_priv(dev);
 	priv->irq0 = platform_get_irq(pdev, 0);
 	if (priv->irq0 < 0) {
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/5] net: bcmgenet: Use devm_clk_get_optional() to get the clocks
  2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 1/5] net: bcmgenet: Drop ACPI_PTR() to avoid compiler warning Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 2/5] net: bcmgenet: Drop useless OF code Andy Shevchenko
@ 2020-04-20 21:51 ` Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 4/5] net: bcmgenet: Use get_unligned_beXX() and put_unaligned_beXX() Andy Shevchenko
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-04-20 21:51 UTC (permalink / raw)
  To: Doug Berger, Florian Fainelli, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton
  Cc: Andy Shevchenko

Conversion to devm_clk_get_optional() makes it explicit that clocks are
optional. This change allows to handle deferred probe in case clocks are
defined, but not yet probed. Due to above changes bail out in error case.

While here, check potential error when enable main clock.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
---
 .../net/ethernet/broadcom/genet/bcmgenet.c    | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index ef275db018f7..86666e9ab3e7 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3487,13 +3487,16 @@ static int bcmgenet_probe(struct platform_device *pdev)
 		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)) {
 		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);
 
@@ -3511,16 +3514,18 @@ static int bcmgenet_probe(struct platform_device *pdev)
 	priv->rx_buf_len = RX_BUF_LENGTH;
 	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)) {
 		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)) {
 		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
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/5] net: bcmgenet: Use get_unligned_beXX() and put_unaligned_beXX()
  2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
                   ` (2 preceding siblings ...)
  2020-04-20 21:51 ` [PATCH v2 3/5] net: bcmgenet: Use devm_clk_get_optional() to get the clocks Andy Shevchenko
@ 2020-04-20 21:51 ` Andy Shevchenko
  2020-04-20 21:51 ` [PATCH v2 5/5] net: bcmgenet: Drop too many parentheses in bcmgenet_probe() Andy Shevchenko
  2020-04-20 23:25 ` [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement David Miller
  5 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2020-04-20 21:51 UTC (permalink / raw)
  To: Doug Berger, Florian Fainelli, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton
  Cc: Andy Shevchenko

It's convenient to use get_unligned_beXX() and put_unaligned_beXX() helpers
to get or set MAC instead of open-coded variants.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 86666e9ab3e7..2c9881032a24 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -2702,9 +2702,8 @@ static void bcmgenet_umac_reset(struct bcmgenet_priv *priv)
 static void bcmgenet_set_hw_addr(struct bcmgenet_priv *priv,
 				 unsigned char *addr)
 {
-	bcmgenet_umac_writel(priv, (addr[0] << 24) | (addr[1] << 16) |
-			(addr[2] << 8) | addr[3], UMAC_MAC0);
-	bcmgenet_umac_writel(priv, (addr[4] << 8) | addr[5], UMAC_MAC1);
+	bcmgenet_umac_writel(priv, get_unaligned_be32(&addr[0]), UMAC_MAC0);
+	bcmgenet_umac_writel(priv, get_unaligned_be16(&addr[4]), UMAC_MAC1);
 }
 
 static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv,
@@ -2713,13 +2712,9 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv,
 	u32 addr_tmp;
 
 	addr_tmp = bcmgenet_umac_readl(priv, UMAC_MAC0);
-	addr[0] = addr_tmp >> 24;
-	addr[1] = (addr_tmp >> 16) & 0xff;
-	addr[2] = (addr_tmp >>	8) & 0xff;
-	addr[3] = addr_tmp & 0xff;
+	put_unaligned_be32(addr_tmp, &addr[0]);
 	addr_tmp = bcmgenet_umac_readl(priv, UMAC_MAC1);
-	addr[4] = (addr_tmp >> 8) & 0xff;
-	addr[5] = addr_tmp & 0xff;
+	put_unaligned_be16(addr_tmp, &addr[4]);
 }
 
 /* Returns a reusable dma control register value */
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 5/5] net: bcmgenet: Drop too many parentheses in bcmgenet_probe()
  2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
                   ` (3 preceding siblings ...)
  2020-04-20 21:51 ` [PATCH v2 4/5] net: bcmgenet: Use get_unligned_beXX() and put_unaligned_beXX() Andy Shevchenko
@ 2020-04-20 21:51 ` Andy Shevchenko
  2020-04-20 22:09   ` Florian Fainelli
  2020-04-20 23:25 ` [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement David Miller
  5 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2020-04-20 21:51 UTC (permalink / raw)
  To: Doug Berger, Florian Fainelli, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton
  Cc: Andy Shevchenko

No need to have parentheses around plain pointer variable or
negation operator. Drop them for good.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 2c9881032a24..20aba79becce 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3529,7 +3529,7 @@ static int bcmgenet_probe(struct platform_device *pdev)
 	if (device_get_phy_mode(&pdev->dev) == PHY_INTERFACE_MODE_INTERNAL)
 		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);
 	else
 		if (!device_get_mac_address(&pdev->dev, dev->dev_addr, ETH_ALEN))
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/5] net: bcmgenet: Drop useless OF code
  2020-04-20 21:51 ` [PATCH v2 2/5] net: bcmgenet: Drop useless OF code Andy Shevchenko
@ 2020-04-20 22:09   ` Florian Fainelli
  0 siblings, 0 replies; 10+ messages in thread
From: Florian Fainelli @ 2020-04-20 22:09 UTC (permalink / raw)
  To: Andy Shevchenko, Doug Berger, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton



On 4/20/2020 2:51 PM, Andy Shevchenko wrote:
> There is nothing which needs a set of OF headers, followed by redundant
> OF node ID check. Drop them for good.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 5/5] net: bcmgenet: Drop too many parentheses in bcmgenet_probe()
  2020-04-20 21:51 ` [PATCH v2 5/5] net: bcmgenet: Drop too many parentheses in bcmgenet_probe() Andy Shevchenko
@ 2020-04-20 22:09   ` Florian Fainelli
  0 siblings, 0 replies; 10+ messages in thread
From: Florian Fainelli @ 2020-04-20 22:09 UTC (permalink / raw)
  To: Andy Shevchenko, Doug Berger, bcm-kernel-feedback-list,
	David S. Miller, netdev, Jeremy Linton



On 4/20/2020 2:51 PM, Andy Shevchenko wrote:
> No need to have parentheses around plain pointer variable or
> negation operator. Drop them for good.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement
  2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
                   ` (4 preceding siblings ...)
  2020-04-20 21:51 ` [PATCH v2 5/5] net: bcmgenet: Drop too many parentheses in bcmgenet_probe() Andy Shevchenko
@ 2020-04-20 23:25 ` David Miller
  2020-04-21 13:14   ` Jeremy Linton
  5 siblings, 1 reply; 10+ messages in thread
From: David Miller @ 2020-04-20 23:25 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: opendmb, f.fainelli, bcm-kernel-feedback-list, netdev, jeremy.linton

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Tue, 21 Apr 2020 00:51:16 +0300

> 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

Series applied to net-next, thanks.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement
  2020-04-20 23:25 ` [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement David Miller
@ 2020-04-21 13:14   ` Jeremy Linton
  0 siblings, 0 replies; 10+ messages in thread
From: Jeremy Linton @ 2020-04-21 13:14 UTC (permalink / raw)
  To: David Miller, andriy.shevchenko
  Cc: opendmb, f.fainelli, bcm-kernel-feedback-list, netdev

On 4/20/20 6:25 PM, David Miller wrote:
> From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Date: Tue, 21 Apr 2020 00:51:16 +0300
> 
>> 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
> 
> Series applied to net-next, thanks.
> 

Well, you guys are two fast for me.. <chuckle> Or rather the couple 
hours it took to build the kernel on the rpi4.

Anyway, the changes looks like fine, and boots fine in ACPI mode.

Its probably to late for this but anyway:

Tested-by: Jeremy Linton <jeremy.linton@arm.com>

Thanks,




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-04-21 13:15 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-20 21:51 [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement Andy Shevchenko
2020-04-20 21:51 ` [PATCH v2 1/5] net: bcmgenet: Drop ACPI_PTR() to avoid compiler warning Andy Shevchenko
2020-04-20 21:51 ` [PATCH v2 2/5] net: bcmgenet: Drop useless OF code Andy Shevchenko
2020-04-20 22:09   ` Florian Fainelli
2020-04-20 21:51 ` [PATCH v2 3/5] net: bcmgenet: Use devm_clk_get_optional() to get the clocks Andy Shevchenko
2020-04-20 21:51 ` [PATCH v2 4/5] net: bcmgenet: Use get_unligned_beXX() and put_unaligned_beXX() Andy Shevchenko
2020-04-20 21:51 ` [PATCH v2 5/5] net: bcmgenet: Drop too many parentheses in bcmgenet_probe() Andy Shevchenko
2020-04-20 22:09   ` Florian Fainelli
2020-04-20 23:25 ` [PATCH v2 0/5] net: bcmgenet: Clean up after ACPI enablement David Miller
2020-04-21 13:14   ` Jeremy Linton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.