Thread (8 messages) 8 messages, 5 authors, 2017-08-14

Re: [PATCH v2] ravb: add wake-on-lan support via magic packet

flat view

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2017-08-14 10:24:07
Also in: linux-renesas-soc

Hi Andrew, Niklas,

On Sun, Jul 30, 2017 at 9:51 PM, Niklas Söderlund
[off-list ref] wrote:
On 2017-07-30 19:07:38 +0200, Andrew Lunn wrote:
quoted
quoted
@@ -2041,6 +2073,11 @@ static int ravb_probe(struct platform_device *pdev)

    priv->chip_id = chip_id;

+   /* Get clock, if not found that's OK but Wake-On-Lan is unavailable */
+   priv->clk = devm_clk_get(&pdev->dev, NULL);
+   if (IS_ERR(priv->clk))
+           priv->clk = NULL;
Can you get EPROBE_DEFER returned?
I don't think so, but I'm not sure :-)

The clock I'm trying to get is the module clock of the ravb itself, so
if that clock is not available (and enabled) no register writes to the
ravb would be possible in the first place, so i guess it's safe to
assume -EPROBE_DEFER can not happen here?
In theory, the devm_clk_get() can fail.
In practice, it cannot, as the EtherAVB device is part of a clock domain,
through its "power-domains" property in DT.
Hence if the clock (which is the module clock, provided by the SoC's system
clock controller (CPG/MSSR)) is not yet available, the PM Domain subsystem
will prevent the device from being probed.
I'm just trying to play it safe here since the clock is only needed to
support WoL, I though it best to not change behavior here. Try to get
the clock, if we can great we can do WoL if not then user-space will be
prevented from enabling WoL and nothing in the current behavior changes.
And all this explicit clock handling is done only because
device_set_wakeup_enable() does not yet prevent the PM Domain code from
powering down the device during system suspend.  Once that's handled by genpd,
all clock magic can be removed.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help