[net] net: macb: ensure interface is not suspended on at91rm9200
diff mbox series

Message ID 20200212164538.383741-1-alexandre.belloni@bootlin.com
State Accepted
Delegated to: David Miller
Headers show
Series
  • [net] net: macb: ensure interface is not suspended on at91rm9200
Related show

Commit Message

Alexandre Belloni Feb. 12, 2020, 4:45 p.m. UTC
Because of autosuspend, at91ether_start is called with clocks disabled.
Ensure that pm_runtime doesn't suspend the interface as soon as it is
opened as there is no pm_runtime support is the other relevant parts of the
platform support for at91rm9200.

Fixes: d54f89af6cc4 ("net: macb: Add pm runtime support")
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
---
 drivers/net/ethernet/cadence/macb_main.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Claudiu Beznea Feb. 12, 2020, 5:41 p.m. UTC | #1
On 12.02.2020 18:45, Alexandre Belloni wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Because of autosuspend, at91ether_start is called with clocks disabled.
> Ensure that pm_runtime doesn't suspend the interface as soon as it is
> opened as there is no pm_runtime support is the other relevant parts of the
> platform support for at91rm9200.
> 
> Fixes: d54f89af6cc4 ("net: macb: Add pm runtime support")
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>

> ---
>  drivers/net/ethernet/cadence/macb_main.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index 4508f0d150da..def94e91883a 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -3790,6 +3790,10 @@ static int at91ether_open(struct net_device *dev)
>         u32 ctl;
>         int ret;
> 
> +       ret = pm_runtime_get_sync(&lp->pdev->dev);
> +       if (ret < 0)
> +               return ret;
> +
>         /* Clear internal statistics */
>         ctl = macb_readl(lp, NCR);
>         macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT));
> @@ -3854,7 +3858,7 @@ static int at91ether_close(struct net_device *dev)
>                           q->rx_buffers, q->rx_buffers_dma);
>         q->rx_buffers = NULL;
> 
> -       return 0;
> +       return pm_runtime_put(&lp->pdev->dev);
>  }
> 
>  /* Transmit packet */
> --
> 2.24.1
> 
>
Nicolas Ferre Feb. 13, 2020, 8:45 a.m. UTC | #2
On 12/02/2020 at 17:45, Alexandre Belloni wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Because of autosuspend, at91ether_start is called with clocks disabled.
> Ensure that pm_runtime doesn't suspend the interface as soon as it is
> opened as there is no pm_runtime support is the other relevant parts of the
> platform support for at91rm9200.
> 
> Fixes: d54f89af6cc4 ("net: macb: Add pm runtime support")
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

> ---
>   drivers/net/ethernet/cadence/macb_main.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index 4508f0d150da..def94e91883a 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -3790,6 +3790,10 @@ static int at91ether_open(struct net_device *dev)
>          u32 ctl;
>          int ret;
> 
> +       ret = pm_runtime_get_sync(&lp->pdev->dev);
> +       if (ret < 0)
> +               return ret;
> +
>          /* Clear internal statistics */
>          ctl = macb_readl(lp, NCR);
>          macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT));
> @@ -3854,7 +3858,7 @@ static int at91ether_close(struct net_device *dev)
>                            q->rx_buffers, q->rx_buffers_dma);
>          q->rx_buffers = NULL;
> 
> -       return 0;
> +       return pm_runtime_put(&lp->pdev->dev);
>   }
> 
>   /* Transmit packet */
> --
> 2.24.1
>
David Miller Feb. 17, 2020, 2:42 a.m. UTC | #3
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: Wed, 12 Feb 2020 17:45:38 +0100

> Because of autosuspend, at91ether_start is called with clocks disabled.
> Ensure that pm_runtime doesn't suspend the interface as soon as it is
> opened as there is no pm_runtime support is the other relevant parts of the
> platform support for at91rm9200.
> 
> Fixes: d54f89af6cc4 ("net: macb: Add pm runtime support")
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

Applied, thanks.

Patch
diff mbox series

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 4508f0d150da..def94e91883a 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -3790,6 +3790,10 @@  static int at91ether_open(struct net_device *dev)
 	u32 ctl;
 	int ret;
 
+	ret = pm_runtime_get_sync(&lp->pdev->dev);
+	if (ret < 0)
+		return ret;
+
 	/* Clear internal statistics */
 	ctl = macb_readl(lp, NCR);
 	macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT));
@@ -3854,7 +3858,7 @@  static int at91ether_close(struct net_device *dev)
 			  q->rx_buffers, q->rx_buffers_dma);
 	q->rx_buffers = NULL;
 
-	return 0;
+	return pm_runtime_put(&lp->pdev->dev);
 }
 
 /* Transmit packet */