All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net 0/3] net: bcmgenet: misc fixes
@ 2014-06-26 17:26 Florian Fainelli
  2014-06-26 17:26 ` [PATCH net 1/3] net: bcmgenet: disable clock before register_netdev Florian Fainelli
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Florian Fainelli @ 2014-06-26 17:26 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

Hi David,

This patch set contains 3 smal fixes targeted at the 'net' tree.

Thanks!

Florian Fainelli (3):
  net: bcmgenet: disable clock before register_netdev
  net: bcmgenet: start with carrier off
  net: bcmgenet: do not set packet length for RX buffers

 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

-- 
1.9.1

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

* [PATCH net 1/3] net: bcmgenet: disable clock before register_netdev
  2014-06-26 17:26 [PATCH net 0/3] net: bcmgenet: misc fixes Florian Fainelli
@ 2014-06-26 17:26 ` Florian Fainelli
  2014-06-26 17:26 ` [PATCH net 2/3] net: bcmgenet: start with carrier off Florian Fainelli
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Florian Fainelli @ 2014-06-26 17:26 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

As soon as register_netdev() is called, the network device notifiers are
running which means that other parts of the kernel, or user-space
programs can call the network device ndo_open() callback and use the
interface.

Disable the Ethernet device clock before we register the network device
such that we do not create the following situation:

CPU0				CPU1
register_netdev()
				bcmgenet_open()
				clk_prepare_enable()
clk_disable_unprepare()

and leave the hardware block gated off, while we think it should be
gated on.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 5ba1cfbd60da..d17953cc5f49 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -2535,14 +2535,14 @@ static int bcmgenet_probe(struct platform_device *pdev)
 	netif_set_real_num_tx_queues(priv->dev, priv->hw_params->tx_queues + 1);
 	netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
 
-	err = register_netdev(dev);
-	if (err)
-		goto err_clk_disable;
-
 	/* Turn off the main clock, WOL clock is handled separately */
 	if (!IS_ERR(priv->clk))
 		clk_disable_unprepare(priv->clk);
 
+	err = register_netdev(dev);
+	if (err)
+		goto err;
+
 	return err;
 
 err_clk_disable:
-- 
1.9.1

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

* [PATCH net 2/3] net: bcmgenet: start with carrier off
  2014-06-26 17:26 [PATCH net 0/3] net: bcmgenet: misc fixes Florian Fainelli
  2014-06-26 17:26 ` [PATCH net 1/3] net: bcmgenet: disable clock before register_netdev Florian Fainelli
@ 2014-06-26 17:26 ` Florian Fainelli
  2014-06-26 17:26 ` [PATCH net 3/3] net: bcmgenet: do not set packet length for RX buffers Florian Fainelli
  2014-07-02  0:25 ` [PATCH net 0/3] net: bcmgenet: misc fixes David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Florian Fainelli @ 2014-06-26 17:26 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

We use the PHY library which will determine the link state for us, make
sure we start with a carrier off until libphy has completed the link
training.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index d17953cc5f49..e51e462bc8fd 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -2535,6 +2535,9 @@ static int bcmgenet_probe(struct platform_device *pdev)
 	netif_set_real_num_tx_queues(priv->dev, priv->hw_params->tx_queues + 1);
 	netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
 
+	/* libphy will determine the link state */
+	netif_carrier_off(dev);
+
 	/* Turn off the main clock, WOL clock is handled separately */
 	if (!IS_ERR(priv->clk))
 		clk_disable_unprepare(priv->clk);
-- 
1.9.1

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

* [PATCH net 3/3] net: bcmgenet: do not set packet length for RX buffers
  2014-06-26 17:26 [PATCH net 0/3] net: bcmgenet: misc fixes Florian Fainelli
  2014-06-26 17:26 ` [PATCH net 1/3] net: bcmgenet: disable clock before register_netdev Florian Fainelli
  2014-06-26 17:26 ` [PATCH net 2/3] net: bcmgenet: start with carrier off Florian Fainelli
@ 2014-06-26 17:26 ` Florian Fainelli
  2014-07-02  0:25 ` [PATCH net 0/3] net: bcmgenet: misc fixes David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Florian Fainelli @ 2014-06-26 17:26 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

Hardware will provide this information as soon as we will start
processing incoming packets, so there is no need to set the RX buffer
length during buffer allocation.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index e51e462bc8fd..16281ad2da12 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -1408,13 +1408,6 @@ static int bcmgenet_alloc_rx_buffers(struct bcmgenet_priv *priv)
 		if (cb->skb)
 			continue;
 
-		/* set the DMA descriptor length once and for all
-		 * it will only change if we support dynamically sizing
-		 * priv->rx_buf_len, but we do not
-		 */
-		dmadesc_set_length_status(priv, priv->rx_bd_assign_ptr,
-				priv->rx_buf_len << DMA_BUFLENGTH_SHIFT);
-
 		ret = bcmgenet_rx_refill(priv, cb);
 		if (ret)
 			break;
-- 
1.9.1

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

* Re: [PATCH net 0/3] net: bcmgenet: misc fixes
  2014-06-26 17:26 [PATCH net 0/3] net: bcmgenet: misc fixes Florian Fainelli
                   ` (2 preceding siblings ...)
  2014-06-26 17:26 ` [PATCH net 3/3] net: bcmgenet: do not set packet length for RX buffers Florian Fainelli
@ 2014-07-02  0:25 ` David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2014-07-02  0:25 UTC (permalink / raw)
  To: f.fainelli; +Cc: netdev

From: Florian Fainelli <f.fainelli@gmail.com>
Date: Thu, 26 Jun 2014 10:26:19 -0700

> This patch set contains 3 smal fixes targeted at the 'net' tree.

Series applied, thanks.

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

end of thread, other threads:[~2014-07-02  0:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-26 17:26 [PATCH net 0/3] net: bcmgenet: misc fixes Florian Fainelli
2014-06-26 17:26 ` [PATCH net 1/3] net: bcmgenet: disable clock before register_netdev Florian Fainelli
2014-06-26 17:26 ` [PATCH net 2/3] net: bcmgenet: start with carrier off Florian Fainelli
2014-06-26 17:26 ` [PATCH net 3/3] net: bcmgenet: do not set packet length for RX buffers Florian Fainelli
2014-07-02  0:25 ` [PATCH net 0/3] net: bcmgenet: misc fixes David Miller

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.