All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: netdev@vger.kernel.org, adam.rudzinski@arf.net.pl,
	m.felsch@pengutronix.de, hkallweit1@gmail.com,
	richard.leitner@skidata.com, zhengdejin5@gmail.com,
	devicetree@vger.kernel.org, kernel@pengutronix.de,
	kuba@kernel.org, robh+dt@kernel.org
Subject: Re: [RFC net-next 2/2] net: phy: bcm7xxx: request and manage GPHY clock
Date: Thu, 3 Sep 2020 00:20:30 +0200	[thread overview]
Message-ID: <20200902222030.GJ3050651@lunn.ch> (raw)
In-Reply-To: <20200902213347.3177881-3-f.fainelli@gmail.com>

> +	priv->clk = devm_clk_get_optional(&phydev->mdio.dev, "sw_gphy");
> +	if (IS_ERR(priv->clk))
> +		return PTR_ERR(priv->clk);
> +
> +	/* To get there, the mdiobus registration logic already enabled our
> +	 * clock otherwise we would not have probed this device since we would
> +	 * not be able to read its ID. To avoid artificially bumping up the
> +	 * clock reference count, only do the clock enable from a phy_remove ->
> +	 * phy_probe path (driver unbind, then rebind).
> +	 */
> +	if (!__clk_is_enabled(priv->clk))
> +		ret = clk_prepare_enable(priv->clk);

This i don't get. The clock subsystem does reference counting. So what
i would expect to happen is that during scanning of the bus, phylib
enables the clock and keeps it enabled until after probe. To keep
things balanced, phylib would disable the clock after probe.

If the driver wants the clock enabled all the time, it can enable it
in the probe method. The common clock framework will then have two
reference counts for the clock, so that when the probe exists, and
phylib disables the clock, the CCF keeps the clock ticking. The PHY
driver can then disable the clock in .remove.

There are some PHYs which will enumerate with the clock disabled. They
only need it ticking for packet transfer. Such PHY drivers can enable
the clock only when needed in order to save some power when the
interface is administratively down.

	  Andrew

  reply	other threads:[~2020-09-02 22:20 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-02 21:33 [RFC net-next 0/2] net: phy: Support enabling clocks prior to bus probe Florian Fainelli
2020-09-02 21:33 ` [RFC net-next 1/2] " Florian Fainelli
2020-09-02 21:38   ` Florian Fainelli
2020-09-02 22:11   ` Andrew Lunn
2020-09-02 21:33 ` [RFC net-next 2/2] net: phy: bcm7xxx: request and manage GPHY clock Florian Fainelli
2020-09-02 22:20   ` Andrew Lunn [this message]
2020-09-03  2:13     ` Florian Fainelli
2020-09-03  6:00       ` Adam Rudziński
2020-09-03 15:21         ` Florian Fainelli
2020-09-03 17:13           ` Adam Rudziński
2020-09-03 17:17             ` Florian Fainelli
2020-09-03 19:21               ` Adam Rudziński
2020-09-03 19:35                 ` Florian Fainelli
2020-09-03 20:09                   ` Adam Rudziński
2020-09-03 20:17                     ` Florian Fainelli
2020-09-03  0:42   ` kernel test robot

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=20200902222030.GJ3050651@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=adam.rudzinski@arf.net.pl \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=kuba@kernel.org \
    --cc=m.felsch@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=richard.leitner@skidata.com \
    --cc=robh+dt@kernel.org \
    --cc=zhengdejin5@gmail.com \
    /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.