All of lore.kernel.org
 help / color / mirror / Atom feed
From: clabbe.montjoie@gmail.com (Corentin Labbe)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] net: stmmac: dwmac-sun8i: Use reset exclusive
Date: Wed, 30 Aug 2017 12:21:36 +0200	[thread overview]
Message-ID: <20170830102136.GA21940@Red> (raw)
In-Reply-To: <20170825171233.4xoihzakca3mqscd@flea.lan>

On Fri, Aug 25, 2017 at 07:12:33PM +0200, Maxime Ripard wrote:
> On Fri, Aug 25, 2017 at 05:17:33PM +0200, Corentin Labbe wrote:
> > On Fri, Aug 25, 2017 at 04:48:32PM +0200, Maxime Ripard wrote:
> > > On Fri, Aug 25, 2017 at 04:38:05PM +0200, Corentin Labbe wrote:
> > > > The current dwmac_sun8i module cannot be rmmod/modprobe due to that
> > > > the reset controller was not released when removed.
> > > > 
> > > > This patch remove ambiguity, by using of_reset_control_get_exclusive and
> > > > add the missing reset_control_put().
> > > > 
> > > > Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
> > > > ---
> > > >  drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 3 ++-
> > > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
> > > > index fffd6d5fc907..675a09629d85 100644
> > > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
> > > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
> > > > @@ -782,6 +782,7 @@ static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac)
> > > >  
> > > >  	clk_disable_unprepare(gmac->ephy_clk);
> > > >  	reset_control_assert(gmac->rst_ephy);
> > > > +	reset_control_put(gmac->rst_ephy);
> > > >  	return 0;
> > > >  }
> > > >  
> > > > @@ -942,7 +943,7 @@ static int sun8i_dwmac_probe(struct platform_device *pdev)
> > > >  			return -EINVAL;
> > > >  		}
> > > >  
> > > > -		gmac->rst_ephy = of_reset_control_get(plat_dat->phy_node, NULL);
> > > > +		gmac->rst_ephy = of_reset_control_get_exclusive(plat_dat->phy_node, NULL);
> > > 
> > > Why not just use devm_reset_control_get?
> > > 
> > 
> > Because there no devm_ functions with of_
> 
> devm_reset_control_get uses of_reset_control_get internally.

Hello

You are right.
But since the ephy reset is in a child node, devm_ does not find it.

Regards

WARNING: multiple messages have this Message-ID (diff)
From: Corentin Labbe <clabbe.montjoie@gmail.com>
To: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: peppe.cavallaro@st.com, alexandre.torgue@st.com, wens@csie.org,
	netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] net: stmmac: dwmac-sun8i: Use reset exclusive
Date: Wed, 30 Aug 2017 12:21:36 +0200	[thread overview]
Message-ID: <20170830102136.GA21940@Red> (raw)
In-Reply-To: <20170825171233.4xoihzakca3mqscd@flea.lan>

On Fri, Aug 25, 2017 at 07:12:33PM +0200, Maxime Ripard wrote:
> On Fri, Aug 25, 2017 at 05:17:33PM +0200, Corentin Labbe wrote:
> > On Fri, Aug 25, 2017 at 04:48:32PM +0200, Maxime Ripard wrote:
> > > On Fri, Aug 25, 2017 at 04:38:05PM +0200, Corentin Labbe wrote:
> > > > The current dwmac_sun8i module cannot be rmmod/modprobe due to that
> > > > the reset controller was not released when removed.
> > > > 
> > > > This patch remove ambiguity, by using of_reset_control_get_exclusive and
> > > > add the missing reset_control_put().
> > > > 
> > > > Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
> > > > ---
> > > >  drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 3 ++-
> > > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
> > > > index fffd6d5fc907..675a09629d85 100644
> > > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
> > > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
> > > > @@ -782,6 +782,7 @@ static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac)
> > > >  
> > > >  	clk_disable_unprepare(gmac->ephy_clk);
> > > >  	reset_control_assert(gmac->rst_ephy);
> > > > +	reset_control_put(gmac->rst_ephy);
> > > >  	return 0;
> > > >  }
> > > >  
> > > > @@ -942,7 +943,7 @@ static int sun8i_dwmac_probe(struct platform_device *pdev)
> > > >  			return -EINVAL;
> > > >  		}
> > > >  
> > > > -		gmac->rst_ephy = of_reset_control_get(plat_dat->phy_node, NULL);
> > > > +		gmac->rst_ephy = of_reset_control_get_exclusive(plat_dat->phy_node, NULL);
> > > 
> > > Why not just use devm_reset_control_get?
> > > 
> > 
> > Because there no devm_ functions with of_
> 
> devm_reset_control_get uses of_reset_control_get internally.

Hello

You are right.
But since the ephy reset is in a child node, devm_ does not find it.

Regards

  reply	other threads:[~2017-08-30 10:21 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-25 14:38 [PATCH] net: stmmac: dwmac-sun8i: Use reset exclusive Corentin Labbe
2017-08-25 14:38 ` Corentin Labbe
2017-08-25 14:48 ` Maxime Ripard
2017-08-25 14:48   ` Maxime Ripard
2017-08-25 15:17   ` Corentin Labbe
2017-08-25 15:17     ` Corentin Labbe
2017-08-25 17:12     ` Maxime Ripard
2017-08-25 17:12       ` Maxime Ripard
2017-08-30 10:21       ` Corentin Labbe [this message]
2017-08-30 10:21         ` Corentin Labbe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170830102136.GA21940@Red \
    --to=clabbe.montjoie@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.